码迷,mamicode.com
首页 > 其他好文 > 详细

Input_输入子系统

时间:2019-06-09 00:32:35      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:inpu   time   NPU   event对象   event   struct   put   时间戳   匹配   

 

 

 

应用          open()   read()   write()   close()        (type,code,value)


(创建设备节点,实现FOPS)|------------->event------->                       ↑    struct_input_eveent

input_handler层       |                                1.创建设备节点     >event_client (口—口—口) 数组队列        

(evdev.c)      (input_handler)-->connect-->2.分配event对象-->input_handle{*handler , *dev } 


(创建个类,申请编号)               ↓                         input_handler_list

       技术图片

input_core层                  恒匹配

       技术图片

(input.c)                       ↑              input_device_list


              (input_dev)------->input_event;input_sync

input_device层

(自己写) --->(1.分配对象 2.初始对象 3.注册对象 4.初始迎检)


硬件         EV_ABS    EV_KEY    EV_REL   

 

 

 

 

 

<结构体>

  struct input_dev {
    const char *name;
    const char *phys;
    const char *uniq;
    struct input_id id;

    //位表
    unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; //表示能够产生哪种类型的数据:EV_KEY,EV_ABS
    unsigned long keybit[BITS_TO_LONGS(KEY_CNT)]; //表示能够产生哪些按键数据
    unsigned long relbit[BITS_TO_LONGS(REL_CNT)]; //表示能够产生哪些相对坐标数据
    unsigned long absbit[BITS_TO_LONGS(ABS_CNT)]; //表示能够产生哪些绝对坐标数据
    unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)];
    unsigned long ledbit[BITS_TO_LONGS(LED_CNT)];
    unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];
    unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
    unsigned long swbit[BITS_TO_LONGS(SW_CNT)];

    struct device dev; //父类

    struct list_head h_list;
    struct list_head node; //链表的节点
  };

 

  struct input_event {   //上报给用户的输入设备的数据包的类型
    struct timeval time; //时间戳
    __u16 type; //读到的数据类型:EV_KEY,EV_ABS,EV_REL
    __u16 code; //编码值
    __s32 value; //状态
  };

 

 

 <笔记>

 

1.input_core

 

 编程:

  1,分配一个 input device对象
  2,初始化input device对象
  3,注册input device对象
  4,硬件初始化,获取到硬件的数据,上报给input handler

 

 

 

 

             

 

Input_输入子系统

标签:inpu   time   NPU   event对象   event   struct   put   时间戳   匹配   

原文地址:https://www.cnblogs.com/panda-w/p/10922744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!