0
点赞
收藏
分享

微信扫一扫

为Linux应用添加按键控制


之前的 ai-demo 输入输出控制做的比较粗糙,demo的启动和退出是通过控制台输入启动命令以及ctrl+c的方式进行的.体验比较差,比较好的一种方式是通过demo板的按键进行事件捕获和处理。接下来就介绍tina上是如何实现的。

对于Linux上的输入输出,内核是有一套厚厚的框架的,但是暴露给用户态的非常简单,只有/dev/input/目录下的几个设备节点而已。

比如,在ubuntu上,mount,keyboard, joystick等外设对用户程序来讲就是/dev/input/下的这几个设备节点而已:

为Linux应用添加按键控制_设备节点

Tina也是Linux,所以这方面没有区别:

为Linux应用添加按键控制_输入输出_02

经过测试,在tina上./dev/input/event1节点是对应keyboard gpadc按键的设备节点,在ai-demo中创建一个独立的keyboard线程,轮询keyboard获取按键信息:

为Linux应用添加按键控制_设备节点_03

为Linux应用添加按键控制_设备节点_04

为Linux应用添加按键控制_人工智能_05

keyboard线程处理

为Linux应用添加按键控制_设备节点_06

为Linux应用添加按键控制_固件_07

根据消息源的不同,按键事件分成很多种,在linux内核中的分类如下,上面kb线程的处理也完全按照这几个事件分门别类的处理:

为Linux应用添加按键控制_固件_08

测试验证

运行ai demo,过程中不断按小键盘,输出如下,达到预期,接下来就可以定义应用的行为了~!

为Linux应用添加按键控制_输入输出_09

UBUNTU系统下的按键输入

UBUNTU上的输入设备有很多,我们用TREE命令找到具体的设备和设备节点之间的联系。

为Linux应用添加按键控制_人工智能_10

/dev/input/event4是键盘设备,我们验证一下:

为Linux应用添加按键控制_固件_11

鼠标设备是/dev/input/event3

为Linux应用添加按键控制_设备节点_12

结束~!

举报

相关推荐

0 条评论