VmsUtilsF.h 6.3 KB

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