shuichan_new/STM32F103_App1/HardWare/RELAY/ext_relay.h

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 */