#if !defined(_INCLUDE_HEAD_H) #define _INCLUDE_HEAD_H #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include // Sms Dll错误代码定义 enum __ERROR_CODE_SMS { ERR_CODE_SMS_OPEN_COMM = 80201 , // 打开短信猫串口失败 ERR_CODE_SMS_GSM_NO_RESPONSE = 80202 , // 短信猫没有响应 ERR_CODE_SMS_GSM_ERROR_RESPONSE = 80203 , // 发送失败可能是卡里没钱 ERR_CODE_SMS_GSM_UNKOWN_RESPONSE = 80204 , // 未知响应,也有可能发送成功 }; //-------------------------------------------------------------------------------- // FOR gsm sms #define GSM_MAX_WAIT_TIME 12000 //发送短消息时的最长等待时间 #define GSM_RESPONSE_NORESPONSE 0 //无响应 #define GSM_RESPONSE_OK 1 //正确返回 #define GSM_RESPONSE_ERROR 2 //返回错误信息,含错误代码 #define GSM_RESPONSE_UNKNOWN 3 //返回无法确定的信息 #define GSM_CMS_ERROR 0 //CMS Error -- Message service error #define GSM_CME_ERROR 1 //CME Error #define NOP 183 //非可见字符 const int MAX_SIZE = 512; #define NUM_NAT 0x81 // 非国际号码前缀 phone number type for non- '+'(national) numbers #define NUM_INT 0x91 // 国际号码前缀 phone number type for numbers prefixed by '+'(international) #define MAX_WRITE_STR_LEN 3840 #define MAX_READ_STR_LEN 512//256 #define MIN_READ_STR_LEN 6 #define MAX_TMPSTR_LEN 512//256 #define PDU_MAXNUMLEN 70 // 最大号码长度 #define PDU_MAXUNICODELEN 70 // pdu Unicode的最大长度 #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 Start; //起始位 BYTE AddrCode[2]; //地址码 BYTE FuncCode[2]; //功能码 BYTE StartAddr[4]; //起始地址 BYTE RequestRegNum[4]; //读取的寄存器个数 BYTE Lrc[2]; //校验码位 BYTE End[2]; //结束符 }REQUESTPARAM, *pREQUESTPARAM; typedef struct __REQUESTWRPARAM { BYTE Start; //起始位 BYTE AddrCode[2]; //地址码 BYTE FuncCode[2]; //功能码 BYTE StartAddr[4]; //起始地址 BYTE RequestRegNum[4]; //读取的寄存器个数 BYTE Data[8]; //设置的数据 BYTE Lrc[2]; //校验码位 BYTE End[2]; //结束符 }REQUESTWRPARAM, *pREQUESTWRPARAM; //设置的通讯协议基本参数 typedef struct __SETBASEPARAM { int nAddr;//地址码 int nStartAddr;//起始地址 int nRegNum;//读取的寄存器个数 BYTE FuncCode;//功能码 }SETBASEPARAM, *pSETBASEPARAM; //读应答数据结构 typedef struct __STATUS_STRUCT { BYTE Start; //起始位(都是:号开头) BYTE AddrCode[2]; //地址码 BYTE FuncCode[2]; //功能码 BYTE RtnByteNum[2]; //返回字节个数 }STATUS_STRUCT, *PSTATUSSTRUCT; typedef struct __RESPONSE_STRUCT { STATUS_STRUCT StatusStruct; char StrRtnMsg[80]; //返回字符串 BYTE Lrc[2]; //校验码位 BYTE End[2]; //结束码 0x0d、0x0a(回车、换行符) }RESPONSE_STRUCT, *PRESPONSE_STRUCT; #pragma pack(pop)//恢复对齐状态 #endif //!defined(_INCLUDE_HEAD_H)