SBXTEVT.H
资源名称:PasRTDat.rar [点击查看]
上传用户:shtiemo
上传日期:2017-12-29
资源大小:163k
文件大小:3k
源码类别:
能源行业(电力石油煤炭)
开发平台:
Visual C++
- // ============================================================================
- //
- // SBXTEvt.H - 系统事件处理相关定义
- //
- // SB Version 1.0+, Copyright(c) iESLab, 1996
- //
- // By LiangChengHui.
- // ============================================================================
- #ifndef _SBXTEVT_H__
- #define _SBXTEVT_H__
- #ifndef _WINDOWS_
- #include "windows.h"
- #endif
- // ---- SB 系统事项及事项参数定义 -----------------------------------------
- #define ID_SBXTEvent 2 // SB 系统事项统一编号
- // 系统(XT)事项类型枚举
- enum SBXTETYPE{
- sbxtKJEvent, // 开机事项(SB 启动)
- sbxtGJEvent, // 关机事项(SB 正常卸载)
- sbxtTWEvent, // 机器脱网事件(SB非正常卸载)
- sbxtMJEvent, // 模块加载事项
- sbxtMXEvent, // 模块下载事项
- sbxtMQEvent, // 模块切换事项
- sbxtMDEvent, // 模块被SB删除事项
- sbxtNEEvent // 网络错误
- };
- // 模块启动事项
- typedef struct tagSBMJData
- {
- TCHAR pcName[16]; // 模块所属机器名
- }SBMJDATA, *PSBMJDATA;
- // 模块正常下载事项
- typedef struct tagSBMXData
- {
- TCHAR pcName[16]; // 模块所属机器名
- }SBMXDATA, *PSBMXDATA;
- // 模块被删除出系统事项
- typedef struct tagSBMDData
- {
- TCHAR pcName[16]; // 模块所属机器名
- }SBMDDATA, *PSBMDDATA;
- // 模块切换事项
- typedef struct tagSBMQData
- {
- TCHAR pcName[16]; // 模块所属机器名
- BYTE bOldStatus; // 切换前的模块属性
- BYTE bNewStatus; // 切换后模块属性
- BYTE bTimes; // 模块总切换次数
- BYTE bAttrib; // 切换性质(自动、手动)
- }SBMQDATA, *PSBMQDATA;
- typedef struct _tagXTEVENT{
- SBXTETYPE EventType; // 事项类型
- time_t EventTime; // 发生时间
- TCHAR BJId[16]; // 部件名称
- DWORD dwReserved; // 为将来功能扩展预留
- union{ // 事件对象
- SBMJDATA obSBMJData;
- SBMXDATA obSBMXData;
- SBMDDATA obSBMDData;
- SBMQDATA obSBMQData;
- };
- }SBXTEVENT,*PSBXTEVENT;
- // 发生了一个系统事件,调用此函数广播并存入本地库留待发送至SQL
- BOOL OneSBXTEventOccur(PSBXTEVENT, BOOL fWait=FALSE);
- #define SBXTEvt_NetErrSensitiveCoeff 2 // 网络错误反应灵敏度-两次出错即作出反应
- #define SBXTEvt_SavetoSQLtimeInterval (4*3600) // 每四小时将未存之事项SQL
- void SaveUnsavedSBXTEvent(BOOL, BOOL); // 存储尚未存入SQL的系统事项,该函数由
- // SB 整点调用
- //------------------------------- 事项发送数据结构 -------------------------------------
- #ifndef MAX_INF_BLOCK // 此段定义源自 EVENT.H
- #pragma pack (push)
- #pragma pack (1)
- #define MAX_INF_BLOCK 2 // 一帧中的最大信息块个数
- #define EVENT_DATA_LEN 1024 // 缓冲区长度
- // 帧结构
- typedef struct _EVENT_SB_BUF{
- CHAR bySB_Reserve[16]; // SB 保留
- USHORT nDataTotalLength; // 数据总长度
- USHORT nInfBlockNum; // 信息块个数
- USHORT pInfPoint[MAX_INF_BLOCK]; // 各组信息块指针
- CHAR byBuffer[EVENT_DATA_LEN]; // 数据缓冲区
- }EVENT_SB_BUF, *PEVENT_SB_BUF;
- // 通信数据结构
- typedef struct _EVENTBLOCK {
- CHAR byType; // 类型
- USHORT nDataLength; // 数据长度
- BYTE pData[1]; // 数据
- }EVENTBLOCK, *PEVENTBLOCK;
- #pragma pack(pop)
- #endif
- #endif