#ifndef __EXTIOCONTROL_H__ #define __EXTIOCONTROL_H__ #include "controlbus.h" #if (CONTROL_BUS == COMM_CAN) /* IO扩展板 */ //------------------------------------------------------------------------------- typedef struct { u8 nodeId; // 节点ID CtrlBusPacket ctrlCmd; // 发给外围板的控制命令 CtrlBusPacket exbSta; // 外围板返回的状态命令 BoardRegVal regVal; // 外围板寄存器值 CtrlBusPacket rdReg; // 读取外围板寄存器值 u8 cmdFlag; // 有新命令标志 N5--接收到控制命令 u8 staFlag; // 有新状态标志 N5--发送BN_CMD_EXSTA u8 refSta; // 刷新状态标志 N5--接收BN_CMD_EXSTA u8 refVer; u8 verFlag; u8 transFlag; // 数据传输标志 发送数据 u8 exbupdateFlag; // 外围板程序升级标志 }ExtIOControl; //------------------------------------------------------------------------------- typedef union { u8 buff[CAN_DATA_LEN]; struct { u16 cmd; u8 subcmd; u16 outctrl; u8 para[3]; } __attribute__ ((packed)) extIOCtrl; // IO扩展板控制 struct { u16 inputSta; u8 rev[6]; } __attribute__ ((packed)) extIOSta; // 状态命令 }ExtIOCommand; //------------------------------------------------------------------------------- // 控制命令定义 /* #define CTRL_CMD_EMB_HEAD_CTRL 0x1000 // 平绣机头板控制 #define CTRL_CMD_EMB_HEAD_PARA 0x1001 // 平绣机头板参数设置 #define CTRL_CMD_HEAD_NVPARA 0x1002 // 平绣机头非易失性参数设置 #define CTRL_CMD_CHENILLE_HEAD_CTRL 0x1010 // 毛巾机头板控制 #define CTRL_CMD_CHENILLE_HEAD_PARA 0x1011 // 毛巾机头板参数设置 #define CTRL_CMD_CHENILLE_NVPARA 0x1012 // 毛巾机头非易失性参数设置 #define CTRL_CMD_COIL_HEAD_CTRL 0x1020 // 缠绕机头板控制 #define CTRL_CMD_COIL_HEAD_PARA 0x1021 // 缠绕机头板参数设置 #define CTRL_CMD_COIL_NVPARA 0x1022 // 缠绕机头非易失性参数设置 */ /* #define CTRL_CMD_COLOR_CTRL 0x1100 // 控制命令 #define CTRL_CMD_COLOR_PARA 0x1101 // 参数设置命令 #define CTRL_CMD_COLOR_NVPARA 0x1102 // 非易失性参数设置 */ #define CTRL_CMD_EXTIO_CTRL 0x1200 // 控制命令 //------------------------------------------------------------------------------- // 子控制命令定义 #define CTRL_SUBCMD_OUT_ON 0x01 #define CTRL_SUBCMD_OUT_OFF 0x02 //------------------------------------------------------------------------------- //------------------------------------------------------------------------------- void InitExtIOControl(ExtIOControl * pCtrl); void SendExtIOCommand(ExtIOControl * pCtrl, ExtIOCommand * pCmd); void RequestExtIOStatus(ExtIOControl * pCtrl); void RequestExtIOVersion(ExtIOControl * pCtrl); //------------------------------------------------------------------------------- #endif #endif