CDSVmsCtlrF.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. //---------------------------------------------------------------------------
  2. #ifndef CDSVmsCtlrFH
  3. #define CDSVmsCtlrFH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <stdio.h>
  7. #include <ADODB.hpp>
  8. #include <DB.hpp>
  9. #include "ITSLibF.h"
  10. #include "ITSDbF.h"
  11. #include "CDSObjectF.h"
  12. //---------------------------------------------------------------------------
  13. #define INT_VMS_MAX_FORM 10
  14. class TFormImage
  15. {
  16. public:
  17. TFormImage() {};
  18. ~TFormImage(){};
  19. public:
  20. String formId;
  21. int memIdx;
  22. Graphics::TBitmap *bitmap;
  23. };
  24. //---------------------------------------------------------------------------
  25. //---------------------------------------------------------------------------
  26. class TVmsIfscRltn
  27. {
  28. public:
  29. TVmsIfscRltn();
  30. ~TVmsIfscRltn();
  31. public:
  32. String VMS_CTLR_NMBR; //NUMBER(10) N VMS 제어기 번호
  33. int VMS_IFSC_ID; //NUMBER(10) N VMS 정보제공구간 ID
  34. int DSPL_PRRT; //NUMBER(2) Y 표출 우선순위
  35. String CNGS_CNFM_YN; //CHAR(1) Y 'Y' 정체폼 정체판정 여부
  36. int CNGS_CNFM_SPED; //NUMBER(2) Y 5 정체폼 정체판정 속도
  37. };
  38. //---------------------------------------------------------------------------
  39. class TVmsEvspRltn
  40. {
  41. public:
  42. TVmsEvspRltn();
  43. ~TVmsEvspRltn();
  44. public:
  45. String VMS_CTLR_NMBR; //NUMBER(10) N VMS 제어기 번호
  46. int VMS_EVSP_ID; //NUMBER(10) N VMS 긴급차량우선신호구간 ID
  47. int DSPL_PRRT; //NUMBER(2) Y 표출 우선순위
  48. String CNGS_CNFM_YN; //CHAR(1) Y 'Y' 정체폼 정체판정 여부
  49. int CNGS_CNFM_SPED; //NUMBER(2) Y 5 정체폼 정체판정 속도
  50. };
  51. //---------------------------------------------------------------------------
  52. typedef struct tagVmsPhase
  53. {
  54. String CTLR_ID; // N VARCHAR2(10) N VMS제어기ID
  55. int SN; // N NUMBER(5) N 순번
  56. String PROV_DT_FMT; // N DATE N 제공일시
  57. int DSPL_HR; // N NUMBER(3) N 표출시간
  58. String DSPL_EFF; // N VARCHAR2(3) N 표출효과
  59. String BACK_CLR; // N VARCHAR2(3) Y 배경색상
  60. String VMS_FORM_ID; // N VARCHAR2(10) N VMS폼ID
  61. String DSPL_CN; // N VARCHAR2(256) N 표출내용
  62. String PROV_YN; // N CHAR(1) N 제공여부
  63. String OPER_MODE; // N VARCHAR2(3) N 운영모드
  64. String VMS_FORM_TYPE; // N VARCHAR2(3) N VMS폼유형
  65. Graphics::TBitmap *DSPL_PICT; // 표출메시지(Bitmap 이미지)
  66. } VMS_PHASE;
  67. class TVmsMsg
  68. {
  69. public:
  70. TVmsMsg();
  71. ~TVmsMsg();
  72. public:
  73. void Init();
  74. bool IsLoading;
  75. int Total; //전체메시지 갯수
  76. int Curr; //현재표출갯수(사용안함)
  77. String OFFER_DT; //제공시각
  78. bool OFFER_YN; //정시제공여부(true:정시제공,false:5분이상이전제공데이터)
  79. VMS_PHASE PHASE[INT_VMS_MAX_FORM];
  80. };
  81. //---------------------------------------------------------------------------
  82. class TVmsStts
  83. {
  84. public:
  85. TVmsStts(String AVMS_CTLR_ID);
  86. ~TVmsStts();
  87. public:
  88. void Init();
  89. bool IsLoading;
  90. String VMS_CTLR_ID; // N VARCHAR2(10)N VMS제어기ID
  91. String LAST_DT; // N DATE N 최종일시
  92. String LAST_DT_FMT; // N DATE N 최종일시
  93. String RPRS_STTS; // N VARCHAR2(3) N 대표상태
  94. String CMNC_STTS; // N VARCHAR2(3) Y 통신상태
  95. String PS_STTS; // N VARCHAR2(3) Y 전원상태
  96. String FAN_STTS; // N VARCHAR2(3) Y 팬상태
  97. String HTER_STTS; // N VARCHAR2(3) Y 히터상태
  98. String DOOR_STTS; // N VARCHAR2(3) Y 문상태
  99. String RSET_YN; // N CHAR(1) Y 재실행여부
  100. int TEMP; // N NUMBER(3,1) Y 온도
  101. int HUM; // N NUMBER(3,1) Y 습도
  102. int BOX_TEMP; // N NUMBER(3,1) Y 함체온도
  103. };
  104. //---------------------------------------------------------------------------
  105. class TVmsPara
  106. {
  107. public:
  108. TVmsPara(String AVMS_CTLR_ID);
  109. ~TVmsPara();
  110. public:
  111. void Init();
  112. bool IsLoading;
  113. String VMS_CTLR_ID; // N VARCHAR2(10)N VMS제어기ID
  114. String LAST_DT; // N DATE N 최종일시
  115. String LAST_DT_FMT; // N DATE N 최종일시
  116. String LUMI_MODE; // N VARCHAR2(3) Y 휘도모드
  117. int CUR_LUMI; // N NUMBER(3) Y 현재휘도
  118. int DAY_LUMI; // N NUMBER(3) Y 주간휘도
  119. int NGHT_LUMI; // N NUMBER(3) Y 야간휘도
  120. int CMNC_RTRY_NOCS; // N NUMBER(3) Y 통신재시도횟수
  121. int BLNK_TM; // N NUMBER(3) Y 점멸시간주기
  122. String FAN_MODE; // N VARCHAR2(3) Y 팬모드
  123. String HTER_MODE; // N VARCHAR2(3) Y 히터모드
  124. int ERR_MODL_RT; // N NUMBER(3) Y 장애모듈비율
  125. int DFLT_SCNR_RUN_TM;// N NUMBER(3) Y 디폴트시나리오동작시간
  126. };
  127. //---------------------------------------------------------------------------
  128. class TVmsModlStts
  129. {
  130. public:
  131. TVmsModlStts();
  132. ~TVmsModlStts();
  133. public:
  134. String VMS_CTLR_ID; // N VARCHAR2(10) N VMS제어기ID
  135. int ROW_NO; // N NUMBER(2) N 행번호
  136. int COL_NO; // N NUMBER(2) N 열번호
  137. String LAST_DT_FMT; // N DATE N 최종일시
  138. String MODL_STTS; // N VARCHAR2(3) N 모듈상태
  139. };
  140. class TLcsCtlr
  141. {
  142. public:
  143. TLcsCtlr();
  144. ~TLcsCtlr();
  145. public:
  146. String LCS_CTLR_ID; // N VARCHAR2(10) N LCS제어기ID
  147. String FCLT_ID; // N VARCHAR2(10) N 시설물ID
  148. String LCS_NM; // N VARCHAR2(32) N LCS명
  149. String VMS_MODL_KIND; // N VARCHAR2(10) N VMS모듈종류
  150. int INSTL_LANE_CNT; // N NUMBER(2) N 설치차로수
  151. String USE_YN; // N CHAR(1) N 사용여부
  152. public:
  153. String VMS_MODL_KIND_NM;
  154. int VMS_MODL_ROW;
  155. int VMS_MODL_COL;
  156. int MODL_PIXL_WDTH;
  157. int MODL_PIXL_HGHT;
  158. String MODL_CLR;
  159. int POWR_MODL_ROW;
  160. int POWR_MODL_COL;
  161. int WIDTH, HEIGHT;
  162. TVmsMsg *FVmsMsg;
  163. public:
  164. void Lock();
  165. void UnLock();
  166. };
  167. class TVmsCtlr
  168. {
  169. public:
  170. TVmsCtlr();
  171. ~TVmsCtlr();
  172. public:
  173. String VMS_CTLR_ID; //N VARCHAR2(10) N VMS제어기ID
  174. String FCLT_ID; //N VARCHAR2(10) N 시설물ID
  175. String VMS_NM; //N VARCHAR2(32) N VMS명
  176. String VMS_TYPE; //N VARCHAR2(3) N VMS유형
  177. String STD_SECT_ID; //N CHAR(10) N 표준구간ID
  178. int INSTL_MILE; //N NUMBER(5) Y 설치이정
  179. double CRDN_X; //N NUMBER(13,10) N 좌표X
  180. double CRDN_Y; //N NUMBER(12,10) N 좌표Y
  181. String VMS_MODL_KIND; //N VARCHAR2(10) N VMS모듈종류
  182. int CMNC_PORT; //N NUMBER(5) N 통신포트
  183. int EQMT_NO; //N NUMBER(3) N 장비번호
  184. String OPER_MODE; //N VARCHAR2(3) N 운영모드
  185. String CMRA_IND; //N CHAR(1) N 카메라유무
  186. String CMRA_IMG_ADDR; //N VARCHAR2(128) Y 카메라영상주소
  187. String CMRA_LGIN_ID; //N VARCHAR2(32) Y 카메라로그인ID
  188. String CMRA_LGIN_PW; //N VARCHAR2(32) Y 카메라로그인암호
  189. String VMS_SCNR_ID; //N VARCHAR2(10) Y VMS시나리오ID
  190. String VMS_ON_HM; //N CHAR(4) Y VMS ON시분
  191. String VMS_OFF_HM; //N CHAR(4) Y VMS OFF시분
  192. int MAX_DSPL_FORM_CNT; //N NUMBER(2) N 최대표출폼수
  193. String LCS_CTLR_ID; //N VARCHAR2(10) Y LCS제어기ID
  194. String USE_YN; //N CHAR(1) N 사용여부
  195. bool IsLcsUse;
  196. String VMS_CTLR_IP;
  197. String WEB_CMRA_IP;
  198. String VMS_TYPE_NM;
  199. String OPER_MODE_NM;
  200. String VMS_RTSP_ADDR;
  201. String FULL_STRM_SESN_NM;
  202. String VMS_MODL_KIND_NM;
  203. int VMS_MODL_ROW;
  204. int VMS_MODL_COL;
  205. int MODL_PIXL_WDTH;
  206. int MODL_PIXL_HGHT;
  207. String MODL_CLR;
  208. int POWR_MODL_ROW;
  209. int POWR_MODL_COL;
  210. int WIDTH, HEIGHT;
  211. String VMS_COMM_SERVER;
  212. int VMS_COMM_PORT;
  213. TVmsStts *Stts;
  214. TVmsPara *Para;
  215. TLcsCtlr *FLcsInfo;
  216. TItsMap<int, TVmsModlStts*> FModlSttsLists;
  217. TVmsMsg *FVmsMsg;
  218. public:
  219. TItsMap<int, TVmsIfscRltn*> FIfscRltn;
  220. TItsMap<int, TVmsEvspRltn*> FEvspRltn;
  221. public:
  222. void Lock();
  223. void UnLock();
  224. };
  225. //---------------------------------------------------------------------------
  226. typedef std::map<String, TVmsCtlr*>::iterator VmsIterator;
  227. //---------------------------------------------------------------------------
  228. class TVmsSize
  229. {
  230. public: // User declarations
  231. String TypeCd;
  232. String TypeNm;
  233. int Width;
  234. int Height;
  235. public: // User declarations
  236. TVmsSize();
  237. };
  238. class TVmsModlSize
  239. {
  240. public: // User declarations
  241. TVmsModlSize();
  242. ~TVmsModlSize();
  243. public: // User declarations
  244. String TypeCd;
  245. String TypeNm;
  246. int Width;
  247. int Height;
  248. public: // User declarations
  249. TItsMap<String, TVmsCtlr*> FLists;
  250. };
  251. //---------------------------------------------------------------------------
  252. class TVmsCtlrManager
  253. {
  254. public:
  255. TVmsCtlrManager();
  256. ~TVmsCtlrManager();
  257. private:
  258. TStream *FImgStream;
  259. public:
  260. TItsMap<String, TVmsSize*> FVmsSize;
  261. TItsMap<String, TVmsCtlr*> FLists;
  262. TItsMap<String, TLcsCtlr*> FLcsLists;
  263. int FMinWidth, FMinHeight;
  264. int FMaxWidth, FMaxHeight;
  265. public:
  266. bool LoadVmsModlSize(TADOConnection *ADbConn=NULL);
  267. bool LoadFromDb(TADOConnection *ADbConn=NULL);
  268. bool LcsLoadFromDb(TADOConnection *ADbConn=NULL);
  269. bool LoadStatusFromDb(TADOConnection *ADbConn=NULL);
  270. bool LoadParaFromDb(TADOConnection *ADbConn=NULL);
  271. bool LoadModlSttsFromDb(TADOConnection *ADbConn=NULL);
  272. bool LoadVmsMsg(TADOConnection *ADbConn=NULL);
  273. bool LoadLcsMsg(TADOConnection *ADbConn=NULL);
  274. bool LoadVmsPlanMsg(TADOConnection *ADbConn=NULL);
  275. bool LoadLcsPlanMsg(TADOConnection *ADbConn=NULL);
  276. bool UpdateCtlrInfo(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL);
  277. bool InsVmsControlHs(String ACtlDt, String AVmsNmbr, String ACtlType, String ACtlVal, String ACtlRes, String AUserId, TADOConnection *ADbConn=NULL);
  278. };
  279. //---------------------------------------------------------------------------
  280. extern TVmsCtlrManager *VmsCtlrManager;
  281. //---------------------------------------------------------------------------
  282. //---------------------------------------------------------------------------
  283. #endif