#ifndef __HART_MASTER_RSP_H__ #define __HART_MASTER_RSP_H__ #include "./hart_master_frame.h" #pragma pack(1) typedef struct { uint8_t card_index; uint8_t channel_index; io_system_device_t *device; } io_system_device_info_t; typedef union { hart_command_75_t command_75; // 轮询子设备 hart_command_84_t command_84; // 读取子设备标识摘要 hart_command_85_t command_85; // 读取I/O通道统计信息 hart_command_86_t command_86; // 读取子设备统计信息 hart_command_87_t command_87; // 写入I/O系统主模式 hart_command_88_t command_88; // 写入重试计数 } hart_command_rsp_data_u; // HART请求指令数据域 typedef struct { uint8_t address[HART_LONG_ADDRESS_LEN]; // 短帧地址1个字节,长帧地址5个字节,上位机发送时从低位到高位填充,例如短地址:0x01,长地址:0x00 0x00 0x00 0x00 0x01 uint8_t address_length; // 地址长度 uint32_t command; // HART命令码 hart_command_rsp_data_u data; // 数据域 // 以下解析数据后填充 hart_delimiter_u delimiter; uint8_t data_length; // 数据域长度 } hart_command_rsp_t; // 主机请求指令接口参数定义:hart_master_command_req #pragma pack() extern BOOL (*hart_command_rsp_ptr_arr[HART_COMMAND_MAX])(const hart_command_rsp_t *const data, hart_response_t *resp); extern BOOL hart_master_rsp_init(const hart_master_init_t *const init); #endif // __HART_MASTER_RSP_H__