📄 system.h.bak
字号:
#ifndef _COM_TOOL_H
#define _COM_TOOL_H
#define _DEBUG_STATUS 1
#define SWITCHCOUNT 3
#define SIMULATECOUNT 3
#define CST_SUBCOUNT 72 //直流电源柜支路数
#define ID_VER "10" //版本号
#define ID_COM_SCAN 8000 //扫描定时器ID
#define ID_DEBUG_TEST 4001 //测试定时器ID
#define ID_MSG_TIMEOUT 6000 //短信超时定时器id
#define ID_VOICE_TIMEOUT 6001 //电话语音定时器id
#define ID_CONNECT_TIMEOUT 6002 //通话定时器id
#define ID_UDP1_SCAN 3010
#define ID_UDP2_SCAN 3011
#define MDF_DEFAULT_PORT 9001 //缺省MDF端口
#define WEB_DEFAULT_PORT 9002 //缺省WEB端口
#define TIMER_MSG_RUN 1 //短信定时器位
#define TIMER_VOICE_RUN 2 //语音定时器位
#define TIMER_SCAN_RUN 4 //设备扫描定时器位
#define MSG_LEN 100 //短信字符串长度
#define MSG_TYPE_EQ 0 //监测设备短信
#define MSG_TYPE_WEB 1 //Web服务器短信
#define VOICE_LOOP 1 //循环播放三次
#define CALL_TIME 1 //重复拨电话三次(拨打失败)
#define MSG_TIME 1 //重复发短信三次(发送失败)
#define TIMEOUT_MSG 60000 //短信超时时间 10 秒
#define TIMEOUT_VOICE 90000 //通话拨号超时而且无响应
#define TIMEOUT_CONNECT 300000 //通话超时时间
#define ALARM_TIMEOUT 4000 //告警定时时间超时
#define WM_REFRESH WM_USER + 1100 //监测中心刷新
#define WM_VOICE_CLOSE WM_USER + 1200 //语音关闭
#define WM_VOICE WM_USER + 1000 //语音消息
#define WM_SHELLNOTIFY WM_USER + 1001 //最小化消息
#define WM_COMMRESTART WM_USER + 1002 //服务器重启
#define WM_GSMMSG WM_USER + 1003 //短消息发送
#define WM_SERVICESTATUS WM_USER + 1004 //服务设备状态改变
#define WM_WRITELOG WM_USER + 2000 //日志记录
#define WM_SHOWLOG WM_USER + 2001 //记录显示
#define WM_SHOWERROR WM_USER + 2002 //错误显示
#define WM_STATUS_CHANGE WM_USER + 3001 // 设备监测端口状态改换消息. ,即告警销警处理消息
#define WM_DEVICE_ALARM WM_USER + 3002 // 设备告警消息.
#define WM_DEVICE_DATA WM_USER + 3003 // 接收到设备发送回来的数据.
#define WM_DEVICEONLINE_STATUS WM_USER + 3004 // 设备在线离线状态.
/*********************************************************/
/* 设备类别码定义 */
#define EQU_CODE_MDF 0x81 //MDF智能告警器
#define EQU_CODE_CABLE 0x82 //电缆监测设备
#define EQU_CODE_INDUCTCIRCLE 0x83 //工频感应环
#define EQU_CODE_ACPOWERCABINET 0x2c //交流电源分配柜
#define EQU_CODE_DCPOWERCABINET 0x25 //直流电源分配柜
#define EQU_CODE_ACPOWERBOX 0x2d //交流电源分配箱
#define EQU_CODE_DCPOWERBOX 0x2e //直流电源分配箱
#define EQU_CODE_AMBIENT 0x8a //环境监测模块
/*********************************************************/
#define CONFIRM_TIME 3 //出错数据重复发送次数
#define PORT_NORMAL 0 //端口正常状态
#define PORT_WARNING 1 //端口警告状态
#define CMD_HOST 0 //本机发出的命令
#define CMD_WEB 1 //WEB服务器发出的命令
#define CRDR_NORMAL 0 //有正常响应返回
#define CRDR_TIMEOUT 1 //超时无返回
#define CRDR_EXCEPT 2 //异常响应
#define CRDR_ERROR 3 //未知设备非法数据
#define CRDT_HOST 0 //监测中心
#define CRDT_MODULE 1 //监测模块
#define CRDT_WEB 2 //Web服务器
#define PTC_MDF 0x81 //MDF监测设备协议
#define PTC_WEB 0x82 //Web监测服务器协议
#define PORT_SWITCH 0 //开关量
#define PORT_SIMULATE 1 //模拟量
#define COMM_SCANTIME 4500 //设备轮询时间5秒
//#define COMM_TIMEOUT 4000 //通讯超时时间4秒
//#define COMM_TYPE_ALL 0 //所有通讯方式(TCP、串口)
#define COMM_TYPE_SC 1 //串口通讯方式
#define COMM_TYPE_TCP 2 //TCP通讯方式
#define COMM_STATE_CUT 0 //通讯未连接
#define COMM_STATE_IDLE 1 //通讯空闲
#define COMM_STATE_RUN 2 //通讯进行中
#define TYPE_SWITCH 0 //开关类型
#define TYPE_SIMULATE 1 //模拟量类型
#define VOICE_NUM 0 //语音号码
#define VOICE_FILE 1 //语音文件
#define FILE_HEAD "$2*n" //设置文件头4字节
#define FILE_BLOCK '|' //分隔符要唯一
#define FILE_DBUI 0x38 //数据库登录用户ID
#define FILE_DBPW 0x4C //数据库登录用户密码
#define FILE_SWEBIP 0x54 //webIP地址名
#define FILE_SDBIP 0x2E //数据库IP地址名
#define FILE_NSCP 0x2D //串口端口
#define FILE_NGSMP 0x51 //GSM端口
#define FILE_NTCPP 0x4A //TCP端口
#define FILE_NWEBP 0x67 //WEB端口
#define FILE_SMSG 0x23 //短信中心
#define FILE_BMSG 0x3B //启用短信功能
#define FILE_BVOICE 0x36 //启用语音功能
#define FILE_BWEB 0x41 //启用Web服务器
#define FILE_MASK_BM 0x33 //短信功能
#define FILE_MASK_BV 0x33 //语音功能
#define FILE_MASK_BW 0x33 //Web服务功能
#define GSM_MSG 0 //短信告警
#define GSM_VOICE 1 //语音告警
#define ALARM_LIMIT 2 //告警次数累加
#define SOCK_CU 0 //SOCKET采集单元类型
#define SOCK_WEB 1 //SOCKET服务器WEB类型
#define COMM_COM 0 //串口通讯方式
#define COMM_UDP 1 //UDP通讯方式
#define COMM_TCP 2 //TCP通讯方式
#define SERVER_START 0 //启动服务器
#define SERVER_SCAN 1 //扫描监测设备
#define SERVER_REFRESH 2 //刷新数据库
#define SERVER_STOP 3 //停止服务器
#define EQ_MAX 256 //支持设备的最大
#define PORT_MAX 128 //设备对应的最大端口
#define WM_ERRORMESSAGE WM_USER + 200 //错误消息
#define WM_LOGMESSAGE WM_USER + 201 //日志消息
//*通讯协议包*
//##ModelId=4652869D0186
typedef struct {
UCHAR SOI ; //起始标志
UCHAR VER ; //通讯版本
UCHAR ADR ; //设备地址
UCHAR CID1 ; //设备类型
UCHAR CID2 ; //设备命令
UCHAR LENGTH[2] ; //内容长度
UCHAR INFO[1024] ; //数据内容
UCHAR CHKSUM[2] ; //校验码
UCHAR EOI ; //结束标志
DWORD DataLen ; //数据长度
} sCommPack ;
//*命令结构*
//##ModelId=4652869D0196
typedef struct {
UCHAR ucCmd ; //执行命令
CString strPack ; //发送命令包
CString strTime ; //发送时间
int nType ; //命令类型 0 -- 监测中心 ; 1 -- Web服务器
}sCmd ;
//*告警屏蔽*
//##ModelId=4652869D01B5
typedef struct{
int nTime ;
double dUpper ;
double dLower ;
}sAShield ;
//*监测模块设备端口表*
//##ModelId=4652869D01B7
typedef struct {
int nPID ; //端口ID
int SVMID ; //监测模块ID
CString strPortSort ; //端口序号
CString strSpotSort ; //被监测点序号
CString strSpotNote ; //被监测点描述
CString strSVDType ; //被监测设备类型
CString strSVDName ; //被监测设备名称
CString strSVDCity ; //被监测设备所在城市
CString strSVDArea ; //被监测设备所在地区
CString strSVDAddr ; //被监测设备所在地址
CString strSVDPlace; //被监测设备的具体位置(机房名称/装备地点)
CString strAlarmL1 ; //一级告警
CString strAlarmL2 ; //二级告警
CString strAlarmL3 ; //三级告警
int nSVDSpotNum ; //被监测设备的被监测点数
int nSVDContainID ; //所在地ID
int nSVDType ; //被监测设备类型
int nSpotType ; //被监测点类型 0 开关量 ; 1 模拟量
int nSVDID ; //被监测设备ID
int nType ; //0 开关量 ; 1 模拟量
double dValue ; //双精度报警值
int nState ; //0 端口正常 1 端口报警
int nLevel ; //告警级别 0 为无 ,一级以上为1~n
int nAlimitNum ; //告警门限
int nACount ; //告警次数
int nAShieldNum ; //告警屏蔽数
int nANum ; //告警累积
LPVOID pShield ; //告警屏蔽指针
BOOL bIsUse ; //是否使用标志
}sSVMPort ;
//*测模块设备结构*
//##ModelId=4652869D01D4
typedef struct {
int nNo ; //设备建立时的序号
int nID ; //设备ID号
int nTID ; //设备类型ID
UINT unEQState ; //0 正常 , 1 告警状态 2 异常设备(未能正确初始化)
UINT unCommState ; //0 未连接 , 1 连接后待机 , 2 设备通讯中 ,3 设备故障
int nModel ; //设备通讯模式1 串口 2 TCP
int nFault ; //出错数 错误数超过5次认为通讯故障(暂定)
int nTimeOut ; //超时数 超时数超过5次认为通讯断开(暂定)
CString strName ; //设备的名称
CString strType ; //设备的类型
CString strIDAddr ; //协议包中的ADR项
CString strNote ; //设备类型描述
CString strCommAddr ; //用于电话号码、IP地址等表示。
CString strScanPack ; //轮询包暂存
sSVMPort sPort[PORT_MAX] ; //最大检测端口
int nPortNum ; //端口总数
LPVOID pCmdList ; //命令队列链表指针
//LPVOID pSock ; //设备用于TCP通讯的Socket指针
//HANDLE hEvent ; //设备操作状态信号旗
//HANDLE hCmdEvent ; //命令队列信号旗
BOOL bResponse ; //是否有响应包
BOOL bIsUse ; //使用标志位
//BOOL bIsTimeOut ; //是否已设置超时定时
}sCommEQ ;
//*通讯处理包*
//##ModelId=4652869D01D6
typedef struct {
UINT unID ; //线程队列标示
CString strSource ; //数据来源地址
CString strBuf ; //数据包记录
UCHAR ucBuf[1024] ; //数据缓存
int nRLen ; //数据长度
LPVOID pSock ; //socket 通讯指针(现仅用于Web通讯回复)
sCommPack InPack ; //通讯数据包
sCommEQ* pEQ ; //通讯设备指针
UINT unState ; //当前状态 0 未开始处理 1 正在处理 2 处理结束 3 空闲线程
int nType ; //通讯包类型 0--设备,1--Web
//CWinThread* pThread ; //处理线程句柄
}sCommItem ;
//*手机电话通讯*
//##ModelId=4652869D01F4
typedef struct {
int nID ; //用户ID
CString strName ; //用户真实姓名
CString strPhone ; //用户电话
CString strMobile ; //用户手机
BOOL bFMsg ; //短信标志
BOOL bFPhone ; //电话标志
BOOL bFMobile ; //手机标志
}sPerson ;
//*Socket通讯*
//##ModelId=4652869D0203
typedef struct {
LPVOID pSock ;
CString strIP ;
BOOL bIsConnect ;
}sSocket ;
//*本机IP地址*
//##ModelId=4652869D0213
typedef struct {
CString strIp ;
BYTE f0 ;
BYTE f1 ;
BYTE f2 ;
BYTE f3 ;
}sHostIp ;
int BytesToString(const UCHAR* pSrc, char* pDst, int nSrcLength) ;
int StringToBytes(const char* pSrc, UCHAR* pDst, int nSrcLength) ;
int String2Hex(CString& str, BYTE *senddata,int iLen);
int MsgCopy(const char* pSrc, char* pDst,int nSrcLength) ;
UINT ServerThd(LPVOID lp) ;
UINT WriteDBThd(LPVOID lp) ;
//存储系统基本配置信息
//##ModelId=4652869D0222
typedef struct {
CString UserID;
CString UserPassword;
CString DBIP; //数据库机器名
CString DBNam; //数据库名称
CString WebIP; //WEB服务器名
CString Phone; //短信手机号码
CString CallTel; //告警后的语音呼叫号码
int WebPort; //WEB服务器的接收端口
int ServerPort; //接收WEB指令的端口
int DevicePort; //设备监测端口
int GSMPort; //GSM端口
CString SMSCenter; //端消息中心号码
BOOL SMSOpen; //起用短信功能
BOOL VoiceOpen; //起用语音功能
UINT MonitorStatus; //当前监测服务状态
int Interval; //轮询时间间隔(毫秒)
int SaveLog; //是否保存运行日志
int Autostart; //自动起动监测
int PlaySound; //播放告警声音
CString AlarmRange; //告警范围
} CBaseInfo;
//*通讯处理包*
//##ModelId=4652869D0233
typedef struct {
char ucBuf[1024]; //数据缓存
int nRLen; //数据长度
UINT addrType; //0-COM|1-UDP|2-TCP
sCommPack InPack ; //通讯数据包
CString address; //通讯设备源地址
UINT iPort; //使用的端口
UINT unState; //当前状态 0-未开始处理 1-处理结束 3-异常数据包
CTime time; //接收时间或发送时间
int nFromType ; //通讯包来源类型 0--设备,1--Web
int iCmd; //发送的数据命令
} CInfoFrame ;
//*基本设备通信信息,用在发送线程中记录设备通信信息*
//##ModelId=4652869D0243
typedef struct {
int nID; //设备ID
int nModel; //设备通讯模式 0-UDP;1-串口;2-TCP;3--RS485
int iPort; //IP协议的端口号或串口号
int iReceive; //接收数
int iSendCount; //发送数,当一条发送命令超过3次时,认为不在线
int iCmd; //发送命令字
CString sIP; //协议包中的目的IP或串口
CString strType; //设备类型码
CString strIDAddr; //协议包中的ADR项
CString strSend; //发送的数据资料
CTime tmSend; //发送时间
CTime tmReceive; //接收时间
int iState; //是否在线 0-不在线; 1-在线
int isDisable; //是否在线 0-正常监测; 1-禁止
}sUnit;
//*Socket通讯*
//typedef struct {
// LPVOID pSock ;
// SOCKADDR_IN addrr ;
// BOOL bIsConnect ;
//}CSocketInfo ;//*本机IP地址*
//
//##ModelId=4652869D0252
typedef struct {
int SVMPID; //端口序列ID
int SVMPSort; //监测设备端口序号
int SVMID; //设备ID
CString SVMTrueName; //设备名称
CString SVMTNUM; //设备类型号
CString SourceAddr; //设备通信原地址 IP地址或串口地址
CString CodeAddr; //设备地址编号
char AlarmState; //当前状态 0-未告警;1-告警;
double value; //当前值
CTime tmStartTime; //起始时间
CTime tmUpdateTime; //起始时间
int AlarmLevel; //告警级别
BOOL onLine; //在线状态 0-不在线;1-在线;
CString strComment; //说明
}CEquipmentPort; //监测设备端口状态
//直流电源柜数据结构
//##ModelId=4652869D0271
typedef struct {
unsigned int m_Addr;
unsigned int m_AddrType;
int m_subAlarm;
int m_Alarm;
long m_majorPower; //主种电压
long m_minorPower; //备路电压
long m_majorCarrent; //主种电流
long m_minorCarrent; //备路电流
int m_sub[CST_SUBCOUNT];
CTime m_time;
} tyPowerDC;
//直流电源柜数据结构
//##ModelId=4652869D0280
typedef struct {
unsigned int m_Addr;
unsigned int m_AddType;
int m_arrCable[12][2];
int m_arrAlarm[4];
CTime m_time;
} tyCable;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -