2

从 Ubuntu 连接到蓝牙串行端口时:

adi@Poppy:~$ sudo rfcomm -r connect 0
Connected /dev/rfcomm0 to 1C:3E:84:FE:4F:69 on channel 8
Press CTRL-C for hangup

在客户端,我收到以下数据,这些数据在连接时从 Ubuntu 自动发送:

41 54 5e 53 51 50 4f 52 54 3f 0d 41 54 0d 41 54 0d 41 54 0d 7e 00 78 f0 7e 7e 00 78 f0 7e

AT^SQPORT?
AT
AT
AT
~

这会干扰我想要做的事情,所以我需要防止 Ubuntu 向客户端发送任何未经请求的数据。

谢谢。

4

2 回答 2

1

连接到端口后,minicom 只能在 root 下运行(这让我很困惑)。对于我得到的任何其他用户:

adi@Poppy:~$ minicom -D /dev/rfcomm1
minicom: cannot open /dev/rfcomm1: Device or resource busy

adi@Poppy:~$ ls -lsa /dev/rfcomm1 
0 crw-rw-rw- 1 root dialout 216, 1 aug  3 19:46 /dev/rfcomm1

所以我这样做了:

adi@Poppy:~$ sudo fuser /dev/rfcomm1
[sudo] password for adi: 
/dev/rfcomm1:          696

adi@Poppy:~$ ps -p 696
  PID TTY          TIME CMD
  696 ?        00:00:00 ModemManager

啊哈,明白了!

杀死进程后,你怎么看?连接时没有 AT 命令。

于 2015-08-03T16:57:24.130 回答
1

另一种方法是在 udev 系统中设置新规则会有所帮助。

在 /etc/udev/rules.d/90-rfcomm.rules 中,请输入以下行:

内核=="rfcomm[0-9]*",ENV{ID_MM_DEVICE_IGNORE}="1"

于 2017-02-22T10:39:03.823 回答