如何获取蓝牙串口 tx/rx 缓冲区状态?

如何获取蓝牙串口 tx/rx 缓冲区状态?

问题出在我必须通过蓝牙串行端口将数据从一个小机器人发送到我的笔记本电脑,波特率为 115200,机器人每 10 毫秒发送 32 字节数据包(每秒 100 次)。传输只进行几秒钟,然后什么cat都没有显示。当我将频率降低到每秒 10 次时,它运行顺畅。我猜想蓝牙串行端口 rx 缓冲区溢出了。

通过终端获取串行端口(ttyS*)的状态很简单:

sudo cat /proc/tty/driver/serial

然后它显示serinfo所有 uart 的列表以及有关状态和缓冲区的信息。当我调用

sudo cat /proc/tty/drivers

我可以看到有rfcomm可用的驱动程序:

rfcomm   /dev/rfcomm   216 0-255 serial

当然,读取来自配对蓝牙设备(例如通过cat或管道)的数据不是问题。

问题是:如何获取 rfcomm 串行端口(例如蓝牙 SPP 设备)的状态,尤其是 rx/tx 缓冲区中的数据量?这些信息是否可以在目录中的某个地方找到,/proc或者ttyS*我可以使用完全不同的方式吗?

相关内容