CDSMonitoringObjF.cpp 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "AppGlobalF.h"
  4. #include "CDSMonitoringObjF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. //---------------------------------------------------------------------------
  8. TMonitoringScreenManager *ObjScreenManager = NULL;
  9. //---------------------------------------------------------------------------
  10. TMonitoringScreenManager::TMonitoringScreenManager()
  11. {
  12. }
  13. //---------------------------------------------------------------------------
  14. TMonitoringScreenManager::~TMonitoringScreenManager()
  15. {
  16. FLists.RemoveAll();
  17. }
  18. //---------------------------------------------------------------------------
  19. void TMonitoringScreenManager::Init()
  20. {
  21. FLists.RemoveAll();
  22. }
  23. //---------------------------------------------------------------------------
  24. //---------------------------------------------------------------------------
  25. TMonitoringCtlrManager *ObjCtlrManager = NULL;
  26. //---------------------------------------------------------------------------
  27. TMonitoringCtlrManager::TMonitoringCtlrManager(int AMonitoringType)
  28. {
  29. }
  30. //---------------------------------------------------------------------------
  31. TMonitoringCtlrManager::~TMonitoringCtlrManager()
  32. {
  33. FLists.RemoveAll();
  34. }
  35. //---------------------------------------------------------------------------
  36. bool TMonitoringCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  37. {
  38. String sQry;
  39. TADOQuery *pADO = NULL;
  40. if (ObjScreenManager == NULL)
  41. {
  42. ObjScreenManager = new TMonitoringScreenManager();
  43. }
  44. ObjScreenManager->Init();
  45. sQry = "SELECT '[' || A.CROSS_ID || '] ' || A.NAME AS MONITORING_NM, A.NAME AS CROSS_NAME, \r\n"
  46. " A.CROSS_ID, A.CROSS_TYPE, NVL(A.X, 0) AS CROSS_X_CRDN, NVL(A.Y, 0) AS CROSS_Y_CRDN, \r\n"
  47. " B.CAM_ID, B.NAME AS CAM_NAME, B.IP AS CAM_IP, B.ID AS RTSP_ID, \r\n"
  48. " B.PW AS RTSP_PWD, B.RTSP_URL, NVL(B.RTSP_PORT, 0) AS RTSP_PORT, \r\n"
  49. " C.DIRECTION, NVL(C.X, 0) AS X_CRDN, NVL(C.Y, 0) AS Y_CRDN \r\n"
  50. " FROM MST_CROSS A, MST_CCAM B, MST_CCAM_ACCESS C \r\n"
  51. " WHERE A.DEL_YN = 'N' \r\n"
  52. " AND B.DEL_YN = 'N' \r\n"
  53. " AND A.CROSS_ID = B.CROSS_ID \r\n"
  54. " AND B.CAM_ID = C.CAM_ID \r\n"
  55. " ORDER BY A.CROSS_ID, C.DIRECTION \r\n";
  56. try
  57. {
  58. FLists.Lock();
  59. try
  60. {
  61. pADO = new TADOQuery(NULL);
  62. pADO->Close();
  63. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  64. pADO->SQL->Clear();
  65. pADO->SQL->Text = sQry;
  66. pADO->Open();
  67. for( ; !pADO->Eof; pADO->Next())
  68. {
  69. String NAME = pADO->FieldByName("MONITORING_NM")->AsString;
  70. TMonitoringScreen *pObj = ObjScreenManager->FLists.Find(NAME);
  71. if (!pObj)
  72. {
  73. pObj = new TMonitoringScreen();
  74. pObj->NAME = NAME;
  75. pObj->CROSS_ID = pADO->FieldByName("CROSS_ID")->AsString;
  76. pObj->CROSS_NAME = pADO->FieldByName("CROSS_NAME")->AsString;
  77. pObj->CROSS_TYPE = pADO->FieldByName("CROSS_TYPE")->AsString;
  78. pObj->X_CRDN = pADO->FieldByName("CROSS_X_CRDN")->AsFloat;
  79. pObj->Y_CRDN = pADO->FieldByName("CROSS_Y_CRDN")->AsFloat;
  80. ObjScreenManager->FLists.Push(pObj->NAME, pObj);
  81. }
  82. TScreenCtlr *pScr = new TScreenCtlr();
  83. pScr->DIRECTION = pADO->FieldByName("DIRECTION")->AsInteger;
  84. pScr->DIRECTION += 1; // TODO: ±¸¹Ì ³Ø½ºÁ¨Àº 0ºÎÅÍ ½ÃÀÛ
  85. pScr->CAM_ID = pADO->FieldByName("CAM_ID")->AsString;
  86. pScr->CAM_NAME = pADO->FieldByName("CAM_NAME")->AsString;
  87. pScr->RTSP_ID = pADO->FieldByName("RTSP_ID")->AsString;
  88. pScr->RTSP_PWD = pADO->FieldByName("RTSP_PWD")->AsString;
  89. pScr->CAM_IP = pADO->FieldByName("CAM_IP")->AsString;
  90. pScr->RTSP_PORT = pADO->FieldByName("RTSP_PORT")->AsInteger;
  91. pScr->RTSP_URL = pADO->FieldByName("RTSP_URL")->AsString;
  92. pScr->X_CRDN = pADO->FieldByName("X_CRDN")->AsFloat;
  93. pScr->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsFloat;
  94. //rtsp://100.100.10.51:554/3034/video1
  95. //rtsp://user:password@100.100.10.51:554/3034/video1
  96. if (pScr->RTSP_PORT != 554)
  97. {
  98. pScr->STRM_ADDR = "rtsp://" + pScr->CAM_IP + ":" + pScr->RTSP_PORT + "/" + pScr->RTSP_URL;
  99. }
  100. else
  101. {
  102. pScr->STRM_ADDR = "rtsp://" + pScr->CAM_IP + "/" + pScr->RTSP_URL;
  103. }
  104. pScr->FULL_STRM_ADDR = pScr->STRM_ADDR;
  105. pObj->FLists.Push(pScr->DIRECTION, pScr);
  106. }
  107. }
  108. catch(EDatabaseError &E) {
  109. DBERRORMSG("TMonitoringCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  110. throw Exception(String(E.ClassName()) + E.Message);
  111. }
  112. catch(Exception &e) {
  113. DBERRORMSG("TMonitoringCtlrManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
  114. throw Exception(String(e.ClassName()) + e.Message);
  115. }
  116. }
  117. __finally
  118. {
  119. if (pADO)
  120. {
  121. pADO->Close();
  122. delete pADO;
  123. }
  124. FLists.UnLock();
  125. }
  126. return true;
  127. }
  128. //---------------------------------------------------------------------------