linux 读取input输入设备demo

简介: /******************************************************************* * linux 读取input输入设备demo * 说明: * 本文主要是解读以前同事写的input设备的一个demo程序。
/*******************************************************************
 *                   linux 读取input输入设备demo
 * 说明:
 *     本文主要是解读以前同事写的input设备的一个demo程序。
 *
 *                                2016-3-24 深圳 南山平山村 曾剑锋
 ******************************************************************/


#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/input.h>

int main(int argc, char **argv)
{
    int fd;    
    struct input_event ev;

    // 判断参数
    if (argc < 2) {
        printf("Usage: %s <input device>\n", argv[0]);
        return 0;
    }

    // 打开设备
    fd = open(argv[1], O_RDWR);
    if (fd < 0) {
        printf("open %s", argv[1]);
        fflush(stdout);
        perror(" ");
        return 0;
    }

    // 循环读取
    while(1) {
        // 读取数据
        read(fd, &ev, sizeof(struct input_event));
        // 打印当前触发类型
        printf("ev ==  %x \n",ev.type );   
switch(ev.type) { case EV_SYN: printf("-------------------------\n"); break; // 按键 case EV_KEY: printf("key down / up: %d \n",ev.code ); break; // 鼠标 case EV_REL: printf("mouse: "); if (ev.code == REL_X) { printf(" x -- %d\n", ev.value); } else if (ev.code == REL_Y) { printf(" y -- %d\n", ev.value); } break; // 触摸屏 case EV_ABS: printf("ts: "); if(ev.code == ABS_X) { printf(" x -- %d\n", ev.value); } else if (ev.code == ABS_Y) { printf(" y -- %d\n", ev.value); } else if (ev.code == ABS_PRESSURE) { printf(" pressure: %d\n", ev.value); } break; } } close(fd); return 0; }

 

目录
相关文章
|
4月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
51 6
|
4月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
56 5
|
4月前
|
存储 缓存 Unix
Linux 设备驱动程序(三)(上)
Linux 设备驱动程序(三)
48 3
|
4月前
|
缓存 安全 Linux
Linux 设备驱动程序(一)((下)
Linux 设备驱动程序(一)
42 3
|
4月前
|
Linux
Linux 设备驱动程序(四)
Linux 设备驱动程序(四)
28 1
|
4月前
|
存储 数据采集 缓存
Linux 设备驱动程序(三)(中)
Linux 设备驱动程序(三)
45 1
|
4月前
|
存储 前端开发 大数据
Linux 设备驱动程序(二)(中)
Linux 设备驱动程序(二)
33 1
|
4月前
|
缓存 安全 Linux
Linux 设备驱动程序(二)(上)
Linux 设备驱动程序(二)
45 1
|
4月前
|
存储 缓存 安全
Linux 设备驱动程序(三)(下)
Linux 设备驱动程序(三)
38 0
|
4月前
|
安全 Linux 程序员
Linux 设备驱动程序(二)(下)
Linux 设备驱动程序(二)
31 0