无法读取 /dev/rfcomm
Unable to read from /dev/rfcomm
我正在尝试通过蓝牙 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)
由于读取无效,我尝试关闭文件描述符并再次打开它。
这次打不开了/dev/rfcomm0。它returns-1.
不足之处请指点
我也是新手,所以如果有任何关于使用 C++ 的蓝牙 SPP 的文档。
找到解决方案,我尝试连接的移动应用程序使用不同的 UUID 进行通信。如果我使用应用程序定义的 UUID 启动连接,我就能够正确地读写数据。
但我还有一个疑问,蓝牙规范为其配置文件定义了 UUID。
For SPP it is 0x0003.
在我的用例中,导航设备使用 SPP 配置文件与 android 应用程序通信,但使用的 UUID 不是 0x0003。
那么这是否意味着 android 应用程序可以选择除规范中提到的任何随机唯一 UUID 通过 SPP 进行通信?
我正在尝试通过蓝牙 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)
由于读取无效,我尝试关闭文件描述符并再次打开它。
这次打不开了/dev/rfcomm0。它returns-1.
不足之处请指点
我也是新手,所以如果有任何关于使用 C++ 的蓝牙 SPP 的文档。
找到解决方案,我尝试连接的移动应用程序使用不同的 UUID 进行通信。如果我使用应用程序定义的 UUID 启动连接,我就能够正确地读写数据。
但我还有一个疑问,蓝牙规范为其配置文件定义了 UUID。
For SPP it is 0x0003.
在我的用例中,导航设备使用 SPP 配置文件与 android 应用程序通信,但使用的 UUID 不是 0x0003。
那么这是否意味着 android 应用程序可以选择除规范中提到的任何随机唯一 UUID 通过 SPP 进行通信?