refactor(FOC): 重构齿槽转矩校准状态机为独立函数
- 将原本在 calibrate_cogging_tick 中的大函数拆分为多个职责单一的函数 - 新增 start_cogging_calibration、cogging_settling_tick、cogging_sampling_tick、 cogging_stopping_tick、cogging_done_tick 等状态处理函数 - 添加 process_cogging_run_data、start_next_cogging_run、build_cogging_tables、 print_cogging_table、print_cogging_c_array 等辅助函数 - 移动全局 FOC 控制器单例注释到更合适位置 - 添加齿槽转矩校准参数常量定义和详细注释 - 添加防御性编程处理默认状态分支,避免状态机卡死 - 提高代码可读性和维护性 feat(tasks): 添加任务头文件到项目配置 - 在 Robot_V2.cproject.yml 中添加 tasks.h 和 tasks.cpp 文件引用 docs(ADC): 添加ADC转换常量说明注释 - 在 ADC.cpp 中添加关于ADC换算常量的详细注释 - 说明全局采样器单例的初始化和使用方式
This commit is contained in:
@@ -235,6 +235,65 @@ class CAN_transmiter {
|
||||
* @return void
|
||||
*/
|
||||
void check_silent_mode(); // 检查静默模式是否结束
|
||||
/**
|
||||
* @brief 处理周期性发送请求,静默模式下只检查是否退出静默
|
||||
* @return void
|
||||
*/
|
||||
void handle_periodic_send_tick();
|
||||
/**
|
||||
* @brief 将底层接收队列项转换为 CAN 消息并按协议分发
|
||||
* @param[in] id 接收到的扩展 CAN ID
|
||||
* @param[in] length 接收数据长度
|
||||
* @param[in] data 接收数据指针
|
||||
* @return void
|
||||
*/
|
||||
void handle_received_queue_item(u32 id, u8 length, const u8 *data);
|
||||
/**
|
||||
* @brief 处理不受本节点过滤限制的特殊消息
|
||||
* @param[in,out] current_message 当前 CAN 消息
|
||||
* @param[in] base_id 低 16 位基础 ID
|
||||
* @param[in] sender_node_id 发送方节点 ID
|
||||
* @return bool true 表示消息已处理,false 表示继续按普通节点消息处理
|
||||
*/
|
||||
bool handle_special_message(can_receive_message_struct ¤t_message,
|
||||
u32 base_id, u16 sender_node_id);
|
||||
/**
|
||||
* @brief 处理 BOOT 命令或其他节点 BOOT 广播导致的静默逻辑
|
||||
* @param[in] sender_node_id 发送方节点 ID
|
||||
* @return void
|
||||
*/
|
||||
void handle_boot_message(u16 sender_node_id);
|
||||
/**
|
||||
* @brief 处理节点 ID 设置命令,发送应答并保存新 ID 到 Flash
|
||||
* @param[in,out] current_message 当前 CAN 消息
|
||||
* @return void
|
||||
*/
|
||||
void handle_set_node_id_message(can_receive_message_struct ¤t_message);
|
||||
/**
|
||||
* @brief 处理已经确认发给本节点的普通协议消息
|
||||
* @param[in,out] current_message 当前 CAN 消息
|
||||
* @param[in] base_id 低 16 位基础 ID
|
||||
* @return void
|
||||
*/
|
||||
void handle_node_message(can_receive_message_struct ¤t_message,
|
||||
u32 base_id);
|
||||
/**
|
||||
* @brief 解析控制命令并更新 FOC 目标值和 PID 参数
|
||||
* @param[in,out] current_message 当前 CAN 消息
|
||||
* @return void
|
||||
*/
|
||||
void handle_control_command(can_receive_message_struct ¤t_message);
|
||||
/**
|
||||
* @brief 解析复位命令各 bit 位并执行对应动作
|
||||
* @param[in,out] current_message 当前 CAN 消息
|
||||
* @return void
|
||||
*/
|
||||
void handle_reset_command(can_receive_message_struct ¤t_message);
|
||||
/**
|
||||
* @brief 处理 OTA ACK 查询,APP 有效时回发确认帧
|
||||
* @return void
|
||||
*/
|
||||
void handle_ota_ack_message();
|
||||
|
||||
public:
|
||||
// 节点 ID 相关辅助函数 (使用高 16 位存储节点 ID)
|
||||
|
||||
Reference in New Issue
Block a user