首页 > 其他分享 >input子系统

input子系统

时间:2024-03-26 17:46:19浏览次数:22  
标签:define input EV 子系统 输入 设备

input子系统

  输入设备包括鼠标、键盘、触摸屏、按钮等,它们都能产生输入事件,产生输入数据给计算机系统。   Linux 系统为了统一管理输入设备,实现了一套能够兼容所有输入设备的框架,这个框架就是input 子系统。   驱动开发人员基于input 子系统开发输入设备的驱动程序,input 子系统可以屏蔽硬件的差异,向应用层提供一套统一的接口。     查看input 子系统注册的输入设备   基于input 子系统注册成功的输入设备,都会在/dev/input 目录下生成对应的设备节点(设备文件),   设备节点名称通常为eventX( X 表示一个数字编号0、1、2、3 等)     查看输入设备对应的设备节点     cat /proc/bus/input/devices  

读取数据

  如果我们要读取触摸屏的数据,假设触摸屏设备对应的设备节点为/dev/input/event0 , 那么数据读取流程如下:     1.应用程序打开/dev/input/event0 设备文件;     2.应用程序发起读操作(例如调用read),如果没有数据可读则会进入休眠(阻塞I/O 情况下;     3.当有数据可读时,应用程序会被唤醒,读操作获取到数据返回;     4.应用程序对读取到的数据进行解析。   获取到的数据格式  <linux/input.h>    struct input_event {     struct timeval time;// 按键时间     __u16 type;    // 类型     __u16 code;    // 需模拟成的按键(比如按键事件中按的是KEY_0按键)     __s32 value;    // 按下或释放   };   type: 设备类型。可以设置为:   #define EV_SYN          0x00        表示设备支持所有的事件   #define EV_KEY          0x01        键盘或者按键,表示一个键码     #define EV_REL          0x02        鼠标设备,表示一个相对的光标位置结果   #define EV_ABS          0x03        手写板产生的值,其是一个绝对整数值   #define EV_MSC          0x04        其他类型   #define EV_LED          0x11        LED灯设备   #define EV_SND          0x12        蜂鸣器,输入声音   #define EV_REP          0x14        允许重复按键类型   #define EV_PWR          0x16        电源管理事件   #define EV_FF_STATUS    0x17   #define EV_MAX          0x1f   #define EV_CNT(EV_MAX+1)           驱动 https://blog.csdn.net/weixin_42031299/article/details/125111946 应用 https://blog.csdn.net/gdut_liujiangyi/article/details/123880416 https://blog.csdn.net/wkd_007/article/details/126729030

   

标签:define,input,EV,子系统,输入,设备
From: https://www.cnblogs.com/kernelx/p/18097186

相关文章

  • wsl2 ubuntu子系统安装显卡驱动与cuda
    wsl2安装参考文档:http://t.csdnimg.cn/ClwJ9演示安装ubuntu22列出可安装的子系统命令:wsl--list--onlinePSC:\Users\linyu>wsl--list--online以下是可安装的有效分发的列表。使用'wsl.exe--install<Distro>'安装。NAMEF......
  • JS添加input text、input button
    <body><formid="form1"runat="server"><divid="div1"class="a1"name="aaa"><inputtype="text"class="a3"name="name"value="3"/&g......
  • clk子系统基础知识
    在clk_provider中,常见的时钟类型包括以下几种:FixedClock(固定时钟):固定频率的时钟,不可更改。它通常用于提供固定频率的时钟信号,例如系统时钟或者外设的时钟。GateClock(时钟门控):通过控制时钟门控信号来开关时钟。可以使用clk_register_gate()函数注册一个时钟门控器,在使用......
  • BufferedInputStream详解
      咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java之IO流啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~前言  在进行Java编程时,避免不了要进行一些文件操作。虽然Java提供了很多类......
  • reset子系统简介
    复位模式在硬件设备被置于复位模式时,通常会限制或禁止对设备寄存器的读写操作。这是为了确保在复位模式下设备能够以可控和可预测的方式进行初始化和复位操作。具体而言,当设备被置于复位模式时,其内部状态和寄存器值可能会被清零或设置为初始状态。此时,外部对设备的读写操作可能会......
  • gpio子系统分析
    参考博客:https://blog.csdn.net/yangguoyu8023/article/details/121892008https://blog.csdn.net/yangguoyu8023/category_11576708.html gpiolib相关数据结构:数据结构主要定义在include/linux/gpio/driver.h和/drivers/gpio/gpiolib.h中/***structgpio_chip-a......
  • gpio子系统与pinctrl子系统通用API
    此篇不涉及gpio子系统和pinctrl原理解释,只列举相关操作函数: 通用的GPIO操作:1.gpio_request(unsignedgpio,constchar*label):向内核申请指定gpio,所申请的IO口会被内核记录参数:gpio:申请IO口编号,label:申请者的名字,随便。返回:int值,成功:0;失败:负数注:在使用gpio口之前,应先用g......
  • outputStream(输出流)转inputstream(输入流)以及输入流如何复用
    https://blog.csdn.net/xuxu_study/article/details/129992752文件、流之间的转换MultipartFile转inputstream(输入流)outputStream(输出流)转为inputstream(输入流)inputstream(输入流)转ByteArrayOutputStreamMultipartFile文件直接转输入流上传和生成摘要MultipartFile文件需要......
  • fileinputstream的主要用法
    importjava.io.*;publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{//字节流读数据//FileInputStreamfileInputStream=newFileInputStream("C:\\\\Users\\\\31339\\\\Desktop\\\\新建文件夹(7)\\\......
  • 操作系统综合题之“采用记录型信号量机制实现进程INPUT、PROCESS和OUTPUT的同步算法(
    1.问题:系统中有有三个进程INPUT、PROCESS和OUTPUT,共用两个缓冲区BUF1和BUF2。假期设BUF1中最多可放10个数据,现已放入了2个数据;BUF2最多可放5个数据。INPUT进程负责不断将输入的原始数据推送入BUF1,PROCESS进程负责从BUF1中取出原始数据进行处理,并将处理后的结果数据送入到BUF2中,OUT......