我正试图通过蓝牙SPP配置文件将我的目标连接到移动设备上.一旦蓝牙连接结束,请求创建rfcomm信道进行通信。
output of
ls -all /dev/rfcomm0
crw-rw-rw- 1 root dialout 216, 0 Jan 1 00:02 /dev/rfcomm0一旦创建了rfcomm设备,在我的代码中,我将打开该文件并向其写入数据。
fd = open('/dev/rfcomm0', O_RDWR | O_NOCTTY | O_SYNC);
write(write(fd, &sendBuffer[0], sendBuffer.size())写作是成功的。同样,如果我试图通过rfcomm读取数据,代码就不会继续。
read(fd, recvbuf, recvbuflen)由于read没有工作,所以我尝试关闭文件描述符并再次打开它。
这一次,它无法打开/dev/rfcomm0 0。它会返回-1。
请指点我缺少的地方。
我也是这方面的新手,所以如果在使用C++的蓝牙SPP上有任何文档。
发布于 2016-03-04 10:20:54
找到解决方案后,我试图连接的移动应用程序使用不同的UUID进行通信。如果使用应用程序定义的UUID启动连接,则可以正确读取和写入数据。
但我仍然有一个查询,蓝牙规范为其配置文件定义了UUID。
For SPP it is 0x0003.在我的用例中,导航设备使用SPP配置文件与android应用程序通信,但使用的UUID不是0x0003。
因此,这是否意味着android应用程序可以选择任何随机的唯一UUID,而不是规范中提到的通过SPP?进行通信?
https://stackoverflow.com/questions/35751225
复制相似问题