CDSVmsCtlrF.cpp 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSVmsCtlrF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. //---------------------------------------------------------------------------
  9. TVmsCtlrManager *VmsCtlrManager = NULL;
  10. //---------------------------------------------------------------------------
  11. //---------------------------------------------------------------------------
  12. int TVmsCtlrManager::Load()
  13. {
  14. FLists.RemoveAll();
  15. String apiUri = g_AppCfg.sRestApiUri + "/api/vms/common/vms-list";
  16. TMcJsonItem *ObjList = NULL;
  17. try {
  18. ObjList = TRestObjectManager::RequestGet(apiUri);
  19. if (ObjList == NULL) {
  20. return 0;
  21. }
  22. for (int ii = 0; ii < ObjList->Count; ii++) {
  23. String sDelYn = TRestObjectManager::GetValue(ObjList->Items[ii], "del_yn");
  24. if (sDelYn == "Y") {
  25. continue;
  26. }
  27. TVmsCtlr *pObj = new TVmsCtlr();
  28. pObj->VMS_CTLR_NMBR = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_nmbr");
  29. pObj->VMS_CTLR_ID = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_id");
  30. pObj->VMS_NM = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_nm");
  31. pObj->VMS_CTLR_IP = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_ip");
  32. pObj->VMS_CTLR_PORT = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_port");
  33. pObj->VMS_CTLR_LOCAL_NO = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_local_no");
  34. pObj->VMS_TYPE_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_type_cd");
  35. pObj->ISTL_LCTN_NM = TRestObjectManager::GetValue(ObjList->Items[ii], "istl_lctn_nm");
  36. pObj->X_CRDN = TRestObjectManager::GetValue(ObjList->Items[ii], "x_crdn");
  37. pObj->Y_CRDN = TRestObjectManager::GetValue(ObjList->Items[ii], "y_crdn");
  38. pObj->WEB_CMRA_IP = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_ip");
  39. pObj->WEB_CMRA_PORT = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_port");
  40. pObj->WEB_CMRA_ID = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_id");
  41. pObj->WEB_CMRA_PWD = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_pwd");
  42. pObj->STRM_SESN_NM = TRestObjectManager::GetValue(ObjList->Items[ii], "strm_sesn_nm");
  43. pObj->OPER_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "oper_mode");
  44. pObj->VMS_MAX_PHSE_NUM = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_max_phse_num");
  45. pObj->DEF_PHSE_CHNG_CYCL= TRestObjectManager::GetValue(ObjList->Items[ii], "def_phse_chng_cycl");
  46. pObj->PANL_ON_TIME = TRestObjectManager::GetValue(ObjList->Items[ii], "panl_on_time");
  47. pObj->PANL_OFF_TIME = TRestObjectManager::GetValue(ObjList->Items[ii], "panl_off_time");
  48. pObj->PANL_PWER_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "panl_pwer_mode");
  49. pObj->FAN_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "fan_mode");
  50. pObj->FAN_RUN_TMPR = TRestObjectManager::GetValue(ObjList->Items[ii], "fan_run_tmpr");
  51. pObj->HETR_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "hetr_mode");
  52. pObj->HETR_RUN_TMPR = TRestObjectManager::GetValue(ObjList->Items[ii], "hetr_run_tmpr");
  53. pObj->BRGH_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "brgh_mode");
  54. pObj->BRGH_CURR_STEP = TRestObjectManager::GetValue(ObjList->Items[ii], "brgh_curr_step");
  55. pObj->BRGH_WEEK_STEP = TRestObjectManager::GetValue(ObjList->Items[ii], "brgh_week_step");
  56. pObj->BRGH_NGHT_STEP = TRestObjectManager::GetValue(ObjList->Items[ii], "brgh_nght_step");
  57. pObj->MODL_ERR_RATE = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_err_rate");
  58. pObj->CMNC_FAIL_RATE = TRestObjectManager::GetValue(ObjList->Items[ii], "cmnc_fail_rate");
  59. pObj->WEB_CMRA_CMPY = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_cmpy");
  60. pObj->WEB_CMRA_MDL = TRestObjectManager::GetValue(ObjList->Items[ii], "web_cmra_mdl");
  61. pObj->ISTL_LCTN_ADDR = TRestObjectManager::GetValue(ObjList->Items[ii], "istl_lctn_addr");
  62. pObj->STRM_HTTP_ADDR = TRestObjectManager::GetValue(ObjList->Items[ii], "strm_http_addr");
  63. pObj->STRM_RTSP_ADDR = TRestObjectManager::GetValue(ObjList->Items[ii], "strm_rtsp_addr");
  64. pObj->DEL_YN = sDelYn;
  65. pObj->VMS_TYPE_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_type_desc"); // "[VMP0] 2단10열"
  66. FLists.Push(pObj->VMS_CTLR_NMBR, pObj);
  67. }
  68. } __finally {
  69. if (ObjList) delete ObjList;
  70. }
  71. return FLists.Size();
  72. }
  73. //---------------------------------------------------------------------------
  74. int TVmsCtlrManager::LoadStts()
  75. {
  76. String apiUri = g_AppCfg.sRestApiUri + "/api/vms/monitoring/stts";
  77. TMcJsonItem *ObjList = NULL;
  78. try {
  79. ObjList = TRestObjectManager::RequestGet(apiUri);
  80. if (ObjList == NULL) {
  81. return 0;
  82. }
  83. for (int ii = 0; ii < ObjList->Count; ii++) {
  84. String VMS_CTLR_NMBR = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_ctlr_nmbr");
  85. TVmsCtlr *pObj = FLists.Find(VMS_CTLR_NMBR);
  86. if (pObj == NULL) {
  87. continue;
  88. }
  89. pObj->VMS_WDTH = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_wdth").ToIntDef(0);
  90. pObj->VMS_HGHT = TRestObjectManager::GetValue(ObjList->Items[ii], "vms_hght").ToIntDef(0);
  91. pObj->ROWS = TRestObjectManager::GetValue(ObjList->Items[ii], "rows").ToIntDef(0);
  92. pObj->COLS = TRestObjectManager::GetValue(ObjList->Items[ii], "cols").ToIntDef(0);
  93. pObj->MODL_ROWS = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_rows").ToIntDef(0);
  94. pObj->MODL_COLS = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_cols").ToIntDef(0);
  95. pObj->POWR_ROWS = TRestObjectManager::GetValue(ObjList->Items[ii], "powr_rows").ToIntDef(0);
  96. pObj->POWR_COLS = TRestObjectManager::GetValue(ObjList->Items[ii], "powr_cols").ToIntDef(0);
  97. pObj->OPER_MODE = TRestObjectManager::GetValue(ObjList->Items[ii], "oper_mode");
  98. pObj->OPER_MODE_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "oper_mode_desc");
  99. pObj->PANL_ON_TIME = TRestObjectManager::GetValue(ObjList->Items[ii], "panl_on_time");
  100. pObj->PANL_OFF_TIME = TRestObjectManager::GetValue(ObjList->Items[ii], "panl_off_time");
  101. pObj->FAN_RUN_TMPR = TRestObjectManager::GetValue(ObjList->Items[ii], "fan_run_tmpr");
  102. pObj->HETR_RUN_TMPR = TRestObjectManager::GetValue(ObjList->Items[ii], "hetr_run_tmpr");
  103. //pObj->VMS_CMNC_ERR_BASS_VAL;
  104. //pObj->VMS_NGHT_BRGH_STEP;
  105. //pObj->VMS_WEEK_BRGH_STEP;
  106. //pObj->VMS_PHSE_CHNG_CYCL;
  107. //pObj->VMS_MODL_ERR_RATE;
  108. // 상태정보
  109. TVmsCtlrStts *STTS = pObj->STTS;
  110. pObj->MISS_STTS_YN = TRestObjectManager::GetValue(ObjList->Items[ii], "miss_stts_yn");
  111. STTS->UPDT_DT = TRestObjectManager::GetValue(ObjList->Items[ii], "updt_dt");
  112. STTS->CMNC_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "cmnc_stts_cd");
  113. STTS->PWER_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "pwer_stts_cd");
  114. STTS->MODL_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_stts_cd");
  115. STTS->CBOX_DOOR_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "cbox_door_stts_cd");
  116. STTS->FAN_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "fan_stts_cd");
  117. STTS->HETR_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "hetr_stts_cd");
  118. STTS->CBOX_TMPR = TRestObjectManager::GetValue(ObjList->Items[ii], "cbox_tmpr").ToIntDef(0);
  119. STTS->BRGH_VAL = TRestObjectManager::GetValue(ObjList->Items[ii], "brgh_val").ToIntDef(0);
  120. STTS->COMM_STTS_CD = TRestObjectManager::GetValue(ObjList->Items[ii], "comm_stts_cd");
  121. STTS->MODL_STTS = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_stts");
  122. STTS->PWER_STTS = TRestObjectManager::GetValue(ObjList->Items[ii], "pwer_stts");
  123. STTS->CMNC_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "cmnc_stts_desc");
  124. STTS->PWER_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "pwer_stts_desc");
  125. STTS->MODL_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "modl_stts_desc");
  126. STTS->CBOX_DOOR_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "cbox_door_stts_desc");
  127. STTS->FAN_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "fan_stts_desc");
  128. STTS->HETR_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "hetr_stts_desc");
  129. STTS->COMM_STTS_DESC = TRestObjectManager::GetValue(ObjList->Items[ii], "comm_stts_desc");
  130. // 정보제공상태
  131. STTS->PROVIDE_TIME = TRestObjectManager::GetValue(ObjList->Items[ii], "provide_time");
  132. STTS->PROVIDE_RESULT = TRestObjectManager::GetValue(ObjList->Items[ii], "provide_result");
  133. STTS->PROVIDE_SVC = TRestObjectManager::GetValue(ObjList->Items[ii], "provide_svc");
  134. STTS->PROVIDE_CNT = TRestObjectManager::GetValue(ObjList->Items[ii], "provide_cnt").ToIntDef(0);
  135. STTS->AUTO_TOTAL = TRestObjectManager::GetValue(ObjList->Items[ii], "auto_total").ToIntDef(0);
  136. STTS->AUTO_USED = TRestObjectManager::GetValue(ObjList->Items[ii], "auto_used").ToIntDef(0);
  137. STTS->FIXED_TOTAL = TRestObjectManager::GetValue(ObjList->Items[ii], "fixed_total").ToIntDef(0);
  138. STTS->FIXED_USED = TRestObjectManager::GetValue(ObjList->Items[ii], "fixed_used").ToIntDef(0);
  139. STTS->BASIC_TOTAL = TRestObjectManager::GetValue(ObjList->Items[ii], "basic_total").ToIntDef(0);
  140. STTS->BASIC_USED = TRestObjectManager::GetValue(ObjList->Items[ii], "basic_used").ToIntDef(0);
  141. }
  142. } __finally {
  143. if (ObjList) delete ObjList;
  144. }
  145. return FLists.Size();
  146. }
  147. //---------------------------------------------------------------------------
  148. bool TVmsCtlrManager::Reset(String AUserId, String AVmsCtlrNmbr, int ACommand)
  149. {
  150. String resultVal;
  151. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/reset/" + FApiKey + "/" + AVmsCtlrNmbr;
  152. TMcJsonItem *ObjList = new TMcJsonItem();
  153. try
  154. {
  155. ObjList->Add("user_id")->AsString = AUserId;
  156. ObjList->Add("value")->AsInteger = ACommand;
  157. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  158. if (!result) {
  159. return false;
  160. }
  161. if (resultVal != "0") {
  162. return false;
  163. }
  164. }
  165. __finally
  166. {
  167. if (ObjList) delete ObjList;
  168. }
  169. return true;
  170. }
  171. //---------------------------------------------------------------------------
  172. bool TVmsCtlrManager::PowerOnOff(String AUserId, String AVmsCtlrNmbr, int ACommand)
  173. {
  174. String resultVal;
  175. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/power/" + FApiKey + "/" + AVmsCtlrNmbr;
  176. TMcJsonItem *ObjList = new TMcJsonItem();
  177. try
  178. {
  179. ObjList->Add("user_id")->AsString = AUserId;
  180. ObjList->Add("value")->AsInteger = ACommand;
  181. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  182. if (!result) {
  183. return false;
  184. }
  185. if (resultVal != "0") {
  186. return false;
  187. }
  188. }
  189. __finally
  190. {
  191. if (ObjList) delete ObjList;
  192. }
  193. return true;
  194. }
  195. //---------------------------------------------------------------------------
  196. bool TVmsCtlrManager::LuminanceSet(String AUserId, String AVmsCtlrNmbr, int ACommand, int ACurr, int AWeek, int ANght)
  197. {
  198. String resultVal;
  199. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/luminance/" + FApiKey + "/" + AVmsCtlrNmbr;
  200. TMcJsonItem *ObjList = new TMcJsonItem();
  201. try
  202. {
  203. ObjList->Add("user_id")->AsString = AUserId;
  204. ObjList->Add("value")->AsInteger = ACommand;
  205. ObjList->Add("curr_step")->AsInteger = ACurr;
  206. ObjList->Add("week_step")->AsInteger = AWeek;
  207. ObjList->Add("nght_step")->AsInteger = ANght;
  208. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  209. if (!result) {
  210. return false;
  211. }
  212. if (resultVal != "0") {
  213. return false;
  214. }
  215. }
  216. __finally
  217. {
  218. if (ObjList) delete ObjList;
  219. }
  220. return true;
  221. }
  222. //---------------------------------------------------------------------------
  223. bool TVmsCtlrManager::OperModeSet(String AUserId, String AVmsCtlrNmbr, String ACommand)
  224. {
  225. String resultVal;
  226. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/opr-mode/" + FApiKey + "/" + AVmsCtlrNmbr;
  227. TMcJsonItem *ObjList = new TMcJsonItem();
  228. try
  229. {
  230. ObjList->Add("user_id")->AsString = AUserId;
  231. ObjList->Add("opr_mode")->AsString = ACommand;
  232. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  233. if (!result) {
  234. return false;
  235. }
  236. if (resultVal != "0") {
  237. return false;
  238. }
  239. }
  240. __finally
  241. {
  242. if (ObjList) delete ObjList;
  243. }
  244. return true;
  245. }
  246. //---------------------------------------------------------------------------
  247. bool TVmsCtlrManager::ImmediatelyScnrDnld(String AUserId, String AVmsCtlrNmbr)
  248. {
  249. String resultVal;
  250. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/imm-scnr-dnld/" + FApiKey + "/" + AVmsCtlrNmbr;
  251. TMcJsonItem *ObjList = new TMcJsonItem();
  252. try
  253. {
  254. ObjList->Add("user_id")->AsString = AUserId;
  255. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  256. if (!result) {
  257. return false;
  258. }
  259. if (resultVal != "0") {
  260. return false;
  261. }
  262. }
  263. __finally
  264. {
  265. if (ObjList) delete ObjList;
  266. }
  267. return true;
  268. }
  269. //---------------------------------------------------------------------------
  270. bool TVmsCtlrManager::ParamSet(String AUserId, String AVmsCtlrNmbr, int AFanRunTmpr, int AHetrRunTmpr, String AOnTime, String AOffTime)
  271. {
  272. String resultVal;
  273. String apiUri = g_AppCfg.sRestApiUri + "/cs-api/vms/control/param/" + FApiKey + "/" + AVmsCtlrNmbr;
  274. TMcJsonItem *ObjList = new TMcJsonItem();
  275. try
  276. {
  277. ObjList->Add("user_id")->AsString = AUserId;
  278. ObjList->Add("fan_run_tmpr")->AsInteger = AFanRunTmpr;
  279. ObjList->Add("hetr_run_tmpr")->AsInteger = AHetrRunTmpr;
  280. ObjList->Add("panl_on_time")->AsString = AOnTime;
  281. ObjList->Add("panl_off_time")->AsString = AOffTime;
  282. bool result = TRestObjectManager::RequestPost(apiUri, ObjList->AsJSON, resultVal);
  283. if (!result) {
  284. return false;
  285. }
  286. if (resultVal != "0") {
  287. return false;
  288. }
  289. }
  290. __finally
  291. {
  292. if (ObjList) delete ObjList;
  293. }
  294. return true;
  295. }
  296. //---------------------------------------------------------------------------