123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- //---------------------------------------------------------------------------
- #pragma hdrstop
- #include "AppGlobalF.h"
- #include "CDSMonitoringObjF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- //---------------------------------------------------------------------------
- TMonitoringScreenManager *ObjScreenManager = NULL;
- //---------------------------------------------------------------------------
- TMonitoringScreenManager::TMonitoringScreenManager()
- {
- }
- //---------------------------------------------------------------------------
- TMonitoringScreenManager::~TMonitoringScreenManager()
- {
- FLists.RemoveAll();
- }
- //---------------------------------------------------------------------------
- void TMonitoringScreenManager::Init()
- {
- FLists.RemoveAll();
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- TMonitoringCtlrManager *ObjCtlrManager = NULL;
- //---------------------------------------------------------------------------
- TMonitoringCtlrManager::TMonitoringCtlrManager(int AMonitoringType)
- {
- }
- //---------------------------------------------------------------------------
- TMonitoringCtlrManager::~TMonitoringCtlrManager()
- {
- FLists.RemoveAll();
- }
- //---------------------------------------------------------------------------
- bool TMonitoringCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
- {
- String sQry;
- TADOQuery *pADO = NULL;
- if (ObjScreenManager == NULL)
- {
- ObjScreenManager = new TMonitoringScreenManager();
- }
- ObjScreenManager->Init();
- sQry = "SELECT '[' || A.CROSS_ID || '] ' || A.NAME AS MONITORING_NM, A.NAME AS CROSS_NAME, \r\n"
- " A.CROSS_ID, A.CROSS_TYPE, NVL(A.X, 0) AS CROSS_X_CRDN, NVL(A.Y, 0) AS CROSS_Y_CRDN, \r\n"
- " B.CAM_ID, B.NAME AS CAM_NAME, B.IP AS CAM_IP, B.ID AS RTSP_ID, \r\n"
- " B.PW AS RTSP_PWD, B.RTSP_URL, NVL(B.RTSP_PORT, 0) AS RTSP_PORT, \r\n"
- " C.DIRECTION, NVL(C.X, 0) AS X_CRDN, NVL(C.Y, 0) AS Y_CRDN \r\n"
- " FROM MST_CROSS A, MST_CCAM B, MST_CCAM_ACCESS C \r\n"
- " WHERE A.DEL_YN = 'N' \r\n"
- " AND B.DEL_YN = 'N' \r\n"
- " AND A.CROSS_ID = B.CROSS_ID \r\n"
- " AND B.CAM_ID = C.CAM_ID \r\n"
- " ORDER BY A.CROSS_ID, C.DIRECTION \r\n";
- try
- {
- FLists.Lock();
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- pADO->Open();
- for( ; !pADO->Eof; pADO->Next())
- {
- String NAME = pADO->FieldByName("MONITORING_NM")->AsString;
- TMonitoringScreen *pObj = ObjScreenManager->FLists.Find(NAME);
- if (!pObj)
- {
- pObj = new TMonitoringScreen();
- pObj->NAME = NAME;
- pObj->CROSS_ID = pADO->FieldByName("CROSS_ID")->AsString;
- pObj->CROSS_NAME = pADO->FieldByName("CROSS_NAME")->AsString;
- pObj->CROSS_TYPE = pADO->FieldByName("CROSS_TYPE")->AsString;
- pObj->X_CRDN = pADO->FieldByName("CROSS_X_CRDN")->AsFloat;
- pObj->Y_CRDN = pADO->FieldByName("CROSS_Y_CRDN")->AsFloat;
- ObjScreenManager->FLists.Push(pObj->NAME, pObj);
- }
- TScreenCtlr *pScr = new TScreenCtlr();
- pScr->DIRECTION = pADO->FieldByName("DIRECTION")->AsInteger;
- pScr->DIRECTION += 1; // TODO: ±¸¹Ì ³Ø½ºÁ¨Àº 0ºÎÅÍ ½ÃÀÛ
- pScr->CAM_ID = pADO->FieldByName("CAM_ID")->AsString;
- pScr->CAM_NAME = pADO->FieldByName("CAM_NAME")->AsString;
- pScr->RTSP_ID = pADO->FieldByName("RTSP_ID")->AsString;
- pScr->RTSP_PWD = pADO->FieldByName("RTSP_PWD")->AsString;
- pScr->CAM_IP = pADO->FieldByName("CAM_IP")->AsString;
- pScr->RTSP_PORT = pADO->FieldByName("RTSP_PORT")->AsInteger;
- pScr->RTSP_URL = pADO->FieldByName("RTSP_URL")->AsString;
- pScr->X_CRDN = pADO->FieldByName("X_CRDN")->AsFloat;
- pScr->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsFloat;
- //rtsp://100.100.10.51:554/3034/video1
- //rtsp://user:password@100.100.10.51:554/3034/video1
- if (pScr->RTSP_PORT != 554)
- {
- pScr->STRM_ADDR = "rtsp://" + pScr->CAM_IP + ":" + pScr->RTSP_PORT + "/" + pScr->RTSP_URL;
- }
- else
- {
- pScr->STRM_ADDR = "rtsp://" + pScr->CAM_IP + "/" + pScr->RTSP_URL;
- }
- pScr->FULL_STRM_ADDR = pScr->STRM_ADDR;
- pObj->FLists.Push(pScr->DIRECTION, pScr);
- }
- }
- catch(EDatabaseError &E) {
- DBERRORMSG("TMonitoringCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e) {
- DBERRORMSG("TMonitoringCtlrManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- FLists.UnLock();
- }
- return true;
- }
- //---------------------------------------------------------------------------
|