将 Python 蓝牙套接字绑定到虚拟端口

问题描述

我在 Arduino 和 Raspberry Pi 之间创建了蓝牙通信。我正在使用 D-BUS API 用于配对和信任的 BlueZ,以及 Python socket module 用于建立 rfcomm 通信

我想访问我在 Pi 上的 Node-RED 上从 Arduino 收到的数据。不幸的是,Node-RED 没有任何正在积极开发的经典蓝牙节点。所以,我能做的是使用 serial input node

如果我使用已弃用的命令行工具 rfcomm 进行连接(例如 sudo rfcomm connect hci0 00:11:12:34:56:78 1 ),它会创建一个绑定到 /dev/ 的 rfcomm 通道 rfcomm0。我可以使用串行输入节点并访问 Node-RED 中的数据。但是,我想避免使用这个已弃用的工具。

但是,如果我通过 Python 套接字模块进行连接,如下所示:

s = socket.socket(socket.AF_BLUETOOTH,socket.SOCK_STREAM,socket.BTPROTO_RFCOMM)
s.bind(some_address,some_port)
s.connect(some_address,some_port)

没有创建诸如 /dev/rfcomm0 之类的虚拟设备/端口。因此,我无法从 Node-RED 访问数据。

那么问题是如何将python socket创建的socket绑定到任意虚拟端口?这个 rfcomm 频道的确切位置在哪里?它必须以某种方式绑定到虚拟网络端口吗?

当我检查 rfcomm 工具的 source file 时,我觉得我需要深入研究一些操作系统编程来做我想做的事。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...