蓝牙大数据传输
功能介绍
蓝牙大数据传输模块用于实现 将面板端的图像、像素图、动画素材等大体积数据,通过蓝牙分包方式稳定下发到设备。模块支持上千字节的数据发送,并实现:
-
分包发送
-
ACK 包确认机制
-
超时重传
-
发送进度回调
适用于带有像素屏、灯效屏、动画显示功能的 BLE 设备。
功能说明
-
支持将面板侧的 base64 图像 转为 十六进制数据,再进行 BLE 分包传输。
-
按照协议将数据切片为固定大小(默认 1006 字节)。
-
通过 device.publishBLETransparentData 将每个分包透传给设备端。
-
支持设备返回确认包(ACK),客户端依次确认已接收分包。
-
支持失败分包重试(最高 5 次)。
-
支持透传过程进度实时上报。
交互流程
sequenceDiagram
participant P as 面板端
participant BLE as BLE透传模块
participant Dev as 设备端
P->>BLE: 传入 base64 图像数据
BLE->>BLE: 转为 Hex
BLE->>BLE: 分片 createPackets()
P->>Dev: 发送 DP 下发开始指令
Dev-->>P: DP 状态确认(成功)
loop 分包发送
BLE->>Dev: publishBLETransparentData(分包)
Dev-->>BLE: 返回 ACK(当前包号)
end
alt 存在未确认包
BLE->>Dev: 失败包重试(最多 5 次)
Dev-->>BLE: ACK
end
BLE-->>P: 全部分包发送完成
P-->>用户: 显示发送成功数据发送流程
完整发送由 sendPackets() 完成:
(1)检查设备在线状态
(2)发送启动 DP
例如启动播放、提示设备进入接收状态:
监听 dp 状态返回:
(3)监听设备 BLE 上报的 ACK
解析 ACK:
(4)发送前 4 包(快速发送)
不等待确认,直接连发:
(5)从第 5 包开始顺序发送并等待设备 ACK
(6)补发失败包(最多 5 轮)
(7)发送完成
如果所有包都收到确认 → 返回成功
如果部分包仍未确认 → 返回失败