扩展知识点---利用应用程序控制输入设备进行数据显示

简介: 扩展知识点---利用应用程序控制输入设备进行数据显示

第一:什么是输入设备?


解答:常见的输入设备为鼠标、键盘、遥控器、电脑、画板等,用户利用输入设备与系统进程交互。


第二:Linux系统为了统一设备,实现了兼容所有的输入设备框架,这个框架就是input子系统。驱动开发人员基于input子系统开发输入设备驱动程序,input子系统可以屏蔽硬件的差异,向应用提供统一的接口。


第三:输入设备读取数据的流程是什么?


1、应用程序打开/dev/input/event0设备文件;


2、应用程序发起读操作(譬如调用read),如果没有数据可读则会进入休眠(阻塞I/O情况)。


3、当有数据可读的时候,应用程序会被唤醒,读操作获取到数据返回。


4、应用程序对读取到的数据进行解析。


核心点:应用程序是如何解析数据的?


struct input_event{
        struct timeval time;
         __u16 type;
         __u16 code;
         __s32 value; 
};

 这个结构体中的time成员变量是一个struct timeval类型的变量,内核会记录每次上报的事件发生的时间,并通过变量time返回给应用程序。

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
int main(int argc, char *argv[])
{
      struct input_event in_ev = {0};
       int fd = -1;

    /* 校验传参 */

  if (2 != argc) {
    fprintf(stderr, "usage: %s \n", argv[0]);
     exit(-1);
     }

/* 打开文件 */

if (0 > (fd = open(argv[1], O_RDONLY))) {
perror("open error");
exit(-1);
}
for ( ; ; ) {

/* 循环读取数据 */

if (sizeof(struct input_event) != read(fd, &in_ev, sizeof(struct input_event))) {
perror("read error");
exit(-1);
}
printf("type:%d code:%d value:%d\n", in_ev.type, in_ev.code, in_ev.value);
}
}


目录
相关文章
|
存储
串口助手(布局,图标,串口号,隐藏界面,显示实时时间)
串口助手(布局,图标,串口号,隐藏界面,显示实时时间)
243 0
|
6月前
|
C语言
51开发板数码管:固定显示\闪烁显示\走灯显示“--8051--“,字符可以任意更改,较为灵活
51开发板数码管:固定显示\闪烁显示\走灯显示“--8051--“,字符可以任意更改,较为灵活
141 2
|
6月前
|
开发框架 前端开发 JavaScript
在Winform程序中增加隐藏的按键处理,用于处理一些特殊的界面显示或者系统初始化操作
在Winform程序中增加隐藏的按键处理,用于处理一些特殊的界面显示或者系统初始化操作
|
9月前
|
安全 Linux
嵌入式Linux系统关闭串口调试信息的输出
嵌入式Linux系统关闭串口调试信息的输出
352 1
LabVIEW设置应用程序显示标签透明
本篇博文将介绍一种简单方法,还是以我们分享的LabVIEW实现科学计算器小项目为例,将最下面的提示按钮背景设置为透明效果
|
Linux
扩展知识点--利用Linux应用代码如何控制LED
扩展知识点--利用Linux应用代码如何控制LED
153 0
|
Windows
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(一)
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(一)
352 0
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(一)
|
Windows
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(二)
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(二)
381 0
【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )(二)
Windows10系统上投影(仅电影屏幕,复制,拓展,仅第二屏幕)类型的作用
Windows10系统上投影(仅电影屏幕,复制,拓展,仅第二屏幕)类型的作用
266 0
Windows10系统上投影(仅电影屏幕,复制,拓展,仅第二屏幕)类型的作用
|
C# 前端开发
WPF安装打印机驱动后PrintDialog 执行打印事件
原文:WPF安装打印机驱动后PrintDialog 执行打印事件 WPF可以很好的利用流文档来实现打印预览和PrintDialog 实现打印功能,但是我在这只是写了一个很简单的打印功能演示。
1104 0

热门文章

最新文章