linux 读取input输入设备demo
/*******************************************************************
* linux 读取input输入设备demo
* 说明:
* 本文主要是解读以前同事写的input设备的一个demo程序。
*
* 2016-3-24 深圳 南山平山村 曾剑锋
******************************************************************/ #include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/input.h> int main(int argc, char **argv)
{
int fd;
struct input_event ev; // 判断参数
if (argc < ) {
printf("Usage: %s <input device>\n", argv[]);
return ;
} // 打开设备
fd = open(argv[], O_RDWR);
if (fd < ) {
printf("open %s", argv[]);
fflush(stdout);
perror(" ");
return ;
} // 循环读取
while() {
// 读取数据
read(fd, &ev, sizeof(struct input_event));
// 打印当前触发类型
printf("ev == %x \n",ev.type );
switch(ev.type) {
case EV_SYN:
printf("-------------------------\n");
break; // 按键
case EV_KEY:
printf("key down / up: %d \n",ev.code );
break; // 鼠标
case EV_REL:
printf("mouse: ");
if (ev.code == REL_X) {
printf(" x -- %d\n", ev.value);
} else if (ev.code == REL_Y) {
printf(" y -- %d\n", ev.value);
}
break; // 触摸屏
case EV_ABS:
printf("ts: ");
if(ev.code == ABS_X) {
printf(" x -- %d\n", ev.value);
} else if (ev.code == ABS_Y) {
printf(" y -- %d\n", ev.value);
} else if (ev.code == ABS_PRESSURE) {
printf(" pressure: %d\n", ev.value);
}
break;
}
}
close(fd); return ;
}
linux 读取input输入设备demo的更多相关文章
- ARM Linux内核Input输入子系统浅解
--以触摸屏驱动为例 第一章.了解linux input子系统 Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些 ...
- Linux/Android——Input系统之InputMapper 处理 (八)【转】
本文转载自:http://blog.csdn.net/jscese/article/details/43561773 前文Linux/Android——Input系统之InputReader (七)介 ...
- Linux/Android——Input系统之InputReader (七)【转】
本文转载自:http://blog.csdn.net/jscese/article/details/42739197 在前文Linux/Android——Input系统之frameworks层Inpu ...
- Linux/Android——Input系统之frameworks层InputManagerService (六)【转】
本文转载自:http://blog.csdn.net/u013491946/article/details/72638954 版权声明:免责声明: 本人在此发文(包括但不限于汉字.拼音.拉丁字母)均为 ...
- Linux/Android——input系统之 kernel层 与 frameworks层交互 (五)【转】
本文转载自:http://blog.csdn.net/jscese/article/details/42291149 之前的四篇博文记录的都是linux中的input体系相关的东西,最底层以我调试的u ...
- Linux/Android——input子系统核心 (三)【转】
本文转载自:http://blog.csdn.net/jscese/article/details/42123673 之前的博客有涉及到linux的input子系统,这里学习记录一下input模块. ...
- 虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案
我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步, ...
- Linux SocketCan client server demo hacking
/*********************************************************************** * Linux SocketCan client se ...
- linux 读取文件
linux读取文件是经常要用到的操作,以下示例(说明看注释): #读取文件snlist.txt中的每一行内容赋给sn变量 while read sn do echo ">>> ...
随机推荐
- Oracle中NULL值与索引
NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...
- envi中多波段图层叠加layer stacking
Basic Tools——layer stacking 选择投影和输出的文件 波段1-7波段图层都叠加在一个文件中了
- c#加密汇总【粘】
方法一: SHA1[不可逆] //须添加对System.Web的引用 using System.Web.Security; ... /// &l ...
- ExtJs 自定义Vtype验证
最近公司开发项目在用ExtJs,碰到验证的就大概的总结了一些常用的验证.自定义的验证主要有两种方式:一种是单字段的自定义验证,另一种是多字段间的验证.对于单字段的验证主要通过regex配置项指定自定义 ...
- GWT RPC
GWT RPC GWT RPCRemote Procedure Calls GWT: Google Web Toolkit的缩写,有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 G ...
- hibernate映射文件基础
一.利用hibernate的eclipse插件快速生成实体类与配置文件的方法 1.首先下载安装和自己的eclipse版本配套的hibernate tools,如果是Myeclipse,在/readme ...
- [转]BluetoothDevice.getType()-一个常常被忽略了的函数。好用的不要不要的
自动安卓发布了4.0版本的蓝牙协议之后,越来越多的开发者收到了各种针对于BLE蓝牙的开发需求. 而且有很多时候还需要兼容以前的3.0版本,给大家的开发带来了困扰,笔者也遇到了这样的问题,偶然间发现了g ...
- ASP + ACCESS保存图片文件之实现
con.execute "CREATE tblImg (lngId COUNTER PRIMARY KEY, binImg IMAGE)" set ads=createobject ...
- 如何将class文件打包成jar 这里提供两种方式!
原地址:http://blog.163.com/09zzy@126/blog/static/711976652011101001530/ 如何将class文件打包成jar文件,这是一个很严肃的问题,当 ...
- PHP 怎么随机获取数组里面的值
注意array_rand随机返回的是KEY值的集合 <?php srand((float) microtime() * 10000000); $input = array("Neo&q ...