releasev1.2
This commit is contained in:
1 parent
74010ef611
commit
c296caa328
10 files changed
+693
-267
No files matched your search
@@ -25,7 +25,7 @@ extern "C" {
|
||||
* 可配置常量
|
||||
* ============================================================ */
|
||||
#define EMM_V5_UART_BAUDRATE 115200
|
||||
#define EMM_V5_UART_BUF_SIZE 256
|
||||
#define EMM_V5_UART_BUF_SIZE 512
|
||||
|
||||
/* 接收超时时间 (毫秒) */
|
||||
#define EMM_V5_RX_TIMEOUT_MS 100
|
||||
@@ -220,10 +220,63 @@ void Emm_V5_Origin_Trigger_Return(uint8_t addr, uint8_t o_mode, bool snF);
|
||||
void Emm_V5_Origin_Interrupt(uint8_t addr);
|
||||
|
||||
/**
|
||||
* @brief 接收电机返回数据 (100ms 超时判定帧结束)
|
||||
* @param rxCmd 接收缓冲区
|
||||
* @param maxLen 缓冲区最大长度
|
||||
* @return 实际接收到的字节数
|
||||
* @brief 等待指定电机到位 (事件驱动, 不消费到位位)
|
||||
*
|
||||
* 电机驱动 Response 菜单设为 Reached/Both/Other 后, 位置模式 (0xFD) 命令
|
||||
* 运动到位会主动回传到位帧 (地址 + FD + 9F + 6B)。UART RX 由本组件内部
|
||||
* 任务中断读取并解析, 此处事件等待全部到位, 不再轮询 S_TPOS/S_CPOS。
|
||||
*
|
||||
* @note 本函数不清除到位位, 便于调用方分段等待 (如等待期间闪烁 LED);
|
||||
* 一段 motion 等待结束后必须调用 Emm_V5_Arrival_Consume 清除,
|
||||
* 防止残留位污染下一段 motion。
|
||||
* @param addrs 电机地址数组, 如 {ACTUATOR_ADDR_X}
|
||||
* @param count 数组长度
|
||||
* @param timeout_ms 本次等待超时 (ms); 0 = 立即返回当前状态
|
||||
* @return true=全部到位, false=超时/未到齐
|
||||
*/
|
||||
bool Emm_V5_Wait_Arrival(const uint8_t *addrs, uint8_t count, uint32_t timeout_ms);
|
||||
|
||||
/**
|
||||
* @brief 消费 (清除) 指定电机的到位位
|
||||
* @param addrs 电机地址数组
|
||||
* @param count 数组长度
|
||||
* @note 一段 motion 的到位等待结束后调用 (成功/超时都要调)
|
||||
*/
|
||||
void Emm_V5_Arrival_Consume(const uint8_t *addrs, uint8_t count);
|
||||
|
||||
/**
|
||||
* @brief 清除全部电机到位位 (开始新一段 motion 前调用)
|
||||
* @note 防止上一段 motion 超时后迟到的到位帧 (或 0 脉冲命令仍回传的帧)
|
||||
* 污染新一段 motion 的到位等待
|
||||
*/
|
||||
void Emm_V5_Arrival_Reset(void);
|
||||
|
||||
/**
|
||||
* @brief 查询当前已置位的到位位 (调试用)
|
||||
* @return 位掩码: bit = (电机地址 - 1), 仅低 8 位有效
|
||||
*/
|
||||
uint32_t Emm_V5_Arrival_Get_Bits(void);
|
||||
|
||||
/**
|
||||
* @brief 发送读取系统参数命令并等待响应帧返回 (请求-响应式)
|
||||
* @param addr 电机地址
|
||||
* @param s 系统参数类型 (@see EmmSysParams_t)
|
||||
* @param rxOut 接收缓冲区
|
||||
* @param maxLen 缓冲区最大长度
|
||||
* @param timeout_ms 等待响应超时 (ms)
|
||||
* @return 实际收到的响应字节数 (含 地址/功能码/.../0x6B), 失败返回 0
|
||||
*/
|
||||
uint8_t Emm_V5_Read_Sys_Params_Resp(uint8_t addr, EmmSysParams_t s,
|
||||
uint8_t *rxOut, uint8_t maxLen,
|
||||
uint32_t timeout_ms);
|
||||
|
||||
/**
|
||||
* @brief 接收电机返回数据
|
||||
* @deprecated UART RX 已由内部 RX 任务独占 (中断驱动), 此函数不再读取 UART;
|
||||
* 网页手动读参数请改用 Emm_V5_Read_Sys_Params_Resp
|
||||
* @param rxCmd 接收缓冲区 (保留, 未使用)
|
||||
* @param maxLen 缓冲区最大长度 (保留, 未使用)
|
||||
* @return 恒为 0
|
||||
*/
|
||||
uint8_t Emm_V5_Receive_Data(uint8_t *rxCmd, uint8_t maxLen);
|
||||
|
||||
|
||||
Reference in new issue
Block a user