//--------------------------------------------------------------------------- #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) { FMonitoringType = AMonitoringType; } //--------------------------------------------------------------------------- TMonitoringCtlrManager::~TMonitoringCtlrManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::LoadCtlrFromDb(TADOConnection *ADbConn/*=NULL*/) { try { FLists.Lock(); FLists.RemoveAll(); } __finally { FLists.UnLock(); } FLists.Lock(); try { FOR_STL(TVmsCtlr*, pVmsObj, VmsCtlrManager->FLists) { TMonitoringCtlr *pObj = new TMonitoringCtlr(); pObj->CTLR_NMBR = pVmsObj->VMS_CTLR_ID; pObj->ID = pVmsObj->VMS_CTLR_ID; pObj->CTLR_ID = pVmsObj->VMS_CTLR_ID; pObj->NAME = pVmsObj->VMS_NM; pObj->CTLR_IP = pVmsObj->VMS_CTLR_IP; pObj->INFO1 = pVmsObj->VMS_MODL_KIND_NM; pObj->STRM_IP = pVmsObj->WEB_CMRA_IP; pObj->STRM_ID = pVmsObj->CMRA_LGIN_ID; pObj->STRM_PSWD = pVmsObj->CMRA_LGIN_PW; pObj->STRM_ADDR = pVmsObj->VMS_RTSP_ADDR;//CMRA_IMG_ADDR; pObj->FULL_STRM_ADDR = pVmsObj->FULL_STRM_SESN_NM; if (pObj->FULL_STRM_ADDR == "") { pObj->FULL_STRM_ADDR = pObj->STRM_ADDR; } FLists.Push(pObj->CTLR_NMBR, pObj); } } __finally { FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::InitMonitoringFormFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT COUNT(1) AS CNT \r\n" " FROM TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n"; VmsCtlrManager->FLists.Lock(); try { int nFormSeq; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", String(FMonitoringType)); ITSDb_SQLOpen(pADO); int nFormCnt = pADO->FieldByName("CNT")->AsInteger; if (nFormCnt > 0) return true; sQry = "INSERT INTO TB_VMS_MONITORING ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " VMS_CTLR_ID, \r\n" " VIEW_MODE \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " 0 \r\n" " ) \r\n"; ITSDb_SQLText(pADO, sQry); nFormSeq = 0; FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->USE_YN != "Y") continue; if (pObj->CMRA_IMG_ADDR == "") continue; String sFormName = "Default"; ITSDb_SQLBind(pADO, "p01", String(FMonitoringType)); ITSDb_SQLBind(pADO, "p02", sFormName); ITSDb_SQLBind(pADO, "p03", String(++nFormSeq)); ITSDb_SQLBind(pADO, "p04", pObj->VMS_CTLR_ID); ITSDb_SQLExec(pADO); if (nFormSeq >= 16) break; } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsCmraViewer::InitMonitoringForm", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TFrmVmsCmraViewer::InitMonitoringForm", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } VmsCtlrManager->FLists.UnLock(); } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::LoadMonitoringFormFromDb(TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; if (ObjScreenManager == NULL) { ObjScreenManager = new TMonitoringScreenManager(); } ObjScreenManager->Init(); sQry = "SELECT TRIM(A.MONITORING_NM) AS MONITORING_NM, \r\n" " A.MONITORING_SEQ, \r\n" " A.VMS_CTLR_ID, \r\n" " A.VIEW_MODE \r\n" " FROM TB_VMS_MONITORING A, TB_VMS_CTLR B \r\n" " WHERE 1=1 \r\n" " AND B.USE_YN = 'Y' \r\n" " AND B.VMS_CTLR_ID = A.VMS_CTLR_ID \r\n" " AND A.MONITORING_TYPE = :p01 \r\n" " ORDER BY A.MONITORING_NM, A.MONITORING_SEQ \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->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String MONITORING_NM = pADO->FieldByName("MONITORING_NM")->AsString; int MONITORING_SEQ = pADO->FieldByName("MONITORING_SEQ")->AsInteger; String VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString; int VIEW_MODE = pADO->FieldByName("VIEW_MODE")->AsInteger; TMonitoringScreen *pObj = ObjScreenManager->FLists.Find(MONITORING_NM); if (!pObj) { pObj = new TMonitoringScreen(); pObj->NAME = MONITORING_NM; ObjScreenManager->FLists.Push(pObj->NAME, pObj); } TScreenCtlr *pScr = new TScreenCtlr(); pScr->SEQ = pObj->FLists.Size()+1; pScr->CTLR_NMBR = VMS_CTLR_ID; pScr->VIEW_MODE = VIEW_MODE; pObj->FLists.Push(pScr->SEQ, pScr); } } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::LoadMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::LoadMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } FLists.UnLock(); FOR_STL(TMonitoringScreen*, pObj, ObjScreenManager->FLists) { int nCtlrCount = pObj->FLists.Size(); switch(nCtlrCount) { case 0: case 1: pObj->LAYOUT = 0; break; //1*1 case 2: case 3: case 4: pObj->LAYOUT = 1; break; //2*2 case 5: case 6: pObj->LAYOUT = 3; break; //3*2 case 7: case 8: case 9: pObj->LAYOUT = 2; break; //3*3 case 10: case 11: case 12: pObj->LAYOUT = 4; break; //4*3 case 13: case 14: case 15: case 16: pObj->LAYOUT = 5; break; //4*4 case 17: case 18: case 19: case 20: pObj->LAYOUT = 7; break; //5*4 case 21: case 22: case 23: case 24: pObj->LAYOUT = 8; break; //6*4 case 25: case 26: case 27: case 28: case 29: case 30: pObj->LAYOUT = 9; break; //6*5 default: if (nCtlrCount <= 42) pObj->LAYOUT = 10; //7*6 else if (nCtlrCount <= 56) pObj->LAYOUT = 11; //8*7 else pObj->LAYOUT = 12; //8*8 break; } } } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::DelMonitoringFormFromDb(String AMonitoringName, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "DELETE TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n" " AND MONITORING_NM = :p02 \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Parameters->ParamByName("p02")->Value = AMonitoringName; pADO->ExecSQL(); //pADO->RowsAffected; } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::DelMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::DelMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool TMonitoringCtlrManager::InsMonitoringFormFromDb(String AMonitoringName, int ASeq, String ACtlrNmbr, int AViewMode, TADOConnection *ADbConn/*=NULL*/) { String sQry; TADOQuery *pADO = NULL; sQry = "INSERT INTO TB_VMS_MONITORING ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " VMS_CTLR_NMBR, \r\n" " VIEW_MODE \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05 \r\n" " ) \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = String(FMonitoringType); pADO->Parameters->ParamByName("p02")->Value = AMonitoringName; pADO->Parameters->ParamByName("p03")->Value = ASeq; pADO->Parameters->ParamByName("p04")->Value = ACtlrNmbr; pADO->Parameters->ParamByName("p05")->Value = AViewMode; pADO->ExecSQL(); //pADO->RowsAffected; } catch(EDatabaseError &E) { DBERRORMSG("TMonitoringCtlrManager::InsMonitoringFormFromDb", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TMonitoringCtlrManager::InsMonitoringFormFromDb", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //---------------------------------------------------------------------------