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來實現該功能。