/*******************************************************************
* 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的更多相关文章

  1. ARM Linux内核Input输入子系统浅解

    --以触摸屏驱动为例 第一章.了解linux input子系统         Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些 ...

  2. Linux/Android——Input系统之InputMapper 处理 (八)【转】

    本文转载自:http://blog.csdn.net/jscese/article/details/43561773 前文Linux/Android——Input系统之InputReader (七)介 ...

  3. Linux/Android——Input系统之InputReader (七)【转】

    本文转载自:http://blog.csdn.net/jscese/article/details/42739197 在前文Linux/Android——Input系统之frameworks层Inpu ...

  4. Linux/Android——Input系统之frameworks层InputManagerService (六)【转】

    本文转载自:http://blog.csdn.net/u013491946/article/details/72638954 版权声明:免责声明: 本人在此发文(包括但不限于汉字.拼音.拉丁字母)均为 ...

  5. Linux/Android——input系统之 kernel层 与 frameworks层交互 (五)【转】

    本文转载自:http://blog.csdn.net/jscese/article/details/42291149 之前的四篇博文记录的都是linux中的input体系相关的东西,最底层以我调试的u ...

  6. Linux/Android——input子系统核心 (三)【转】

    本文转载自:http://blog.csdn.net/jscese/article/details/42123673 之前的博客有涉及到linux的input子系统,这里学习记录一下input模块. ...

  7. 虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案

    我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步, ...

  8. Linux SocketCan client server demo hacking

    /*********************************************************************** * Linux SocketCan client se ...

  9. linux 读取文件

    linux读取文件是经常要用到的操作,以下示例(说明看注释): #读取文件snlist.txt中的每一行内容赋给sn变量 while read sn do echo ">>> ...

随机推荐

  1. 用minicom 产看 usb的串口

    1 用命令   sudo apt-get install minicom  安装 2 用 minicom -s 进行配置 往下选择  Seral port setup: 然后输入  A :选择自己的 ...

  2. unity3d KeyCode各键值说明

    KeyCode :KeyCode是由Event.keyCode返回的.这些直接映射到键盘上的物理键. http://docs.unity3d.com/ScriptReference/KeyCode.h ...

  3. (转)Qt Model/View 学习笔记 (三)——Model类

    Model类 基本概念 在model/view构架中,model为view和delegates使用数据提供了标准接口.在Qt中,标准接口QAbstractItemModel类中被定义.不管数据在底层以 ...

  4. grunt项目配置

    安装完CLI,还要在项目安装Grunt npm install -g grunt-cli npm install grunt --save-dev 源码放在src下 package.json放在根目录 ...

  5. 【go】脑补框架 Express beego tornado Flux reFlux React jsx jpg-ios出品

    http://goexpresstravel.com/ 今天 Express 的作者 TJ Holowaychuk 发了一篇文章,正式宣告和 Node.js 拜拜了,转向 Go 语言. Go vers ...

  6. 多智能体仿真环境 NetLogo

    http://ccl.northwestern.edu/netlogo/ 创建agentcreate-turtles 10 动一动ask turtle 0 [forward 10 right 90 l ...

  7. 839. Optimal Marks - SPOJ

    You are given an undirected graph G(V, E). Each vertex has a mark which is an integer from the range ...

  8. iOS 添加阴影后 屏幕卡顿 抖动

    - (void)awakeFromNib { // Initialization code _btnViews.layer.shadowPath =[UIBezierPath bezierPathWi ...

  9. [BEC][hujiang] Lesson03 Unit1:Working life ---Grammar & Listening & Vocabulary

    3 Working life p8 Grammar Gerund and infinitive(动名词和不定式) 一般而言:        1 动词后面接动名词还是不定式没有特定规则,主要取决于语言习 ...

  10. 强大的CImage类

    这下有了CImage类,处理其他类型的图片不再寻找第三方类库了.加载到对话框背景的代码如下:  //从资源里载入背景JPEG图片 HRSRC hRsrc=::FindResource(AfxGetRe ...