- 新增ota目录和esp32_ota_core.cpp实现ESP32 OTA核心功能,支持begin/write/finalize操作 - 修改CMakeLists.txt添加ota源文件和包含目录 - 重构ble_ota.cpp将OTA写入/收尾逻辑委托给Esp32OtaCore,移除mbedtls直接引用 - 新增BLE_OTA_CTRL_RESTART_ESP32(0xFA)命令用于重启ESP32设备 - 更新BLE_OTA_CTRL_TRIGGER_ESP32(0xF8)逻辑,要求前端提供SHA-256校验并比对 - 添加SHA-256校验不匹配错误码BLE_OTA_FINISH_ERR_SHA_MISMATCH(0x85) - 优化OTA收尾流程,设备端读取分区计算SHA-256并与前端提供的哈希比对 - 添加BLE_OTA_NOTIFY_SHA256通知类型用于上报设备端计算的SHA-256值 - 更新app_config.h中的BLE OTA命令描述文档 - 移除BleOta类中的OTA状态变量,仅保留BLE传输层相关状态 - 更新版本构建时间和Git哈希信息
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
/*
|
||
* ble_ota.h - BLE OTA GATT 服务器
|
||
* T5.1 - T5.5
|
||
*
|
||
* ESP32 本机 OTA 的写入/收尾逻辑已抽离到 Esp32OtaCore(WiFi/BLE 共用)。
|
||
* 本类仅保留 BLE 传输层相关状态(连接、收尾任务去重、ACK 窗口)。
|
||
*/
|
||
#ifndef BLE_OTA_H
|
||
#define BLE_OTA_H
|
||
|
||
#include <stdint.h>
|
||
#include "esp_err.h"
|
||
#include "esp_ota_ops.h"
|
||
|
||
class BleOta {
|
||
public:
|
||
static BleOta& instance();
|
||
|
||
static void taskEntry(void *pvParameters);
|
||
esp_err_t serverStart();
|
||
esp_err_t notifyResponse(const uint8_t *data, size_t len);
|
||
bool isConnected();
|
||
void signalRelay();
|
||
|
||
// 以下状态为 public,供 C 回调函数访问
|
||
bool m_bleReady = false;
|
||
bool m_bleConnected = false;
|
||
uint16_t m_connHandle = 0xFFFF;
|
||
|
||
// BLE 传输相关(OTA 写入状态已移至 Esp32OtaCore)
|
||
bool m_esp32RebootPending = false; // 收尾任务去重标志
|
||
uint8_t m_esp32LastCmd = 0; // 最后一次数据包命令(用于补发 ACK)
|
||
uint16_t m_esp32LastSeq = 0xFFFFU; // 最后一次数据包序号(用于补发 ACK)
|
||
};
|
||
|
||
#endif // BLE_OTA_H
|