CDSVmsCtlrF.h 10 KB

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