无法从 /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。它返回 -1。
请指导我缺乏的地方。
我也是新手,所以如果有任何关于蓝牙 SPP 使用C++的文档。
找到了解决方案,我尝试连接的移动应用程序使用不同的UUID进行通信。如果我使用应用程序定义的 UUID 启动连接,我能够正确读取和写入数据。
但我仍然有一个查询,蓝牙规范为其配置文件定义了 UUID。
For SPP it is 0x0003.
在我的用例中,导航设备使用 SPP 配置文件与 android 应用程序通信,但使用 UUID 而不是0x0003。
那么这是否意味着Android应用程序可以选择任何随机的唯一UUID,而不是规范中提到的通过SPP进行通信?
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 为什么在读取文件大小时文件IO速度会发生变化
- 正在读取二进制文件(is_open)
- 如何在c++中从文本文件中逐行读取整数
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- 独立读取-修改-写入顺序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 无法从 /dev/rfcomm 读取