//--------------------------------------------------------------------------- #include #include "AppGlobalF.h" #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "FRAME_VmsStateF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalc" #pragma link "cxCheckBox" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxEdit" #pragma link "cxFilter" #pragma link "cxGraphics" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxStyles" #pragma link "cxTextEdit" #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 "cxGridBandedTableView" #pragma link "cxGridCardView" #pragma link "cxGridCustomLayoutView" #pragma link "cxGroupBox" #pragma link "cxRadioGroup" #pragma link "cxLabel" #pragma resource "*.dfm" //TFRAMEVmsStateList *FRAMEVmsStateList; //--------------------------------------------------------------------------- __fastcall TFRAMEVmsState::TFRAMEVmsState(TComponent* Owner) : TFrame(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); FSelVmsObj = NULL; TcxDataController *pGDC = TvVmsInfo->DataController; try { pGDC->BeginUpdate(); while(pGDC->RecordCount > 0) { pGDC->DeleteRecord(0); } pGDC->AppendRecord(); } __finally { pGDC->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::UpdateList() { } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::SetVmsObject(TVmsCtlr *ASelVmsObj) { FSelVmsObj = ASelVmsObj; RefreshStatus(); } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::RefreshStatus() { CxVmsInfo->LayoutChanged(); } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::OnCloseQuery(bool &CanClose) { } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::ColVmsIdGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (!FSelVmsObj) { AText = ""; return; } TVmsCtlr *pObj = FSelVmsObj; switch(Sender->Tag) { case 0: AText = pObj->VMS_CTLR_ID; break; case 1: AText = pObj->VMS_TYPE_NM; break; case 2: AText = pObj->CTLR_NMBR + "-" + pObj->VMS_NM; break; case 3: //¿î¿µ¸ðµå AText = VmsOperMode(pObj); break; case 4: //Åë½Å AText = VmsComm(pObj); break; case 5: //¸ðµâ»óÅ //AText = VmsModuleState(pObj); AText = VmsModulePower(pObj); break; case 6: //¸ðµâÀü¿ø»óÅ AText = VmsModulePower(pObj); break; case 7: //¸ðµâÈÖµµ°ª AText = VmsModuleLuminance(pObj); break; case 8: //µµ¾î»óÅ AText = VmsModuleDoor(pObj); break; case 9: //ÆÒ»óÅ AText = VmsModuleFan(pObj); break; case 10: //È÷ÅÍ»óÅ AText = VmsModuleHeater(pObj); break; case 11: //¿Âµµ°ª AText = VmsModuleTemp(pObj); break; } } //--------------------------------------------------------------------------- void __fastcall TFRAMEVmsState::BtnControl0Click(TObject *Sender) { //Àü±¤ÆÇÁ¦¾î String sTitle = lblText1->Caption;//"Àü±¤ÆÇ/Á¦¾î±â Á¦¾î"; String sMsg = ""; int nOkCnt = 0; if (!FSelVmsObj) { sMsg = lblText2->Caption;//"VMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nVMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxVmsInfo->SetFocus(); return; } if (FSelVmsObj->STATE.Comm != vms_comm_normal) { sMsg = lblText3->Caption;//"ÇöÀç Åë½ÅÀÌ ºñÁ¤»óÀÎ VMS´Â ¼±ÅÃÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.\r\nÅë½Å»óŰ¡ Á¤»óÀÎ VMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxVmsInfo->SetFocus(); return; } int nCmdIdx; if (RdbOn->Checked) { nCmdIdx = vms_req_board_power_on; sMsg = lblText4->Caption + "\r\n" + cxLabel9->Caption;//"¼±ÅÃÇϽŠVMS¿¡ VMS Àü±¤ÆÇ Àü¿ø ON ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; } else if (RdbOff->Checked) { nCmdIdx = vms_req_board_power_off; sMsg = lblText5->Caption + "\r\n" + cxLabel9->Caption;//"¼±ÅÃÇϽŠVMS¿¡ VMS Àü±¤ÆÇ Àü¿ø OFF ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; } else if (RdbReset->Checked) { nCmdIdx = 2; sMsg = lblText6->Caption + "\r\n" + cxLabel9->Caption;//"¼±ÅÃÇϽŠVMS¿¡ VMS Á¦¾î±â ¸®¼Â ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; } if (Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; String sCmdUser = g_pLOGIN->sUserId; String sCmdTime = Now().FormatString("yyyymmddhhnnss"); int result; String sVmsNmbr = String(FSelVmsObj->VMS_CTLR_NMBR); if (nCmdIdx == vms_req_board_power_on || nCmdIdx == vms_req_board_power_off) { // Àü±¤ÆÇ On(=0)/Off(=1) INT_VMS_POWER_CTL_REQ VmsPowerCtl; BYTE MsgSeq; memset(&VmsPowerCtl, 0x00, sizeof(VmsPowerCtl)); MsgSeq = (BYTE)0x10; // Á¦¾î¸í·É ÀϷùøÈ£-°á°ú°ªÀ» ¹Þ¾Æ¼­ ó¸®ÇÒ¶§ ÇÊ¿äÇÔ memcpy(VmsPowerCtl.CmdTime, AnsiString(sCmdTime).c_str(), INT_VMS_MAX_DATETIME); /* ¸í·É¼öÇà½Ã°¢ */ memcpy(VmsPowerCtl.OperId, AnsiString(sCmdUser).c_str(), INT_VMS_MAX_OPER_ID); /* ¿î¿µÀÚ ID */ VmsPowerCtl.VMS_CTLR_NMBR = sVmsNmbr.ToIntDef(0); VmsPowerCtl.Command = (BYTE)nCmdIdx; /* Á¦¾î ±¸ºÐ, 0:ÄÑÁü 1:²¨Áü */ String sOprCode = (nCmdIdx == vms_req_board_power_on) ? "V01" : "V02"; String sCmdValue = (nCmdIdx == vms_req_board_power_on) ? "On" : "Off"; result = CComm_VmsPowerControlReq(&VmsPowerCtl, MsgSeq); if (VERR_NONE == result) { VmsCtlrManager->InsVmsControlHs(sCmdTime, sVmsNmbr, sOprCode, sCmdValue, "1", sCmdUser); nOkCnt++; } else { VmsCtlrManager->InsVmsControlHs(sCmdTime, sVmsNmbr, sOprCode, sCmdValue, "0", sCmdUser); } } else { // Á¦¾î±â ¸®¼Â INT_VMS_RESET_REQ VmsReset; BYTE MsgSeq; memset(&VmsReset, 0x00, sizeof(VmsReset)); MsgSeq = (BYTE)0x20; memcpy(VmsReset.CmdTime, AnsiString(sCmdTime).c_str(), INT_VMS_MAX_DATETIME); /* ¸í·É¼öÇà½Ã°¢ */ memcpy(VmsReset.OperId, AnsiString(sCmdUser).c_str(), INT_VMS_MAX_OPER_ID); /* ¿î¿µÀÚ ID */ VmsReset.VMS_CTLR_NMBR = sVmsNmbr.ToIntDef(0); result = CComm_VmsResetReq(&VmsReset, MsgSeq); if (VERR_NONE == result) { VmsCtlrManager->InsVmsControlHs(sCmdTime, sVmsNmbr, "V03", "Reset", "1", sCmdUser); nOkCnt++; } else { VmsCtlrManager->InsVmsControlHs(sCmdTime, sVmsNmbr, "V03", "Reset", "0", sCmdUser); } } sMsg = lblText7->Caption;//"VMS·Î Àü±¤ÆÇ/Á¦¾î±â Á¦¾î ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //---------------------------------------------------------------------------