为Linux应用添加按键控制

本文介绍了Tina平台的人形检测demo开发,涉及传感器数据处理、NPU推理与VIPP应用,同时改进了AI-Demo的输入输出控制,实现通过按键事件捕获来启动和控制。详细讲解了Linux下键盘设备节点的使用和按键事件处理。

关于Tina和AI-Demo的开发,可以先参考下面两篇博客:

Tina方案开发一探_tugouxp的专栏-CSDN博客1.编译,打包2.烧录:选择量产卡:烧录成功:3.将卡插入平台,BROM卡启动程序将加载SD卡中的固件,至于最终是卡量产,开始卡启动,则取决于固件本身的定义。4.结束!https://blog.csdn.net/tugouxp/article/details/119413357?spm=1001.2014.3001.5502V833/V831目标检测demo方案开发_tugouxp的专栏-CSDN博客项目需要在V833平台上开发一个人形检测的功能用例, 大概框架如下:一路sensor图像经过四路VIPP缩放操作后,送给四个不同应用,分别是H265编码存盘,LCD预览以及以及NPU人形检测,还有一路照片抓拍。NPU人形检测原理如下:NPU线程抓取352*198(VIPP支持的输出大小)像素,格式为NV21的YUV原始帧数据,喂给人形检测算法网络,得到类别和坐标数据后,反馈给VIPP1 预览通道画框。这样的设计方案包含一个问题,NPU这边获得帧并进行网络推理得到坐标结果并反馈给VI.https://blog.csdn.net/tugouxp/article/details/120328633?spm=1001.2014.3001.5502

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

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

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

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

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

keyboard线程处理

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

测试验证

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

UBUNTU系统下的按键输入

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

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

鼠标设备是/dev/input/event3


结束~!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值