利用hidraw節點實現藍牙通信

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章