input之按键输入

Posted 孤~狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了input之按键输入相关的知识,希望对你有一定的参考价值。

通过直接操作驱动来监控键盘,只要程序一旦在后台启动,无论在任何页面都可以监控到按键的数值。

步骤如下:

1.找到键盘挂在点:有两种方法

  方法一:在   /dev/input路径下通过  cat even..(1,2,3,4.。)打印操作,并按下键盘看哪个出现的不是回写(乱码状态),就是键盘挂载点,我的是event1;鼠标是event2;

  方法二:在命令行中输入  cat /proc/bus/input/devices 查看设备对应的结点(文件)

2.打开键盘文件:

  #define      DEV      "/dev/input/event1"

  int keyFd;

  keyFd=open(DEV,RDONLY);

3.读键盘数据

  问:读的数据应该以什么类型存放?

  解:所有的输入设备都公用一个头文件,即共用这一个框架,头文件为<linux/input.h>,

/////////////////////////////这是头文件中的结构体,不用写//////////////////////////////////////////////////////////////////////////// 

    struct input_event {
        struct timeval time;
            __u16 type;//按键类型

       —u16code;//按键值
           __s32 value;//按下为1,长按为2,松开为0
        };

//////////////////////////////////////////////////////////////////////////////////////////////////////

    int ret;      struct input_event    ev;

    ret=read(devFd,&ev,sizeof(ev));

  每一次从键盘读到的值都存在这样的一个结构体中;

5.访问数据

  通过结构体变量ev可以访问数据。

    

以上是关于input之按键输入的主要内容,如果未能解决你的问题,请参考以下文章

020_linux驱动之_输入子系统按键应用

Android R input 之 InputManagerService 的建立

Android R input 之 InputManagerService 的建立

linux输入子系统(input subsystem)之evdev.c事件处理过程

Linux 输入设备 自定义键盘 input输入子系统 gpio-keys按键驱动

DoozyUI⭐️二十一Input:按键输入监听组件