HID设备的研究总结
闭关的这段时间里主要完成了公司的一个项目的收尾与交接,是涉及C++、C#的一些知识点。同时最近刚结束了HID设备的研发,结果是该项目最终放弃了。。。还是蛮遗憾的。作为这方面的研发小白,整理一下其中的心血历程是十分重要的,帮自己也是帮别人。
设备的定义以及上位机与下位机的开发、相关参数的定义这里就不说了,百度一堆的东西(看都看不过来)。这里主要介绍我在开发过程中遇到的问题(我觉得对于新手应该是重点,哈哈哈),涉及到上下位之间的通信,这里用的是Windows系统和HID设备(鼠标、键盘、触摸屏等)具体设备这里就不明说了。
- Linux系统上的开发
作为这方面的小白,拿到设备只能按照给的配套软件进行使用,由于这样是不符合我们当前的开发需求,热血青年也是有事不求于他人,就自己捣鼓起来了。基于我之前利用Linux系统开发过usb相机,所以抱着同样的心理去尝试了一下,结果证明我是对的,设备接入之后会在 /proc/bus/input/devices 目录下会有相应的设备出现。
找到相应的 Handlers 下的eventX(X代表数字,具体看情况),使用代码成功获取了设备返回的数据。
int fdss=-1;
fd_set rds;
int ret;
struct input_event event;
struct timeval time;
fdss = open("/dev/input/eventX", O_RDONLY);
if(fdss<0){
LOGE("Cannot open eventX: %d, %s", errno, strerror (errno));
return -1