核心改动: - bluetooth_provisioning: 使用 esp_ble_gap_config_adv_data_raw() 原始广播 替代 BluFi API,采用自定义 GATT Server (Service 0xABF0, Write 0xABF1, Notify 0xABF2) 实现二进制配网协议,保留全部WiFi配网业务逻辑 - ble_service: 广播包名称移至 Scan Response,避免超31字节限制; GAP事件改用位掩码确保 adv_data 和 scan_rsp 都完成后再启动广播 - application: BLE JSON 服务从 Application 移至 WifiBoard 管理, HandleBleJsonCommand 改为接收 BleJsonService 引用参数 - wifi_board: 新增 StartBleJsonProvisioning(),配网入口切换回 StartBluFiProvisioning() 使用重构后的 GATT Server - 蓝牙设备名统一为 "Airhub_Ble" - 配网模式下跳过电量上报,避免无WiFi时HTTP请求失败 - 新增 tests/ble_provision_test.py 配网协议测试脚本 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
#pragma once
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
// ============================================================
|
||
// BLE JSON 通讯服务 - 配置参数
|
||
// ============================================================
|
||
|
||
// GATT App ID (BluFi 使用 0,本模块使用 1)
|
||
#define BLE_JSON_APP_ID 1
|
||
|
||
// Service UUID (16-bit)
|
||
#define BLE_JSON_SERVICE_UUID 0xAB00
|
||
|
||
// Characteristic UUIDs
|
||
#define BLE_JSON_CHAR_WRITE_UUID 0xAB01 // App -> 设备 (WRITE)
|
||
#define BLE_JSON_CHAR_NOTIFY_UUID 0xAB02 // 设备 -> App (NOTIFY)
|
||
#define BLE_JSON_CHAR_STATUS_UUID 0xAB03 // 设备状态 (READ)
|
||
|
||
// Service handle 数量 (service + chars + descriptors,预留足够)
|
||
#define BLE_JSON_HANDLE_NUM 10
|
||
|
||
// MTU
|
||
#define BLE_JSON_LOCAL_MTU 512
|
||
|
||
// Characteristic 最大值长度
|
||
#define BLE_JSON_CHAR_VAL_MAX_LEN 512
|
||
|
||
// 广播设备名称
|
||
#define BLE_JSON_DEVICE_NAME "Airhub_Ble"
|
||
|
||
// 广播参数
|
||
#define BLE_JSON_ADV_INT_MIN 0x40 // 40ms
|
||
#define BLE_JSON_ADV_INT_MAX 0x80 // 80ms
|
||
|
||
// 命令处理队列深度
|
||
#define BLE_JSON_CMD_QUEUE_SIZE 8
|
||
|
||
// WiFi 列表最大返回条数
|
||
#define BLE_JSON_WIFI_LIST_MAX 8
|
||
|
||
// 日志标签
|
||
#define BLE_JSON_TAG "BleJsonSvc"
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|