python-3.x - 将 Python 蓝牙套接字绑定到虚拟端口
问题描述
我在 Arduino 和 Raspberry Pi 之间创建了蓝牙通信。我正在使用BlueZ用来配对和信任的D-BUS API ,以及Python 套接字模块来建立rfcomm 通信。
我想在 Pi上的Node-RED上访问我从 Arduino 收到的数据。不幸的是,Node-RED 没有任何正在积极开发的经典蓝牙节点。所以,我能做的是使用串行输入节点。
如果我使用已弃用的命令行工具rfcomm进行连接(例如sudo rfcomm connect hci0 00:11:12:34:56:78 1
),它会创建一个绑定到/dev/rfcomm0的rfcomm 通道。我可以使用串行输入节点并访问 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 工具的源文件时,我觉得我需要深入研究一些操作系统编程来做我想做的事。
解决方案
推荐阅读
- angular - 无法在 Ionic 应用程序中设置和删除存储的参数
- javascript - JS - 检测设备是否在某个轴(X、Y、Z)上旋转超过阈值度数
- python - Json上循环的列表索引超出范围错误
- python - 由于方法中的“默认参数值是可变的”,Python/Django 随机数据库查询结果
- linux - 如何在我的 Linux 系统上安全地重新配置 gcc?
- python - 为什么 X=1 概率质量函数和累积密度函数不同?
- javascript - 如何绘制垂直面积图?
- python - CSV 文件 - 无法从我的 csv 打印特定值/实体
- domain-driven-design - DDD,抽象类,聚合和存储库,一个或多个存储库?
- javascript - ESLint:分配给函数参数的属性