VmsDataTypeF.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. //---------------------------------------------------------------------------
  2. #ifndef VmsDataTypeFH
  3. #define VmsDataTypeFH
  4. //---------------------------------------------------------------------------
  5. #include "VitzroCommF.h"
  6. #define VMS_MAX_RETRY_COUNT 3 /* 3 EA */
  7. #define VMS_DOWNLOAD_TIMEOUT 30 /* 30 sec */
  8. #define VMS_PROVIDE_TIMEOUT 30 /* 30 sec */
  9. #define VMS_BASE_DEFAULT_ID 8000 /* 기본 시나리오 ID */
  10. #define VMS_BASE_MANUAL_ID 9000 /* 수동 시나리오 ID */
  11. // 제공유형
  12. typedef enum en_provide_type
  13. {
  14. provide_event = 1, /* 1:정보가공 완료 */
  15. provide_mode, /* 2:운영모드 변경 */
  16. } EN_PROVIDE_TYPE;
  17. typedef enum en_object_id
  18. {
  19. OBJ_RealTimeDisplay = 1, /* 실시간정보표출 */
  20. OBJ_ScheduledDisplay = 2, /* 계획된정보표출 */
  21. OBJ_DownloadGraphicData = 3, /* 그래픽데이터 다운로드 */
  22. OBJ_StatusControl = 4, /* 상태제어 */
  23. OBJ_StatusSetting = 5, /* 상태설정 */
  24. OBJ_GeneralStatus = 6, /* 기본상태정보 */
  25. OBJ_PowerStatus = 7, /* 전원상태정보 */
  26. OBJ_ModuleStatus = 8, /* 모듈상태정보 */
  27. OBJ_DotStatus = 9, /* 도트상태정보 */
  28. OBJ_ScreenStatus = 10, /* 표출상태정보 */
  29. OBJ_DisplayingData = 11, /* 표출정보 */
  30. OBJ_RealtimeFtpDisplay = 12, /* 표출정보 */
  31. } EN_OBJECT_ID;
  32. // 제어결과
  33. typedef enum en_control_ressult
  34. {
  35. CTL_RESULT_SUCC, /* 0:성공 */
  36. CTL_RESULT_FAIL /* 1:실패 */
  37. } EN_CONTROL_RESULT;
  38. /* 설정 정보 */
  39. typedef struct vms_control_info
  40. {
  41. BYTE CtlType; /* 제어유형 */
  42. BYTE VmsId[INT_VMS_MAX_ID+1]; /* VMS ID */
  43. BYTE CmdTime[INT_VMS_MAX_DATETIME]; /* 명령수행시각 */
  44. BYTE OperId[INT_VMS_MAX_OPER_ID+1]; /* 제어운영자ID */
  45. BYTE Result; /* 제어결과 */
  46. union
  47. {
  48. struct
  49. {
  50. int SchMsgTime; /* 계획된 메시지 동작시간 */
  51. int ModuleTemp; /* 모듈전원 OFF 온도 */
  52. int FanTemp; /* Fan동작 기준온도 */
  53. int HeaterTemp; /* Heater동작 기준온도 */
  54. int ModuleFail; /* 모듈장애 판단율 */
  55. int RetryCount; /* 재시도 횟수 */
  56. int TimeOut; /* 최대응답대기시간 */
  57. } Para;
  58. } Data;
  59. } VMS_CONTROL_INFO;
  60. typedef struct
  61. {
  62. int obj; /* EN_OBJECT_ID */
  63. DWORD DataPacketNumber; /* DataPacket Number */
  64. int Idx; /* index */
  65. } VMS_SERVER_CTL_INFO;
  66. /* 저장 정보 */
  67. // 저장유형
  68. typedef enum en_save_type
  69. {
  70. save_provide = 1, /* 1:제공정보 */
  71. save_download /* 2:다운로드정보 */
  72. } EN_SAVE_TYPE;
  73. typedef struct save_struct
  74. {
  75. BYTE Type; /* 저장유형 */
  76. BYTE Count; /* 정보 갯수 */
  77. void *pObj[INT_MAX_VMS_STATE];
  78. } SAVE_STRUCT;
  79. /* 제공 정보 */
  80. typedef struct provide_struct
  81. {
  82. BYTE Type; /* 제공유형 */
  83. BYTE Count; /* 대상 VMS 개수 */
  84. INT_VMS_MODE Unit[INT_MAX_VMS_MODE];
  85. } PROVIDE_STRUCT;
  86. #define ALL_VMS_ID "ALL" /* 전체 VMS */
  87. // VMS 폼 스케줄종류
  88. typedef enum enFormScheduleType
  89. {
  90. enFormTraffic = 0,
  91. enFormDolbal,
  92. enFormGongsa,
  93. enFormHongbo,
  94. enFormDeture,
  95. enFormFixed,
  96. enFormBase,
  97. enFormCongest,
  98. enFormSafe,
  99. } EN_FORM_SCHEDULE_TYPE;
  100. // VMS 폼 유형
  101. typedef enum enFormKind
  102. {
  103. enFormKindTrfRow1 = 11, // 소통상황(1단)
  104. enFormKindTrfRow2 = 12, // 소통상황(2단)
  105. enFormKindTrfRow3 = 13, // 소통상황(3단)
  106. enFormKindTrfRow4 = 14, // 소통상황(4단)
  107. enFormKindTrfImg = 15, // 소통상황(도형식배경소통정보)
  108. enFormKindCongest = 16, // 정체소통상황
  109. enFormKindDolbal = 20, // 돌발문안
  110. enFormKindGongsa = 30, // 공사/행사문안
  111. enFormKindHongbo = 40, // 홍보문안
  112. enFormKindDetour = 50, // 우회도로
  113. enFormKindSafe = 60, // 재난안전
  114. } EN_FORM_KIND;
  115. // VMS 객체종류
  116. typedef enum en_object_data
  117. {
  118. text_object_data, /* 0:문자열 */
  119. graphic_object_data, /* 1:이미지 */
  120. graphicID_object_data, /* 2:이미지ID */
  121. } EN_OBJECT_DATA;
  122. // VMS 제공정보 객체 코드
  123. typedef enum en_vms_object_type
  124. {
  125. vms_obj_none, /* 0:정보없음 */
  126. vms_obj_text, /* 1:문자열 */
  127. vms_obj_bitmap, /* 2:Bitmap ID */
  128. vms_obj_draw, /* 3:Draw */
  129. } EN_VMS_OBJECT_TYPE;
  130. // 소통등급(혼잡도코드)
  131. typedef enum en_traffic_grade
  132. {
  133. grade_none, /* 0:정보없음 */
  134. grade_smoothness, /* 1:원활 */
  135. grade_delay, /* 2:지체 */
  136. grade_congestion, /* 3:정체 */
  137. } EN_TRAFFIC_GRADE;
  138. // VMS 컬러
  139. typedef enum en_color_code
  140. {
  141. color_black, /* 0:검정색 */
  142. color_red, /* 1:적색 */
  143. color_green, /* 2:녹색 */
  144. color_amber, /* 3:황색 */
  145. } EN_COLOR_CODE;
  146. // VMS 객체 폰트
  147. typedef enum en_font_code
  148. {
  149. /* 0:굴림 */
  150. font_malgun = 1, /* 1:고딕체 */
  151. font_hygmj, /* 2:HY견명조 */
  152. font_gulim, /* 3:굴림체 */
  153. font_gungsuh, /* 4:궁서체 */
  154. font_dotum, /* 5:돋움체 */
  155. font_batang /* 6:바탕체 */
  156. } EN_FONT_CODE;
  157. // 폰트굵기
  158. typedef enum en_font_thickness
  159. {
  160. font_thickness_normal, /* 0:보통 */
  161. font_thickness_bold, /* 1:굵게 */
  162. } EN_FONT_THICKNESS;
  163. // 문자열정열방식
  164. typedef enum en_text_align
  165. {
  166. text_align_left, /* 0:LEFT */
  167. text_align_right, /* 1:RIGHT */
  168. text_align_center, /* 2:CENTER */
  169. } EN_TEXT_ALIGN;
  170. /*
  171. * VMS ASN.1 Code convert functions
  172. */
  173. int GradeToColorCode(int AGrade);
  174. TColor GradeToFillColor(int AGrade);
  175. AnsiString GradeToString(int AGrade, int AType);
  176. TColor CodeToColor(int ACode);
  177. AnsiString CodeToFont(int ACode);
  178. AnsiString GetFtpImageId(AnsiString AImgNmbr);
  179. #endif