hidraw节点是linux内核提供给用户空间USB和Bluetooth人机交互节点,可以利用该节点实现usb或者蓝牙通信,进一步可以完成其他功能,例如设备固件升级等。
如果在设备连接成功后,仍然没有该节点生成怎么办?在内核配置中使能hidraw,可以参考如下:
https://blog.csdn.net/qq_33750826/article/details/78952249
大致流程:
server端:
1、查看/dev路径下是否有hidraw设备,如果有则进一步判断是否是我们想要的设备,例如vid /pid等。
struct hidraw_devinfo raw_info;
if(-1 == ioctl(fd, HIDIOCGRAWINFO, &raw_info))
{
return false;
}
if(4000 == raw_info.product && 6000 == raw_info.vendor)//
{
return true;
}
2、执行read()操作。
3、read()返回后,进行数据的解析,判断下一步的执行。
4、执行write()操作。
client端:
1、同server端中的1操作。
2、执行write()操作。
3、执行read()操作,
4、read()返回后,进行数据解析,判断下一步的执行(继续去write,还是退出?)
Demo先不提供了,大致是APP <---->jni <-------> c来实现该功能。