linux 应用读取input按键驱动上报键值案例

原创 2016年07月13日 14:58:09
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <signal.h>
#include <limits.h>
#include <termios.h>
#include <errno.h>
#include <linux/input.h>
#include "log.h"

#define TOUCHKEY_TAG             "TouchkeyDemo "
#define TOUCHKEY_FILE            "/dev/input/event4"


int main(int argc, char **argv)
{
	int nFd;
	int nRet;
	struct input_event *sInputEvent;

	PL_LOGI(TOUCHKEY_TAG, " --> Make time: %s %s %s <-- ", __DATE__, __TIME__, "Tony.Huang");
	
	sInputEvent = malloc(sizeof(struct input_event));
	nFd = open(TOUCHKEY_FILE, O_RDWR);
	if(nFd < 0)
	{
		PL_LOGE(TOUCHKEY_TAG, "open file %s error.", TOUCHKEY_FILE);
		return -1;
	}
	else
	{
		PL_LOGI(TOUCHKEY_TAG, "open file %s success.", TOUCHKEY_FILE);
	}

	memset(sInputEvent, 0, sizeof(struct input_event));
	nRet = read(nFd, sInputEvent, sizeof(struct input_event));
	if(nRet < 0)
	{
		PL_LOGE(TOUCHKEY_TAG, "read file %s error.", TOUCHKEY_FILE);
		return nRet;
	}

	PL_LOGI(TOUCHKEY_TAG, "type: 0x%x ", sInputEvent->type);
	PL_LOGI(TOUCHKEY_TAG, "code: 0x%x ", sInputEvent->code);
	PL_LOGI(TOUCHKEY_TAG, "value: 0x%x", sInputEvent->value);

	free(sInputEvent);
	close(nFd);
	return 0;
}


Makefile 编译文件

CUR_TARGET=touchkeydemo

INCLUDES   += -I./
CUR_SRCS_THREAD:= touchkeydemo.c

touchkeydemo:
	$(CC) $(CUR_SRCS_THREAD) -o $(CUR_TARGET) -lpthread -ldl -lm

clean:
	rm -fv $(CUR_TARGET)



相关文章推荐

键值从键盘到Linux内核传输过程分析

键值从键盘到Linux内核传输过程分析         这是一个以前没有了解过的一个盲区。         源于在制作一个带有特殊键的键盘,键盘厂商让挑选择殊键的实现方法。并举例说明了普通按键z在...
  • kangear
  • kangear
  • 2014年12月30日 14:39
  • 5338

linux下input event事件,可以用后台截取键盘按下的键值,后台截取数据.....input.h

如何读取Linux键值,输入子系统,key,dev/input/event,dev/event,C语言键盘? 这里先上一段代码,自己拿到linux系统运行就可以,注意代码中keys_fd = o...

Linux input 子系统应用之按键驱动

硬件平台:s5pv210 软件平台:Linux2.6.35.7 应用程序:inputk2_app.c #include #include #include #include #include ...
  • dcx1205
  • dcx1205
  • 2014年08月26日 02:49
  • 1261

Linux Input子系统浅析(二)-- 模拟tp上报键值

通过前一节的分析得到,linux Input子系统上传数据本质上是将input_dev的数据,上报给input_handler, 当用户读入event时,驱动层只需要利用copy_to_user将数...

Linux input 子系统详解与代码示例

由于linux 的驱动模型增加了input层,导致几乎所有的底层驱动都把数据封装在event里上报给input子系统。由此看来,这种改变让kernel 更具有模块化,各个模块的耦合度更低了。 下面我...

Linux 输入设备驱动上报按键值方法

input_set_capability和input_event以及input_sync函数实现Linux 输入设备驱动上报按键值方法...

android 键值添加和上报

ndroid增加键值详解: 一.首先修改kernel/include/linux/input.h,加入自己定义的键值。 KEY_MYHALL为我加入的键值: #define KEY_...

linux下系统键值和windows下系统键值的区别

//可以直接将这个数组复制使用 //基本上标准的键盘按键都在上面,这个是自己写程序测出来的,有什么错误之处请留言 // KBD_KEY[n][0] 是windows下的键值 // KBD_KEY[n]...

input事件--->按键事件的基本实现

本程序基于TINY4412开发板,程序已经验证过,完全正确:那么,如何来写这样的一个驱动程序呢?1、分配一个input_dev结构体2、设置3、注册4、硬件相关的代码,比如中断,定时器,休眠等等的操作...

Tiny6410 + Linux2.6.38 + input子系统 + 按键中断模拟系统键盘输入的例程

Linux下使用按钮来模拟键盘中“Left"
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 应用读取input按键驱动上报键值案例
举报原因:
原因补充:

(最多只允许输入30个字)