我通过以下命令在 Linux 上运行了蓝牙 RFCOMM 服务:
sdptool add --channel 1 SP
rfcomm watch hci0 1 "$COMMAND" {}
# ^ here
将$COMMAND
二进制数据写入作为参数传递的文件。我已经通过执行以下操作测试了它的行为是否正确:
FIFO=$(tempfile)
mkfifo "$FIFO"
"$COMMAND" "$FIFO" &
cat "$FIFO" | hexdump -C # <- output is correct
但是,当通过 SPP/RFCOMM 发现 (UUID) 从不同设备连接到服务时00001101-0000-1000-8000-00805F9B34FB
,我看到 () 的每个实例都被流中的( 0x0A
)LF
替换。问题不在接收端,因为我尝试连接到也发送二进制数据的硬件串行设备,但没有发生转换。它必须是执行替换的第一个片段(行上方)中的命令。0x0D
0x0A
CR
LF
# ^ here
为什么该rfcomm
工具会进行此替换,我该如何禁用它?