#if !defined(_INCLUDE_HEAD_H) #define _INCLUDE_HEAD_H #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include //AIR STULZ 设备Dll错误代码定义 enum __ERRO_CODE_AIR_STULZ { ERR_CODE_AIR_STULZ_COM_FAULT = 20801 , // AIR_STULZ设备串口通信故障 ERR_CODE_AIR_STULZ_COM_BUSY , // AIR_STULZ设备串口通信忙 ERR_CODE_AIR_STULZ_COM_READ_NO_DATA , //AIR_STULZ设备没有读到数据 ERR_CODE_AIR_STULZ_COM_READ_LEN_OVER , // AIR_STULZ设备读到数据长度超时限制 ERR_CODE_AIR_STULZ_COM_LRC_LOST , // AIR_STULZ设备lrc校验失败 EER_CODE_AIR_STULZ_COM_WRITE_DATA , // AIR_STULZ设备写串口错误 EER_CODE_AIR_STULZ_COM_REGNUM , // AIR_STULZ设备寄存器数 ERR_CODE_AIR_STULZ_COM_VARLEN , // AIR_STULZ设备变量长度错误 }; #pragma pack(push) //保存对齐状态 #pragma pack(1)//设定为4字节对齐 typedef struct tagPORTPARAM { BYTE PortNo; //Com端口 DWORD BaudRate; //波特率 BYTE ByteSize; /* Number of bits/byte, 4-8 */ BYTE Parity; /* 校验位 0-4=None,Odd,Even,Mark,Space */ BYTE StopBits; /* 结束位 0,1,2 = 1, 1.5, 2 */ BYTE StartAddr; //起止地址 int Interval; //间隔时间 tagPORTPARAM() { PortNo=3; BaudRate=CBR_9600; ByteSize=8; Parity=NOPARITY; StopBits=ONESTOPBIT; StartAddr=1; Interval=1000; } }PORTPARAM,*PPORTPARAM; //写寄存器请求 typedef struct __REQUESTPARAM { BYTE AddrCode; //地址码 BYTE FuncCode; //功能码 BYTE Number; //下面字节数 BYTE StartAddr; //起始地址 BYTE Crc[2]; //校验码 }REQUESTPARAM, *pREQUESTPARAM; typedef struct __REQUESTWRPARAM { BYTE AddrCode[2]; //控制器ID BYTE FuncCode[2]; //命令ID BYTE StartAddr[4]; //起始地址 BYTE RequestRegNum[4]; //读取的寄存器个数 BYTE Data[8]; //设置的数据 BYTE Crc[2]; //校验码位 }REQUESTWRPARAM, *pREQUESTWRPARAM; //设置的通讯协议基本参数 typedef struct __SETBASEPARAM { int nAddr;//地址码 int nStartAddr;//起始地址 int nNum;//下面的字节数 BYTE FuncCode;//功能码 }SETBASEPARAM, *pSETBASEPARAM; //读应答数据结构 typedef struct __STATUS_STRUCT { BYTE AddrCode; //控制器ID BYTE FuncCode; //命令ID BYTE RtnByteNum; //返回字节个数 }STATUS_STRUCT, *PSTATUSSTRUCT; typedef struct __RESPONSE_STRUCT { STATUS_STRUCT StatusStruct; char StrRtnMsg[10]; //返回字符串 //BYTE Crc[2]; //校验码位 }RESPONSE_STRUCT, *PRESPONSE_STRUCT; #pragma pack(pop)//恢复对齐状态 #endif //!defined(_INCLUDE_HEAD_H)