#ifndef EXT_RELAY_H #define EXT_RELAY_H #include "main.h" #include /* 485 扩展继电器板(4 路带反馈), Modbus RTU 从机, 与称重秤共用 USART2 总线 * 协议详见 Docs/RS485扩展继电器协议.md */ #define EXT_RELAY_ADDR 0x10 /* 从机地址(称重秤是 0x01) */ #define EXT_RELAY_CH 4 /* app_task 10ms 周期调用: 命令发送/应答校验/周期轮询 */ void ext_relay_process(void); /* 485 帧分发入口(feed_scale 统一收帧后按站号分发) */ void ext_relay_on_frame(const uint8_t *buf, uint16_t len); /* 下发开关命令: ch=1~4, on=1 吸合 0 断开; * cmd_id 为平台指令 id(完成后应答), NULL=蓝牙/本地命令(不应答) */ void ext_relay_cmd(uint8_t ch, uint8_t on, const char *cmd_id); uint8_t ext_relay_online(void); /* 扩展板在线(本轮上电后有过成功应答) */ uint8_t ext_relay_state_mask(void); /* bit0~3 = 继电器1~4 输出状态(1=吸合) */ uint8_t ext_relay_fault_mask(void); /* bit0~3 = 反馈异常标志 */ #endif /* EXT_RELAY_H */