CenterProtocolF.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. //---------------------------------------------------------------------------
  2. #ifndef CenterProtocolFH
  3. #define CenterProtocolFH
  4. //---------------------------------------------------------------------------
  5. //---------------------------------------------------------------------------
  6. #include <vcl.h>
  7. //---------------------------------------------------------------------------
  8. /*
  9. ******************************************************************************
  10. * 시스템 ID
  11. ******************************************************************************
  12. */
  13. #define PKT_STX 0x02
  14. #define PKT_ETX 0x03
  15. #define VMSM_NODE_ID 0x01
  16. #define VMSP_NODE_ID 0x04
  17. #define OPER_NODE_ID 0x09
  18. #define VMSM_TASK_ID 0x02
  19. #define VMSP_TASK_ID 0x01
  20. #define OPER_TASK_ID 0x01
  21. #define PRCS_TASK_NO 0x01 // default
  22. #define OPE_SYSTEM_CD 0x03 // 운영단말 시스템 코드
  23. #define OP_REG_INCIDENT 0x21 // 운영 단말 P/G ==> (VMS메시지 P/G, 운영 단말 P/G, 상황판 P/G), 돌발정보 등록 알림
  24. #define OP_REG_DISP_VMS_MSG 0x22 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS표출문안 등록 알림
  25. #define OP_REG_DFLT_VMS_MSG 0x23 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS디폴트문안 등록 알림
  26. #define OP_REG_EMER_VMS_MSG 0x24 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS긴급문안 등록 알림
  27. #define OP_CTRL_VMS 0x71 // 운영 단말 P/G ==> (VMS P/G), VMS 제어
  28. // 8 P04010 VMS 제공 VMS서버 1.0 127.0.0.1 5 Y
  29. //13 P03030 VMS메시지 가공 VMS서버 1.0 127.0.0.1 5 Y
  30. /*
  31. ******************************************************************************
  32. * 시스템 상수 정의
  33. ******************************************************************************
  34. */
  35. #define INT_DEFAULT_TIMEOUT 3 /* 3 Sec */
  36. #define INT_MAX_RETRY_COUNT 3 /* 3 EA */
  37. /*
  38. ******************************************************************************
  39. * 프로토콜에서 사용되는 구조체 정의
  40. ******************************************************************************
  41. */
  42. //---------------------------------------------------------------------------
  43. #pragma pack(push, 1)
  44. //---------------------------------------------------------------------------
  45. /*
  46. * HEAD
  47. */
  48. typedef struct
  49. {
  50. BYTE Stx;
  51. BYTE Seq;
  52. BYTE MsgCl;
  53. BYTE RespTp;
  54. BYTE SendNodeId;
  55. BYTE SendTaskId;
  56. BYTE SendTaskNo;
  57. BYTE RecvNodeId;
  58. BYTE RecvTaskId;
  59. BYTE RecvTaskNo;
  60. BYTE SystemCode;
  61. BYTE OpCode;
  62. int BodySize;
  63. } HEADER;
  64. typedef struct
  65. {
  66. BYTE Crc; // STX부터 Data까지의 XOR 값, 0x00
  67. BYTE Etx;
  68. } TAIL;
  69. #define OPER_ID_SZ 10
  70. #define VMS_ID_SZ 10
  71. #define DATETIME_SZ 14
  72. typedef struct
  73. {
  74. BYTE OperId[OPER_ID_SZ];
  75. BYTE VmsId[VMS_ID_SZ];
  76. BYTE ReqTime[DATETIME_SZ];
  77. BYTE Command;
  78. } VMS_CONTROL;
  79. // ‘X' : Reset
  80. typedef struct
  81. {
  82. HEADER Head;
  83. VMS_CONTROL Control; // Command = 'X'
  84. TAIL Tail;
  85. } VMS_REQ_RESET;
  86. // ‘B' : Blank 제어
  87. typedef struct
  88. {
  89. HEADER Head;
  90. VMS_CONTROL Control; // Command = 'B'
  91. TAIL Tail;
  92. } VMS_REQ_BLANK;
  93. // ‘P' : 통신장애시간설정
  94. typedef struct
  95. {
  96. HEADER Head;
  97. VMS_CONTROL Control; // Command = 'P'
  98. BYTE ErrMin; // VMS와 통신 장애 판단 기본 값(분) default: 0분
  99. TAIL Tail;
  100. } VMS_REQ_ERR_MIN;
  101. // ‘M' : 모듈장애율설정
  102. typedef struct
  103. {
  104. HEADER Head;
  105. VMS_CONTROL Control; // Command = 'M'
  106. BYTE ErrRate; // module을 장애로 처리하는 pixel백분율(%), default: 10%
  107. TAIL Tail;
  108. } VMS_REQ_ERR_NODL;
  109. // ‘L': 휘도 설정
  110. typedef struct
  111. {
  112. HEADER Head;
  113. VMS_CONTROL Control; // Command = 'L'
  114. BYTE LumiMode; // 0: 자동모드, 1:주간모드, 2:야간모드, 3:수동모드
  115. BYTE Value; // 주간,야간,수동 모드일때 설정값(0~100), 자동은 0
  116. TAIL Tail;
  117. } VMS_REQ_LUMI;
  118. // ‘S': 전광판전원 설정
  119. typedef struct
  120. {
  121. HEADER Head;
  122. VMS_CONTROL Control; // Command = 'S'
  123. BYTE Power; // 0: 전원 차단, 1:전원 재개
  124. TAIL Tail;
  125. } VMS_REQ_POWER;
  126. #define MAX_DB_SCERNRIO 9
  127. typedef struct
  128. {
  129. BYTE DispSeq; // 표출 파일 순번 (0 인 경우 표출 안함)
  130. BYTE DispSec; // 표출 시간(초)
  131. } VMS_DB_SCNR_INFO;
  132. typedef struct
  133. {
  134. VMS_DB_SCNR_INFO Info[MAX_DB_SCERNRIO];
  135. } VMS_DB_SCNR;
  136. typedef struct
  137. {
  138. HEADER Head;
  139. VMS_CONTROL Control; // Command = 'S'
  140. VMS_DB_SCNR Scnr; // 최대 9개 메시지
  141. TAIL Tail;
  142. } VMS_REQ_DB_SCENARIO;
  143. typedef struct
  144. {
  145. HEADER Head;
  146. TAIL Tail;
  147. } VMS_NOTI_REG_INCD;
  148. typedef struct
  149. {
  150. HEADER Head;
  151. TAIL Tail;
  152. } VMS_NOTI_REG_DSPL_MSG;
  153. typedef struct
  154. {
  155. BYTE VmsId[VMS_ID_SZ];
  156. } NOTI_VMS;
  157. typedef struct
  158. {
  159. HEADER Head;
  160. NOTI_VMS Data;
  161. TAIL Tail;
  162. } VMS_NOTI_REG_DFLT_MSG;
  163. typedef struct
  164. {
  165. HEADER Head;
  166. NOTI_VMS Data;
  167. TAIL Tail;
  168. } VMS_NOTI_REG_EMGN_MSG;
  169. //---------------------------------------------------------------------------
  170. #pragma pack(pop)
  171. //---------------------------------------------------------------------------
  172. #endif