BLE 上报自动分包 + 切慢广播宏

This commit is contained in:
2026-09-09 15:03:53 +08:00
parent 866b522c59
commit 074960eb02
5 changed files with 111 additions and 45 deletions
+8 -4
View File
@@ -586,17 +586,21 @@ int bleproto_appdata_serialize(bleproto_appdata_t *appdata,
uint16_t size);
/**
* @brief 将已打包好的 payload 包装成单帧 appdata分包)
* @param txbuf 输出缓冲
* @brief 将已打包好的 payload 包装成 appdata超过单帧则按 packetlen 分包)
* @param txbuf 输出缓冲(须能放下 每帧8B头 × 帧数 + payload
* @param txbuf_size 输出缓冲大小
* @param packetlen BLE GATT 单包有效长度,与 serialize 相同(本板 247
* @param header 应用层头(datalen/totalframe/frameseq 由本函数填写)
* @param payload 已序列化的 service 数据;可为 NULLpayload_len==0
* @param payload_len payload 长度,须 <=255(单帧 pthis_frame_len 为 u8
* @param payload_len 应用数据总长度
* @return >0 总字节数;<0 失败
* @note 小包场景(JB 55AA 透传等)用此接口,避免 bleproto_appdata_t 大缓冲
* @note 切帧规则与 serialize 一致:单帧 payload = packetlen - 8
* 不超过则 totalframe=1、frameseq=0;超过则中间帧填满、末帧剩余,
* frameseq 从 1 递增。避免走 bleproto_appdata_t 大缓冲。
*/
int bleproto_appdata_wrap_raw(uint8_t *txbuf,
uint16_t txbuf_size,
uint8_t packetlen,
const bleproto_appdata_header_t *header,
const uint8_t *payload,
uint16_t payload_len);