- 新增 /can/send_burst HTTP接口,支持一次SPI事务批量发送多帧CAN消息 - 实现canFdSendBurst函数,通过0xC7 SPI类型实现背靠背装载各通道邮箱 - 添加canBurstCapacity函数计算单次突发最大帧数限制 - 突发发送期间暂停can_feedback_task避免SPI抢占冲突 refactor(can_feedback_task): 改造为周期查询+事件消费模式 - 0xC4/0xC5从GD32主动推送改为ESP32周期查询(250ms/1s) - 0xC6/0xD2仍保留事件驱动推送模式,由任务消费处理 - 消除OTA期间GD32悬空按铃导致的超时刷屏问题 - 电机OTA期间也暂停任务避免与0xD1抢夺SPI资源 perf(ota_relay): 增加重发次数上限提升传输可靠性 - 将kMaxDataSends从3次增加到5次,提高数据包传输成功率 chore(version): 更新固件版本号至0.3.78 - 版本查询checkVersionWait移到tickInFlight释放后异步触发 - 避免/motor/version请求拖长tick导致tickStuck误报通道闪黄
32 lines
961 B
C
32 lines
961 B
C
/*
|
|
* can_feedback_task.h - GD32 周期查询 + 事件消费任务
|
|
*
|
|
* 2026-08 架构改造:0xC1 CAN 反馈请求驱动(canFdQueryFeedback);
|
|
* 0xC4 ADC / 0xC5 电机状态改为本任务周期查询(250ms/1s);
|
|
* 0xC6 电机版本 / 0xD2 电机 OTA 进度保留事件推送,由本任务 takeEvent 消费。
|
|
*/
|
|
#ifndef CAN_FEEDBACK_TASK_H
|
|
#define CAN_FEEDBACK_TASK_H
|
|
|
|
/** @brief 暂停/恢复周期查询与事件消费(OTA 期间调用 pause=true)。 */
|
|
void pauseCanFeedbackTask(bool pause);
|
|
|
|
/** @brief 查询是否处于暂停(OTA / send_batch / 电机 OTA 期间为 true)。
|
|
* 请求驱动的 SPI 查询(canFdQueryFeedback)在暂停期间应跳过。 */
|
|
bool canFeedbackPaused();
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief 启动事件监听任务(幂等)。
|
|
* @return true 表示任务已存在或创建成功。
|
|
*/
|
|
bool startCanFeedbackTask();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // CAN_FEEDBACK_TASK_H
|