123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #pragma once
- #include "Const.h"
- 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;
- #pragma pack(push) //保存对齐状态
- #pragma pack(1) //设定为1字节对齐
- //用于modbus ascii码协议
- //------------------------------------------------------------
- typedef struct __ASC_STATUS_STRUCT
- {
- BYTE start; //起始位(都是:号开头)
- BYTE AddrCode[2]; //地址码
- BYTE FuncCode[2]; //功能码
- BYTE RtnByteNum[2]; //返回字节个数
-
-
- }ASC_STATUS_STRUCT, *pASC_STATUS_STRUCT;
- typedef struct __ASC_RESPONSE_STRUCT
- {
- ASC_STATUS_STRUCT StatusStruct;
- char StrRtnMsg[80]; //返回字符串
- BYTE lrc[2]; //校验码位
- BYTE end[2]; //结束码 0x0d、0x0a(回车、换行符)
- }ASC_RESPONSE_STRUCT, *pASC_RESPONSE_STRUCT;
- //设置的通讯协议基本参数
- //在SUTLZ设备中,SETBASEPARAM结构中的参数解释:
- // int nAddr - 控制器ID
- // int nStartAddr - 如果命令ID为4,表示需读的EEPROM地址;其他的读命令ID,表示变量所在数据包中字节索引号
- // int nRegNum - 读取的寄存器个数, 在stulz空调协议中,它表示是数据和校验位的字节数
- // BYTE FuncCode - 命令ID
- typedef struct __SETBASEPARAM
- {
- int nAddr;//地址码
- int nStartAddr;//起始地址
- int nRegNum;//读取的寄存器个数
- BYTE FuncCode;//功能码
- }SETBASEPARAM, *pSETBASEPARAM;
- //包含设备的端口、波特率
- typedef struct __COMMDEVBASE
- {
- SETBASEPARAM SetBasePara;
- int iPort;
- int iBaudRate;
- int iDataBit;
- int iStopBit;
- int iParity;
- int iInterval;
- }COMMDEVBASE, *pCOMMDEVBASE;
- typedef struct _READDEVREALDATA
- {
- COMMDEVBASE CommDevBase;//设备基本参数
- char chDevName[MAX_EQUIP_DESC];//设备名称
- char chVarName[MAX_EQUIP_DESC];//变量名称
- char chDevUid[20];//设备UID
- int iVarID;//变量ID
- double dbData;//变量值
- int iUpperlimit;//变量的上限
- int iLowerlimit;//变量的下限
- int iNormalstate;//变量的正常状态
- int iStatus;//状态值
- DWORD dwTick;//采集频率
- BOOL bIsSave;//是否保存
- char chIp[30];//IP地址
- int iIpport;//ip端口
- // for Jesse 091108
- int iIdentifyTime; //辨别时间(单位:秒),一个报警状态持继IdentifyTime才触发报警,只针对第一次报警进行判断
- int iReDetectTime; //重新检测等待时间(单位:分钟),一个报警确认之后就开始进入重新等待时间,如果过了重新等待时间,报警还是存在,继续提醒
- int iNormalIsNotice; //恢复正常是否触发远程报警
- int iWarnLevel; //报警级别
- char chSnmpOid[MAX_OBJ_OID];
- char chSnmpField[MAX_NAME_LENGTH];
- char chVarDesc[MAX_EQUIP_DESC]; // 变量描述,组织报警内容时用到,原因变量名称用中文,脚本解析不了。所以用变量描述来组织报警内容
- int iMaxValue; //最大值
- int iMinValue; //最小值
- int iMaxScale; //最大转换比例
- int iMinScale; //最小转换比例
- }READDEVREALDATA, *pReadDevRealData;
- //网络设备的端口,IP
- typedef struct __NETDEVBASE
- {
- char chIp[30];//IP地址
- int iIpport;//ip端口
- }NETDEVBASE, *pNETDEVBASE;
- #pragma pack(pop) //恢复对齐状态
|