SBXTEVT.H
上传用户:shtiemo
上传日期:2017-12-29
资源大小:163k
文件大小:3k
开发平台:

Visual C++

  1. // ============================================================================
  2. //
  3. //  SBXTEvt.H - 系统事件处理相关定义
  4. //
  5. //  SB Version 1.0+, Copyright(c) iESLab, 1996
  6. // 
  7. // By LiangChengHui.
  8. // ============================================================================
  9. #ifndef _SBXTEVT_H__
  10. #define _SBXTEVT_H__
  11. #ifndef _WINDOWS_
  12. #include "windows.h"
  13. #endif
  14. // ---- SB 系统事项及事项参数定义 -----------------------------------------
  15. #define ID_SBXTEvent 2 // SB 系统事项统一编号
  16. // 系统(XT)事项类型枚举
  17. enum SBXTETYPE{
  18. sbxtKJEvent, // 开机事项(SB 启动)
  19. sbxtGJEvent, // 关机事项(SB 正常卸载)
  20. sbxtTWEvent, // 机器脱网事件(SB非正常卸载)
  21. sbxtMJEvent, // 模块加载事项
  22. sbxtMXEvent, // 模块下载事项
  23. sbxtMQEvent, // 模块切换事项
  24. sbxtMDEvent, // 模块被SB删除事项
  25. sbxtNEEvent // 网络错误
  26. };
  27. // 模块启动事项
  28. typedef struct tagSBMJData
  29. {
  30. TCHAR pcName[16]; // 模块所属机器名
  31. }SBMJDATA, *PSBMJDATA;
  32. // 模块正常下载事项
  33. typedef struct tagSBMXData
  34. {
  35. TCHAR pcName[16]; // 模块所属机器名
  36. }SBMXDATA, *PSBMXDATA;
  37. // 模块被删除出系统事项
  38. typedef struct tagSBMDData
  39. {
  40. TCHAR pcName[16]; // 模块所属机器名
  41. }SBMDDATA, *PSBMDDATA;
  42. // 模块切换事项
  43. typedef struct tagSBMQData
  44. {
  45. TCHAR pcName[16]; // 模块所属机器名
  46. BYTE bOldStatus; // 切换前的模块属性
  47. BYTE bNewStatus; // 切换后模块属性
  48. BYTE bTimes; // 模块总切换次数
  49. BYTE bAttrib; // 切换性质(自动、手动)
  50. }SBMQDATA, *PSBMQDATA;
  51. typedef struct _tagXTEVENT{
  52. SBXTETYPE EventType; // 事项类型
  53. time_t EventTime; // 发生时间
  54. TCHAR BJId[16]; // 部件名称
  55. DWORD dwReserved; // 为将来功能扩展预留
  56. union{ // 事件对象
  57. SBMJDATA obSBMJData;
  58. SBMXDATA obSBMXData;
  59. SBMDDATA obSBMDData;
  60. SBMQDATA obSBMQData;
  61. };
  62. }SBXTEVENT,*PSBXTEVENT;
  63. // 发生了一个系统事件,调用此函数广播并存入本地库留待发送至SQL
  64. BOOL OneSBXTEventOccur(PSBXTEVENT, BOOL fWait=FALSE);
  65. #define SBXTEvt_NetErrSensitiveCoeff 2 // 网络错误反应灵敏度-两次出错即作出反应
  66. #define SBXTEvt_SavetoSQLtimeInterval (4*3600) // 每四小时将未存之事项SQL
  67. void SaveUnsavedSBXTEvent(BOOL, BOOL); // 存储尚未存入SQL的系统事项,该函数由
  68. // SB 整点调用
  69. //------------------------------- 事项发送数据结构 -------------------------------------
  70. #ifndef MAX_INF_BLOCK // 此段定义源自 EVENT.H
  71. #pragma pack (push)
  72. #pragma pack (1)
  73. #define MAX_INF_BLOCK 2 // 一帧中的最大信息块个数
  74. #define EVENT_DATA_LEN 1024 // 缓冲区长度
  75. // 帧结构
  76. typedef struct _EVENT_SB_BUF{
  77. CHAR bySB_Reserve[16]; // SB 保留
  78. USHORT nDataTotalLength; // 数据总长度
  79. USHORT nInfBlockNum; // 信息块个数
  80. USHORT pInfPoint[MAX_INF_BLOCK]; // 各组信息块指针
  81. CHAR byBuffer[EVENT_DATA_LEN]; // 数据缓冲区
  82. }EVENT_SB_BUF, *PEVENT_SB_BUF;
  83.  // 通信数据结构
  84. typedef struct _EVENTBLOCK {
  85. CHAR byType; // 类型
  86. USHORT nDataLength; // 数据长度
  87. BYTE pData[1]; // 数据
  88. }EVENTBLOCK, *PEVENTBLOCK;
  89. #pragma pack(pop)
  90. #endif
  91. #endif