27 lines
917 B
C
27 lines
917 B
C
#ifndef EXT_RELAY_H
|
|
#define EXT_RELAY_H
|
|
|
|
#include "main.h"
|
|
#include <stdint.h>
|
|
|
|
/* 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 */
|