12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include "AppGlobalF.h"
- #include "ITSSkinF.h"
- #include "ITSUtilF.h"
- #include "CenterCommF.h"
- #pragma hdrstop
- #include "FrmVmsRemoteCtrlF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "cxContainer"
- #pragma link "cxControls"
- #pragma link "cxEdit"
- #pragma link "cxGraphics"
- #pragma link "cxGroupBox"
- #pragma link "cxLabel"
- #pragma link "cxLookAndFeelPainters"
- #pragma link "cxLookAndFeels"
- #pragma link "cxPC"
- #pragma link "cxPCdxBarPopupMenu"
- #pragma link "cxSplitter"
- #pragma link "dxSkinBlack"
- #pragma link "dxSkinBlue"
- #pragma link "dxSkinCaramel"
- #pragma link "dxSkinCoffee"
- #pragma link "dxSkinDarkRoom"
- #pragma link "dxSkinDarkSide"
- #pragma link "dxSkinFoggy"
- #pragma link "dxSkinGlassOceans"
- #pragma link "dxSkiniMaginary"
- #pragma link "dxSkinLilian"
- #pragma link "dxSkinLiquidSky"
- #pragma link "dxSkinLondonLiquidSky"
- #pragma link "dxSkinMcSkin"
- #pragma link "dxSkinMoneyTwins"
- #pragma link "dxSkinOffice2007Black"
- #pragma link "dxSkinOffice2007Blue"
- #pragma link "dxSkinOffice2007Green"
- #pragma link "dxSkinOffice2007Pink"
- #pragma link "dxSkinOffice2007Silver"
- #pragma link "dxSkinOffice2010Black"
- #pragma link "dxSkinOffice2010Blue"
- #pragma link "dxSkinOffice2010Silver"
- #pragma link "dxSkinsCore"
- #pragma link "dxSkinscxPCPainter"
- #pragma link "dxSkinSeven"
- #pragma link "dxSkinSharp"
- #pragma link "dxSkinSilver"
- #pragma link "dxSkinStardust"
- #pragma link "cxClasses"
- #pragma link "cxCustomData"
- #pragma link "cxData"
- #pragma link "cxDataStorage"
- #pragma link "cxFilter"
- #pragma link "cxGrid"
- #pragma link "cxGridCustomTableView"
- #pragma link "cxGridCustomView"
- #pragma link "cxGridLevel"
- #pragma link "cxGridTableView"
- #pragma link "cxStyles"
- #pragma link "cxTextEdit"
- #pragma link "cxGridCardView"
- #pragma link "cxGridCustomLayoutView"
- #pragma link "cxCheckBox"
- #pragma link "cxDropDownEdit"
- #pragma link "cxImage"
- #pragma link "cxButtons"
- #pragma link "cxCalc"
- #pragma link "cxGridBandedTableView"
- #pragma link "FRAME_VmsStateF"
- #pragma link "FRAME_VmsStateF"
- #pragma link "FRAME_VmsMsgListF"
- #pragma link "ImageBtn"
- #pragma link "cxMaskEdit"
- #pragma link "cxRadioGroup"
- #pragma link "cxSpinEdit"
- #pragma link "cxTimeEdit"
- #pragma link "IdBaseComponent"
- #pragma link "IdComponent"
- #pragma link "IdIcmpClient"
- #pragma link "IdRawBase"
- #pragma link "IdRawClient"
- #pragma link "FFBaseComponent"
- #pragma link "FFBasePlay"
- #pragma link "FFPlay"
- #pragma link "IdHTTP"
- #pragma link "IdTCPClient"
- #pragma link "IdTCPConnection"
- #pragma link "cxHint"
- #pragma link "dxCustomHint"
- #pragma link "dxScreenTip"
- #pragma link "dxSkinsForm"
- #pragma link "dxGDIPlusClasses"
- #pragma resource "*.dfm"
- TFrmVmsRemoteCtrl *FrmVmsRemoteCtrl = NULL;
- #define LICENSE_KEY "FSXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX"
- //---------------------------------------------------------------------------
- __fastcall TFrmVmsRemoteCtrl::TFrmVmsRemoteCtrl(TComponent* Owner)
- : TForm(Owner)
- {
- //CMM_SetFormPosition(g_AppCfg.bSaveForm);
- ITSSkin_Initialize(Application, g_AppCfg.sLang);
- ITSSkin_Caption(false);
- ITSSkin_Load(this);
- //CMM_LoadForm(g_sFormsDir, this);
- SetColorScheme(g_AppCfg.sSkinName);
- LoadLocalSkin();
- //if (FormStyle != fsMDIChild) CMM_LoadForm(g_sFormsDir, this);
- FPalyerForm = NULL;
- FSelVmsObj = NULL;
- TvList->OptionsView->GroupByBox = false;
- TvList->OptionsView->Footer = false;
- ColumnSel->Visible = true;
- TsOperMode->TabVisible = false;
- PgControl->ActivePage = TsControl;
- #if 0
- cxTabSheet5->TabVisible = false;
- cxTabSheet5->Visible = false;
- cxTabSheet1->TabVisible = false;
- cxTabSheet1->Visible = false;
- cxTabSheet6->TabVisible = false;
- cxTabSheet6->Visible = false;
- #endif
- FVmsIds = new TStringList();
- FTitle = Caption;//"VMS 제어";
- FCtrlTab = NULL;
- FStrmPlay = false;
- reMsg->Lines->Clear();
- String sAVILibDir = g_sAppDir + "LibAV";
- FFPlayer1->SetLicenseKey(LICENSE_KEY);
- FFPlayer1->DisableFPUExceptions();
- if (!FFPlayer1->LoadAVLib(sAVILibDir))
- {
- reMsg->Lines->Add("영상표출 라이브러리 초기화 실패.");
- #if 0
- if (g_AppCfg.sLang != "kr") Application->MessageBox(L"Stream display library load failed.", L"Stream display fail", MB_OK|MB_ICONERROR|MB_APPLMODAL);
- else Application->MessageBox(L"영상표출 라이브러리를 로드하지 못하였습니다.", L"영상표출 오류", MB_OK|MB_ICONERROR|MB_APPLMODAL);
- #endif
- }
- reMsg->Lines->Clear();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::SetColorScheme(String ASkinName)
- {
- dxSkinController1->SkinName = ASkinName;
- dxSkinController1->Refresh();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::CommClose()
- {
- try
- {
- WebCamStop();
- SAFE_DELETE(FVmsIds);
- //if (FormStyle != fsMDIChild) CMM_SaveForm(g_sFormsDir, this);
- FStrmPlay = false;
- CComm_Terminate();
- ITSSkin_Term();
- //CMM_SaveForm(g_sFormsDir, this);
- }
- catch(...)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::FormShow(TObject *Sender)
- {
- Refresh();
- #if 0
- InitDbLoading();
- UpdateList();
- TvList->ApplyBestFit(NULL, true, false);
- #endif
- CxList->Enabled = false;
- TmrShow->Enabled = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::InitDbLoading()
- {
- Application->ProcessMessages();
- if (SysCodeManager == NULL) {
- SysCodeManager = new TSysCodeManager();
- }
- SysCodeManager->LoadFromDb();
- if (!VmsCtlrManager) {
- VmsCtlrManager = new TVmsCtlrManager();
- }
- VmsCtlrManager->LoadVmsModlSize();
- VmsCtlrManager->LoadFromDb();
- VmsCtlrManager->LoadStatusFromDb();
- VmsCtlrManager->LoadParaFromDb();
- if (!CenterCommManager) {
- CenterCommManager = new TCenterCommManager();
- }
- CenterCommManager->LoadFromDb(g_AppCfg.PRCS_ID);
- FCommCtrlTarget = CenterCommManager->FLists.Find("71"); // VMS 제어
- APP_FillCode(CbOPER_MODE, "VMS_OPER_MODE_CD"); //VMS운영모드
- APP_FillCode(CbRPRS_STTS, "RPRSV_STTS_CD"); //대표상태 (코드구분=RPRSV_STTS_CD)
- APP_FillCode(CbCMNC_STTS, "CMNC_STTS_CD"); //통신상태 (코드구분=CMNC_STTS_CD)
- APP_FillCode(CbPS_STTS, "PS_STTS_CD"); //전원상태 (코드구분=PS_STTS_CD)
- APP_FillCode(CbFAN_STTS, "FAN_STTS_CD"); //팬상태 (코드구분=FAN_STTS_CD)
- APP_FillCode(CbHTER_STTS, "HTER_STTS_CD"); //히터상태 (코드구분=HTER_STTS_CD)
- APP_FillCode(CbDOOR_STTS, "DOOR_OPEN_STTS_CD"); //문상태(코드구분=DOOR_OPEN_STTS_CD)
- APP_FillCode(CbLUMI_MODE, "LUMI_MODE_CD"); //휘도모드(코드구분=LUMI_MODE_CD)
- APP_FillCode(CbFAN_MODE, "FAN_MODE_CD"); //팬모드(코드구분=FAN_MODE_CD)
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::UpdateList()
- {
- CMM_ClearGridTableView(TvList);
- int ii, jj;
- int nCols = 0;
- TcxDataController *pGDC = TvList->DataController;
- TvList->BeginUpdate();
- pGDC->BeginUpdate();
- VmsCtlrManager->FLists.Lock();
- try
- {
- int nRow;
- FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) {
- if (pObj->USE_YN != "Y") continue;
- nRow = pGDC->AppendRecord();
- pGDC->Values[nRow][ColumnSel->Index] = false;
- pGDC->Values[nRow][ColVMS_CTLR_ID->Index] = pObj->VMS_CTLR_ID;
- pGDC->Values[nRow][ColVMS_NM->Index] = pObj->VMS_NM;
- pGDC->Values[nRow][ColVMS_MODL_KIND_NM->Index] = pObj->VMS_MODL_KIND_NM;
- pGDC->Values[nRow][ColOPER_MODE->Index] = APP_GetCodeName(CbOPER_MODE, pObj->OPER_MODE);
- pGDC->Values[nRow][ColLAST_DT_FMT->Index] = pObj->Stts->LAST_DT_FMT;
- pGDC->Values[nRow][ColRPRS_STTS->Index] = APP_GetCodeName(CbRPRS_STTS, pObj->Stts->RPRS_STTS);
- pGDC->Values[nRow][ColCMNC_STTS->Index] = APP_GetCodeName(CbCMNC_STTS, pObj->Stts->CMNC_STTS);
- pGDC->Values[nRow][ColPS_STTS->Index] = APP_GetCodeName(CbPS_STTS, pObj->Stts->PS_STTS);
- pGDC->Values[nRow][ColFAN_STTS->Index] = APP_GetCodeName(CbFAN_STTS, pObj->Stts->FAN_STTS);
- pGDC->Values[nRow][ColHTER_STTS->Index] = APP_GetCodeName(CbHTER_STTS, pObj->Stts->HTER_STTS);
- pGDC->Values[nRow][ColDOOR_STTS->Index] = APP_GetCodeName(CbDOOR_STTS, pObj->Stts->DOOR_STTS);
- pGDC->Values[nRow][ColRSET_YN->Index] = pObj->Stts->RSET_YN;
- pGDC->Values[nRow][ColTEMP->Index] = pObj->Stts->TEMP;
- pGDC->Values[nRow][ColHUM->Index] = pObj->Stts->HUM;
- pGDC->Values[nRow][ColBOX_TEMP->Index] = pObj->Stts->BOX_TEMP;
- pGDC->Values[nRow][Col99->Index] = (int)pObj;
- }
- }
- __finally
- {
- VmsCtlrManager->FLists.UnLock();
- pGDC->EndUpdate();
- TvList->EndUpdate();
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::RefreshStatusInfo()
- {
- TcxDataController *pGDC = TvList->DataController;
- try
- {
- TvList->BeginUpdate();
- pGDC->BeginUpdate();
- int nRows = pGDC->RecordCount;
- for(int nRow = 0; nRow < nRows; nRow++)
- {
- int nMemPtr = TvList->DataController->Values[nRow][Col99->Index];
- TVmsCtlr *pObj = (TVmsCtlr*)nMemPtr;
- if (!pObj) continue;
- pGDC->Values[nRow][ColOPER_MODE->Index] = APP_GetCodeName(CbOPER_MODE, pObj->OPER_MODE);
- pGDC->Values[nRow][ColLAST_DT_FMT->Index] = pObj->Stts->LAST_DT_FMT;
- pGDC->Values[nRow][ColRPRS_STTS->Index] = APP_GetCodeName(CbRPRS_STTS, pObj->Stts->RPRS_STTS);
- pGDC->Values[nRow][ColCMNC_STTS->Index] = APP_GetCodeName(CbCMNC_STTS, pObj->Stts->CMNC_STTS);
- pGDC->Values[nRow][ColPS_STTS->Index] = APP_GetCodeName(CbPS_STTS, pObj->Stts->PS_STTS);
- pGDC->Values[nRow][ColFAN_STTS->Index] = APP_GetCodeName(CbFAN_STTS, pObj->Stts->FAN_STTS);
- pGDC->Values[nRow][ColHTER_STTS->Index] = APP_GetCodeName(CbHTER_STTS, pObj->Stts->HTER_STTS);
- pGDC->Values[nRow][ColDOOR_STTS->Index] = APP_GetCodeName(CbDOOR_STTS, pObj->Stts->DOOR_STTS);
- pGDC->Values[nRow][ColRSET_YN->Index] = pObj->Stts->RSET_YN;
- pGDC->Values[nRow][ColTEMP->Index] = pObj->Stts->TEMP;
- pGDC->Values[nRow][ColHUM->Index] = pObj->Stts->HUM;
- pGDC->Values[nRow][ColBOX_TEMP->Index] = pObj->Stts->BOX_TEMP;
- }
- }
- __finally
- {
- pGDC->EndUpdate();
- TvList->EndUpdate();
- //CxList->LayoutChanged();
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::LoadLocalSkin()
- {
- PnlVmsCam->ParentColor = false;
- PnlVmsCam->Color = clBlack;
- PnlRtspStream->ParentColor = false;
- PnlRtspStream->Color = clBlack;
- Refresh();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::TmrShowTimer(TObject *Sender)
- {
- TmrShow->Enabled = false;
- InitDbLoading();
- UpdateList();
- //TvList->ApplyBestFit(NULL, true, false);
- CxList->Enabled = true;
- RefreshStatusInfo();
- int nResult = CComm_Initialize((long)Handle, g_AppCfg.PRCS_ID, "P04010", 0);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::FormClose(TObject *Sender, TCloseAction &Action)
- {
- try {
- CommClose();
- FrmVmsRemoteCtrl = NULL;
- Action = caFree;
- } catch(...) {}
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::OnVmsStateRefreshMessage(TMessage &Msg)
- {
- RefreshStatusInfo();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::DisplayInfo()
- {
- FSelVmsObj = NULL;
- PnlVms->Caption = " 선택 VMS: -";
- TcxDataController *pGDC = TvList->DataController;
- int nSelIdx = CMM_GetRecordIndex(TvList);
- if (nSelIdx < 0) return;
- String sVmsCtlrId = VarToStr(pGDC->Values[nSelIdx][ColVMS_CTLR_ID->Index]);
- int nMemPtr = (int)pGDC->Values[nSelIdx][Col99->Index];
- FSelVmsObj = (TVmsCtlr*)nMemPtr;
- if (!FSelVmsObj) return;
- PnlVms->Caption = " 선택 VMS: [" + FSelVmsObj->VMS_CTLR_ID + "] " + FSelVmsObj->VMS_NM;
- try {
- if (FSelVmsObj->Para->IsLoading) {
- SeCurrBrgh->Value = FSelVmsObj->Para->CUR_LUMI;
- SeWeekBrgh->Value = FSelVmsObj->Para->DAY_LUMI;
- SeNghtBrgh->Value = FSelVmsObj->Para->NGHT_LUMI;
- }
- }
- catch(Exception &e) {
- }
- try
- {
- reMsg->Lines->Clear();
- WebCamPlay((FSelVmsObj->VMS_CTLR_ID));
- }
- catch(Exception &e)
- {
- }
- BtnWebCamUrl->Enabled = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::ClearCheckList()
- {
- TcxDataController *pGDC = TvList->DataController;
- try
- {
- TvList->BeginUpdate();
- pGDC->BeginUpdate();
- int nRows = pGDC->RecordCount;
- for (int ii = 0; ii < nRows; ii++)
- {
- pGDC->Values[ii][ColumnSel->Index] = false;
- }
- }
- __finally
- {
- pGDC->EndUpdate();
- TvList->EndUpdate();
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::TvListCellDblClick(TcxCustomGridTableView *Sender,
- TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton,
- TShiftState AShift, bool &AHandled)
- {
- if (!ACellViewInfo) return;
- ClearCheckList();
- TcxDataController *pGDC = TvList->DataController;
- int nSelIdx = CMM_GetRecordIndex(TvList);
- if (nSelIdx < 0) return;
- pGDC->Values[nSelIdx][ColumnSel->Index] = true;
- DisplayInfo();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::Se01PropertiesChange(TObject *Sender)
- {
- if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
- ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
- else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
- ((TcxSpinEdit*)Sender)->Properties->MaxValue)
- ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TFrmVmsRemoteCtrl::GetSelListItems(bool ACommCheck/*=true*/)
- {
- String sMsg;
- TcxDataController *pGDC = TvList->DataController;
- FVmsIds->Clear();
- if (FCommCtrlTarget == NULL) {
- sMsg = "VMS 원격제어\r\nVMS 원격제어 서버에 대한 정보가 없습니다.\r\n관리자에게 확인 후에 작업을 진행 하세요.\r\n원격제어 명령을 전송할 수 없습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
- return false;
- }
- try
- {
- bool bSelected;
- int nRows = TvList->ViewData->RecordCount;
- TvList->BeginUpdate();
- for (int ii = 0; ii < nRows; ii++)
- {
- TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii];
- int nMemPtr = (int)ARow->Values[Col99->Index];
- TVmsCtlr *pVms = (TVmsCtlr*)nMemPtr;
- if (!pVms) continue;
- bSelected = (bool)ARow->Values[ColumnSel->Index];
- if (bSelected)
- {
- String sVmsCtlrId = ARow->Values[ColVMS_CTLR_ID->Index]; //VMS번호
- if (ACommCheck)
- {
- #if 0
- if (pVms->STATE.Comm == vms_comm_normal)
- {
- FVmsIds->Add(sVmsCtlrId);
- }
- #endif
- }
- else
- {
- FVmsIds->Add(sVmsCtlrId);
- }
- }
- }
- }
- __finally
- {
- TvList->EndUpdate();
- }
- if (FVmsIds->Count <= 0) {
- sMsg = "VMS 원격제어\r\nVVMS가 선택되지 않았습니다.\r\nVMS 목록에서 VMS를 선택하십시요.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
- CxList->SetFocus();
- return false;
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TFrmVmsRemoteCtrl::UpdateVmsParam(String AVmsNmbr, void *pData)
- {
- return true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnOnOffSetClick(TObject *Sender)
- {
- //전광판ON/OFF시각설정
- String sTitle = "전광판 ON/OFF 시각 설정";
- String sMsg = "";
- int nOkCnt = 0;
- int nSelCnt = GetSelListItems(false);
- if (0 == nSelCnt)
- {
- sMsg = "VMS가 선택되지 않았습니다.\r\nVMS 목록에서 VMS를 선택하십시요.";
- Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
- CxList->SetFocus();
- return;
- }
- int nCmdIdx = 0;
- sMsg = "선택하신 VMS의 전광판 ON/OFF 시각을 설정 하시겠습니까?";
- if (Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "UPDATE TB_VMS_CTLR \r\n"
- " SET VMS_OFF_HM = :p02, \r\n"
- " VMS_OFF_HM = :p03 \r\n"
- " WHERE VMS_CTLR_ID = :p01 \r\n";
- String VMS_ON_HM = cxTimeOn->Time.FormatString("HHNN");
- String VMS_OFF_HM = cxTimeOff->Time.FormatString("HHNN");
- String LAST_CRPR_NMBR = g_AppCfg.OPER_ID;
- String LAST_CRCT_DT = Now().FormatString("yyyymmddhhnnss");
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsNmbr = FVmsIds->Strings[ii];
- pADO->Parameters->ParamByName("p01")->Value = sVmsNmbr;
- pADO->Parameters->ParamByName("p02")->Value = VMS_OFF_HM;
- pADO->Parameters->ParamByName("p03")->Value = VMS_OFF_HM;
- pADO->ExecSQL();
- nOkCnt++;
- TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(sVmsNmbr);
- if (pObj)
- {
- pObj->VMS_ON_HM = VMS_OFF_HM;
- pObj->VMS_OFF_HM = VMS_OFF_HM;
- }
- }
- }
- catch(EDatabaseError &E)
- {
- DBERRORMSG("TVMS0500M::BtnOnOffSetClick", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORMSG("TVMS0500M::BtnOnOffSetClick", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 전광판 ON/OFF 시각 설정을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsNmbr = FVmsIds->Strings[ii];
- VmsCtlrManager->InsVmsControlHs(LAST_CRCT_DT, sVmsNmbr, "V05", VMS_OFF_HM+" "+VMS_OFF_HM, "1", LAST_CRPR_NMBR);
- }
- //RefreshStatus();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnModeControlClick(TObject *Sender)
- {
- //VMS 운영모드 변경
- String sTitle = "VMS 운영모드 변경";
- String sMsg = "";
- int nOkCnt = 0;
- int nSelCnt = GetSelListItems(false);
- if (0 == nSelCnt)
- {
- sMsg = "VMS가 선택되지 않았습니다.\r\nVMS 목록에서 VMS를 선택하십시요.";
- Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
- CxList->SetFocus();
- return;
- }
- int nCmdIdx = 0;
- sMsg = "선택하신 VMS의 운영모드를 변경 하시겠습니까?";
- if (Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- String OPER_MODE;
- if (RdbAuto->Checked)
- {
- OPER_MODE = "A";
- }
- else
- if (RdbFix->Checked)
- {
- OPER_MODE = "F";
- }
- else
- if (RdbBase->Checked)
- {
- OPER_MODE = "B";
- }
- String sQry;
- TADOQuery *pADO = NULL;
- sQry = "UPDATE TB_VMS_CTLR \r\n"
- " SET OPER_MODE = :p01 \r\n"
- " WHERE VMS_CTLR_ID = :p05 \r\n";
- String LAST_CRPR_NMBR = g_AppCfg.OPER_ID;
- String LAST_CRCT_DT = Now().FormatString("yyyymmddhhnnss");
- #if 0
- try
- {
- try
- {
- pADO = new TADOQuery(NULL);
- pADO->Close();
- pADO->Connection = ITSDb_GetConnection();
- pADO->SQL->Clear();
- pADO->SQL->Text = sQry;
- INT_VMS_MODE_REQ VmsMode;
- BYTE MsgSeq;
- memset(&VmsMode, 0x00, sizeof(VmsMode));
- MsgSeq = (BYTE)0x50;
- memcpy(VmsMode.CmdTime, AnsiString(LAST_CRCT_DT).c_str(), INT_VMS_MAX_DATETIME); /* 명령수행시각 */
- memcpy(VmsMode.OperId, AnsiString(LAST_CRPR_NMBR).c_str(), INT_VMS_MAX_OPER_ID); /* 운영자 ID */
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsNmbr = FVmsIds->Strings[ii];
- pADO->Parameters->ParamByName("p01")->Value = OPER_MODE;
- pADO->Parameters->ParamByName("p05")->Value = sVmsNmbr;
- pADO->ExecSQL();
- nOkCnt++;
- TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(sVmsNmbr);
- if (pObj)
- {
- pObj->OPER_MODE = OPER_MODE;
- if (pObj->OPER_MODE == "A") pObj->STATE.OprMode = 'A';
- else if (pObj->OPER_MODE == "B") pObj->STATE.OprMode = 'B';
- else pObj->STATE.OprMode = 'F';
- }
- else continue;
- VmsMode.Unit[VmsMode.Count].VMS_CTLR_ID = sVmsNmbr.ToIntDef(0); /* VMS 제어기 번호 */
- if (OPER_MODE == "A") VmsMode.Unit[VmsMode.Count].Mode = 'A';
- else if (OPER_MODE == "B") VmsMode.Unit[VmsMode.Count].Mode = 'B';
- else VmsMode.Unit[VmsMode.Count].Mode = 'F';
- VmsMode.Count++;
- if (VmsMode.Count >= INT_VMS_MAX_MODE)
- {
- CComm_VmsModeReq(&VmsMode, MsgSeq);
- }
- }
- if (VmsMode.Count > 0)
- {
- CComm_VmsModeReq(&VmsMode, MsgSeq);
- }
- }
- catch(EDatabaseError &E)
- {
- DBERRORMSG("TVMS0500M::BtnModeControlClick", String(E.ClassName()), E.Message, sQry);
- throw Exception(String(E.ClassName()) + E.Message);
- }
- catch(Exception &e)
- {
- DBERRORMSG("TVMS0500M::BtnModeControlClick", String(e.ClassName()), e.Message, sQry);
- throw Exception(String(e.ClassName()) + e.Message);
- }
- }
- __finally
- {
- if (pADO)
- {
- pADO->Close();
- delete pADO;
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS 운영모드를 변경하였습니다.";
- Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsNmbr = FVmsIds->Strings[ii];
- VmsCtlrManager->InsVmsControlHs(LAST_CRCT_DT, sVmsNmbr, "V06", OPER_MODE, "1", LAST_CRPR_NMBR);
- }
- //RefreshStatus();
- #endif
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnWebCamUrlClick(TObject *Sender)
- {
- #if 0
- if (FSelVmsObj)
- {
- if (FSelVmsObj->WEB_CMRA_IP.Trim() != "")
- {
- String sUrl = "http://" + FSelVmsObj->WEB_CMRA_IP.Trim();
- //if (FSelVmsObj->WEB_CMRA_PORT != "")
- //{
- // sUrl = sUrl + ":" + FSelVmsObj->WEB_CMRA_PORT;
- //}
- ShellExecute(NULL, NULL, sUrl.c_str(), NULL, NULL, 0);
- }
- }
- #endif
- }
- //---------------------------------------------------------------------------
- bool __fastcall TFrmVmsRemoteCtrl::UpdateVmsParam2(String AVmsNmbr, void *pData)
- {
- return true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::TmrCommandTimer(TObject *Sender)
- {
- TmrCommand->Enabled = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::PgControlPageChanging(TObject *Sender, TcxTabSheet *NewPage,
- bool &AllowChange)
- {
- if (BtnAllSelect->Visible == false) BtnAllSelect->Visible = true;
- if (BtnAllClear->Visible == false) BtnAllClear->Visible = true;
- if (BtnReverse->Visible == false) BtnReverse->Visible = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::Col08CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas,
- TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone)
- {
- try
- {
- int iIndex = AViewInfo->Item->Index;
- ACanvas->Canvas->Brush->Style = bsSolid;
- String val = AViewInfo->GridRecord->DisplayTexts[iIndex];
- ACanvas->Canvas->Font->Color = clBlack;
- if (val == "Normal") ACanvas->Canvas->Brush->Color = clLime;
- else if (val == "Delayed") ACanvas->Canvas->Brush->Color = clRed;
- else if (val == "Time out") ACanvas->Canvas->Brush->Color = clRed;
- else ACanvas->Canvas->Brush->Color = clSilver;
- } catch(...) {}
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::ErrorMsg(String AErrMsg)
- {
- LblErrMsg->Caption = AErrMsg;
- LblErrMsg->BringToFront();
- LblErrMsg->Transparent = true;
- LblErrMsg->Style->Font->Color = clWhite;
- LblErrMsg->Style->TextColor = clWhite;
- LblErrMsg->Visible = true;
- LblErrMsg->Refresh();
- LblErrMsg->BringToFront();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::WebCamPlay(String AVmsNo)
- {
- if (LblErrMsg->Visible) LblErrMsg->Visible = false;
- reMsg->Lines->Clear();
- reMsg->Lines->Add("Connect...");
- WebCamStop();
- TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(AVmsNo);
- if (!pObj) return;
- PnlRtspStream->Caption = "영상 연결 중...";
- PnlRtspStream->Refresh();
- try
- {
- FStrmAddr = pObj->VMS_RTSP_ADDR.Trim();
- if (FStrmAddr != "")
- {
- FFPlayer1->AspectRatio = ChkFullScreen->Checked ? -1 : 0;
- FFPlayer1->TryOpen(FStrmAddr, PnlRtspStream->Handle);
- //FStrmUser = pObj->WEB_CMRA_ID;
- //FStrmPswd = pObj->WEB_CMRA_PWD;
- FStrmHttp = FStrmAddr;
- FStrmPlay = true;
- }
- else
- {
- FStrmHttp = "";
- PnlRtspStream->Caption = "영상정보가 없습니다...";
- }
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::WebCamStop()
- {
- if (!FStrmPlay) return;
- try
- {
- if (FFPlayer1->ScreenHandle != NULL)
- {
- FFPlayer1->Stop(true);
- PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0);
- UpdateWindow(FFPlayer1->ScreenHandle);
- //FFPlayer1->ScreenHandle = NULL;
- }
- }
- catch(Exception &e)
- {
- }
- PnlRtspStream->Caption = "Disconnected";
- PnlRtspStream->Refresh();
- FStrmPlay = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnModuleControlClick(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- String sMsg = "";
- sMsg = "VMS 원격제어 - 전광판 전원 제어\r\n선택하신 VMS에 전광판 전원 제어 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqPowerOnOff(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, pBtnControl->Tag == 1);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 전광판 전원 제어 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnResetClick(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- String sMsg = "";
- sMsg = "VMS 원격제어 - 제어기 리셋\r\n선택하신 VMS에 제어기 리셋 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqReset(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 제어기 리셋 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnBlankDisplayClick(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- String sMsg = "";
- sMsg = "VMS 원격제어 - 화면 삭제(빈화면표출)\r\n선택하신 VMS에 화면 삭제(빈화면표출) 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqBlank(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 화면 삭제(빈화면표출) 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnBrghControl0Click(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- int setValue = 0;
- String sCommand = "휘도설정(자동 모드)";
- if (pBtnControl->Tag == 0) {
- setValue = 0;
- sCommand = "휘도설정(자동 모드)";
- }
- else
- if (pBtnControl->Tag == 1) {
- setValue = SeWeekBrgh->Value;
- sCommand = "휘도설정(주간 모드) 밝기 " + String(setValue);
- }
- else if (pBtnControl->Tag == 2) {
- setValue = SeNghtBrgh->Value;
- sCommand = "휘도설정(야간 모드) 밝기 " + String(setValue);
- }
- else if (pBtnControl->Tag == 3) {
- setValue = SeUserBrgh->Value;
- sCommand = "휘도설정(수동 모드) 밝기 " + String(setValue);
- }
- String sMsg = "";
- sMsg = "VMS 원격제어 - " + sCommand + "\r\n선택하신 VMS에 " + sCommand + " 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- BYTE Value = (BYTE)(setValue & 0xFF);
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqLumiSet(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)pBtnControl->Tag, Value);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 " + sCommand + " 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnModlErrRateClick(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- String sCommand = "모듈장애율설정";
- String sMsg = "";
- sMsg = "VMS 원격제어 - " + sCommand + "\r\n선택하신 VMS에 " + sCommand + " 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqModlErrRate(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)SeERR_MODL_RT->Value);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 " + sCommand + " 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnDfltScnrRunTmClick(TObject *Sender)
- {
- TcxButton *pBtnControl = (TcxButton*)Sender;
- if (!GetSelListItems(false)) {
- return;
- }
- String sCommand = "통신장애시간설정";
- String sMsg = "";
- sMsg = "VMS 원격제어 - " + sCommand + "\r\n선택하신 VMS에 " + sCommand + " 명령을 전송하시겠습니까?\r\n(통신상태에 따라 명령이 실행되지 않을 수 있습니다.)";
- if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return;
- int result;
- int nOkCnt = 0;
- int nTotal = 0;
- int nSelCnt = FVmsIds->Count;
- for (int ii = 0; ii < nSelCnt; ii++)
- {
- String sVmsCtlrId = FVmsIds->Strings[ii];
- FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) {
- nTotal++;
- result = CComm_VmsReqCmncErrMin(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)CbDFLT_SCNR_RUN_TM->ItemIndex);
- if (VERR_NONE == result) {
- nOkCnt++;
- }
- Sleep(200);
- Application->ProcessMessages();
- }
- }
- sMsg = String(nSelCnt) + " 개의 선택 VMS 중에 " + String(nOkCnt) + " 개의 VMS로 " + sCommand + " 명령을 요청하였습니다.";
- Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::FFPlayer1State(TObject *Sender, TPlayState APlayState)
- {
- switch(APlayState)
- {
- case Ffbasecomponent::psPlay: reMsg->Lines->Add("Play..."); break;
- case Ffbasecomponent::psResume: reMsg->Lines->Add("Resume."); break;
- case Ffbasecomponent::psPause: reMsg->Lines->Add("Pause.."); break;
- case Ffbasecomponent::psStep: reMsg->Lines->Add("Step..."); break;
- case Ffbasecomponent::psStop:
- if (FFPlayer1->ScreenHandle != NULL)
- {
- PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0);
- UpdateWindow(FFPlayer1->ScreenHandle);
- //FFPlayer1->ScreenHandle = NULL;
- }
- reMsg->Lines->Add("Stop...");
- break;
- case Ffbasecomponent::psEnd:
- {
- FFPlayer1->Stop(true);
- PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0);
- UpdateWindow(FFPlayer1->ScreenHandle);
- //FFPlayer1->ScreenHandle = NULL;
- }
- reMsg->Lines->Add("End...");
- break;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::FFPlayer1OpenFailed(TObject *Sender)
- {
- //ErrorMsg("웹카메라에 연결할 수 없습니다.");
- //WebCamStop();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::ChkFullScreenClick(TObject *Sender)
- {
- FFPlayer1->AspectRatio = ChkFullScreen->Checked ? -1 : 0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnSearchClick(TObject *Sender)
- {
- VmsCtlrManager->LoadStatusFromDb();
- VmsCtlrManager->LoadParaFromDb();
- RefreshStatusInfo();
- EdFocus->SetFocus();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::BtnAllSelectClick(TObject *Sender)
- {
- TcxButton *pBtn = (TcxButton*)Sender;
- CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag);
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::ColRPRS_STTSCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,
- bool &ADone)
- {
- try
- {
- TColor tColor;
- String sStatus = AViewInfo->GridRecord->DisplayTexts[AViewInfo->Item->Index];
- tColor = ACanvas->Brush->Color;
- if (sStatus.Pos("알수")) tColor = clGray;
- else if (sStatus.Pos("일수")) tColor = clGray;
- else if (sStatus.Pos("이상")) tColor = clRed;
- else if (sStatus.Pos("오류")) tColor = clRed;
- else if (sStatus.Pos("불량")) tColor = clRed;
- else if (sStatus.Pos("비정상")) tColor = clRed;
- else if (sStatus.Pos("장애")) tColor = clRed;
- else if (sStatus.Pos("켜짐")) tColor = clYellow;
- else if (sStatus.Pos("열림")) tColor = clRed;
- else if (sStatus.Pos("동작")) tColor = clYellow;
- else if (sStatus.Pos("가동")) tColor = clYellow;
- else tColor = clLime; // 정상
- ACanvas->SetBrushColor(tColor);
- ACanvas->Font->Color = clBlack;
- /*if (AViewInfo->GridRecord->Selected)
- {
- ACanvas->Font->Color = clBlack;
- }*/
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsRemoteCtrl::CbDFLT_SCNR_RUN_TMClick(TObject *Sender)
- {
- BtnDfltScnrRunTm->SetFocus();
- }
- //---------------------------------------------------------------------------
|