Linux增加event事件上报机制

linux4.9版本增加event事件上报流程

    1:先声明一个input_dev设备,并初始化为空。

        static struct input_dev* sif_input_dev = NULL;

    2:在驱动入口函数中申请input_dev设备空间。

        sif_input_dev  = input_allocate_device();

    3:设置event事件名

        sif_input_dev->name = "sif_event";

    4:配置event事件类型和code

        set_bit(EV_MSC,  sif_input_dev->evbit);

        set_bit(MSC_RAW, sif_input_dev->mscbit);

    5:将初始化后的event事件注册进入input子系统

        input_register_device(sif_input_dev)

    6:设置event事件对应code的值和上报

        input_event(sif_input_dev, EV_MSC, MSC_RAW, 1);

        input_sync(sif_input_dev);

应用层监听该event事件

    1:使用阻塞方式打开上述驱动创建的设备节点

        open(INPUT_DEV, O_RDONLY);

    2:阻塞读取该设备数据

        read(fd, &event, sizeof(event));

    3:获取底层上报的类型/code/和code的值

        printf("type:%d, code:%d, value:%d\n", event.type, event.code, event.value);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容