通过linux终端获取串行端口(ttyS*)的状态很简单:
sudo cat /proc/tty/driver/serial
然后它显示serinfo
,其中包含所有uart的列表,其中包含有关状态和缓冲区的信息。当我呼叫时
sudo cat /proc/tty/drivers
然后我可以看到rfcomm驱动程序可用:
rfcomm /dev/rfcomm 216 0-255 serial
当然,从配对的蓝牙设备中读取数据并不是问题。
问题是:如何获取rfcomm串行端口(例如Blueotooth SPP设备)的状态?这些信息在/proc
目录中的某个位置(如ttyS*)可用吗?或者我可以使用完全不同的方式吗?
这取决于您要查找的状态。bluez附带的"rfcomm"命令确实有一些状态信息。这取决于这对你来说是否足够。
% rfcomm -h
RFCOMM configuration utility ver 4.101
Usage:
rfcomm [options] <command> <dev>
Options:
-i [hciX|bdaddr] Local HCI device or BD Address
-h, --help Display help
-r, --raw Switch TTY into raw mode
-A, --auth Enable authentication
-E, --encrypt Enable encryption
-S, --secure Secure connection
-M, --master Become the master of a piconet
-f, --config [file] Specify alternate config file
-a Show all devices (default)
Commands:
bind <dev> <bdaddr> [channel] Bind device
release <dev> Release device
show <dev> Show device
connect <dev> <bdaddr> [channel] Connect device
listen <dev> [channel [cmd]] Listen
watch <dev> [channel [cmd]] Watch