是否有非 UART python 传输协议层可以处理 512 字节或更少的 BLE 数据包?

问题描述

我在一个从事非营利性开源项目的团队中,我们正在创建一个基于网络的配置工具来控制 RaspBerry Pi 上的一块自定义硬件,使用 "Web Bluetooth API" .

BLE 连接上的数据包限制为 512 字节,因此我们似乎需要一个传输协议层来协助与 Pi 通信。

我们不想要 UART 实现,因为我们想要传输保证。

是否存在这样的传输协议层,最好用 Python 实现?

或者是否有一种简单的方法生成传输协议层的 Python 实现,它适用于 512 字节的包?

解决方法

你的问题有点过于宽泛,无法给出任何具体细节。

蓝牙可用的官方配置文件记录在:https://www.bluetooth.com/specifications/specs/

如果您可以控制蓝牙链接的两端,则可以相当轻松地创建自定义服务。 Nordic UART Service 是一种似乎很常见的应用程序,周围有各种应用程序可以理解它,以便更轻松地测试您的外围设备。

创建自定义服务以最大限度地减少通过蓝牙链接发送的数据量通常是目标。有各种 guides 可以提供帮助。

使用 BlueZ 和 Python 创建蓝牙外设的更好指南之一是https://punchthrough.com/creating-a-ble-peripheral-with-bluez/

还有 Python examples in the BlueZ source tree

为了完整性,BlueZ API 记录在:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc