refactor(arch): 精简架构去除样板代码并修复BLE OTA虚假ACK问题
- 移除OtaCoordinator中重复的状态查询锁操作,改为单次取值后比较 - 将GD32存储wrapper函数改为inline实现并移入头文件,删除对应的cpp实现 - HTTP路由注册改为路由表+循环注册,消除复制粘贴的URI注册代码 - OtaRelay事件分发中提取通用拒绝逻辑到commonReject helper函数 - SpiMaster中折叠加锁/无锁镜像函数,通过内部Impl实现统一路径 - HealthMonitor使用RAII LockGuard替代重复的mutex操作代码 - 修复BLE OTA中ESP32路径的虚假ACK问题,窗口边界ACK仅在实际写入时触发 - 修复BLE OTA中GD32路径的重复包ACK问题,重复包静默跳过不发送ACK - 调整发送端首轮ACK超时从3000ms提升至5000ms,适配设备端flash写入速度 - 清理临时文件和无用的配置宏定义 - 在main.cpp中添加GD32版本探测逻辑
This commit is contained in:
@@ -398,6 +398,14 @@ private:
|
||||
uint8_t *out_k_session, uint8_t *out_uid);
|
||||
static bool aes128EcbEncrypt48Bytes(const uint8_t *key, const uint8_t *in, uint8_t *out);
|
||||
static void calculateCrc32WithKey(const uint8_t *key, const uint8_t *data48, uint8_t *output);
|
||||
/** @brief 清理会话密钥/上下文/nonce/UID 运行时缓存(reset 与 doFinishAndVerify 共用)。 */
|
||||
void clearSessionCryptoState();
|
||||
ota_result_t sendAndWaitAckShape(const char *stage, uint8_t cmd,
|
||||
const uint8_t *payload, size_t payload_len,
|
||||
uint32_t transact_timeout_ms,
|
||||
uint32_t poll_timeout_ms, uint32_t wait_rounds, uint32_t max_extra_polls,
|
||||
uint8_t resp_payload[], size_t resp_max, size_t *resp_len,
|
||||
bool (*matcher)(const uint8_t *, size_t));
|
||||
};
|
||||
|
||||
#endif // OTA_RELAY_H
|
||||
|
||||
Reference in New Issue
Block a user