123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "FrmVmsInfoF.h"
- #include "FrmVmsLogF.h"
- #include "FrmMainF.h"
- #include "AppGlobalF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TFrmVmsInfo *FrmVmsInfo = NULL;
- String VmsModuleType(TVmsCtlr *AObj)
- {
- if (AObj->VmsType == "VUTN") return "문자식";
- return "도형식";
- }
- //---------------------------------------------------------------------------
- String VmsOperMode(TVmsCtlr *AObj)
- {
- if (AObj->OPER_MODE == "A") return "자동";
- return "고정";
- }
- //---------------------------------------------------------------------------
- String VmsComm(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm == state_open) return "정상";
- return "장애";
- }
- //---------------------------------------------------------------------------
- String VmsModuleState(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- if (AObj->RSTATE.ModuleState == vms_normal) return "정상";
- return "장애";
- }
- //---------------------------------------------------------------------------
- String VmsModulePower(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- if (AObj->RSTATE.ModulePowerStatus == vms_on) return "켜짐";
- return "꺼짐";
- }
- //---------------------------------------------------------------------------
- String VmsModuleLuminance(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- int nLuminance = AObj->RSTATE.LuminanceStatus;
- return String(nLuminance);
- }
- //---------------------------------------------------------------------------
- String VmsModuleDoor(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- if (AObj->RSTATE.DoorStatus == vms_open) return "열림";
- return "닫힘";
- }
- //---------------------------------------------------------------------------
- String VmsModuleFan(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- if (AObj->RSTATE.FanStatus == vms_on) return "동작";
- return "정지";
- }
- //---------------------------------------------------------------------------
- String VmsModuleHeater(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- if (AObj->RSTATE.HeaterStatus == vms_on) return "가동";
- return "중지";
- }
- //---------------------------------------------------------------------------
- String VmsModuleTemp(TVmsCtlr *AObj)
- {
- if (AObj->Client.Comm != state_open) return "-";
- int nTemp = AObj->RSTATE.BodyTemp;
- return String(nTemp);//+"℃";
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- __fastcall TFrmVmsInfo::TFrmVmsInfo(TComponent* Owner)
- : TForm(Owner)
- {
- lvVmsInfo->Clear();
- lvVmsInfo->ViewStyle = vsReport;
- FViewMode = 0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsInfo::UpdateVmsList()
- {
- int nRowIdx = 0;
- TListItem *NewItem;
- lvVmsInfo->Items->BeginUpdate();
- lvVmsInfo->Clear();
- VmsIterator it;
- for(it=VmsManager->FLists.FMapObject.begin(); it != VmsManager->FLists.FMapObject.end(); ++it)
- {
- TVmsCtlr *pObj = (TVmsCtlr*)it->second;
- NewItem = lvVmsInfo->Items->Add();
- NewItem->Caption = pObj->VmsId;//String(ii+1);
- NewItem->ImageIndex = 0;
- NewItem->SubItems->Add(pObj->VmsNo);
- NewItem->SubItems->Add(pObj->VmsId);
- NewItem->SubItems->Add(pObj->Name);
- NewItem->SubItems->Add(pObj->IpAddress);
- NewItem->SubItems->Add("-"); //통신
- NewItem->SubItems->Add("-"); //모듈
- NewItem->SubItems->Add("-"); //전원
- NewItem->SubItems->Add("-"); //휘도
- NewItem->SubItems->Add("-"); //도어
- NewItem->SubItems->Add("-"); //팬
- NewItem->SubItems->Add("-"); //히터
- NewItem->SubItems->Add("-"); //온도
- NewItem->SubItems->Add("-"); //Connect
- NewItem->SubItems->Add("-"); //Disconnect
- NewItem->Data = (void*)pObj;
- }
- lvVmsInfo->Items->EndUpdate();
- VmsManager->Total = VmsManager->Count;
- VmsManager->Error = VmsManager->Count;
- VmsManager->Normal = 0;
- VmsManager->Module = 0;
- plTot->Caption = String(VmsManager->Count);
- plErr->Caption = String(VmsManager->Count);
- plNor->Caption = "0";
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsInfo::UpdateServerState(int AIdx)
- {
- try
- {
- int ii, nCnt;
- int nErrCnt = 0;
- TListItem *NewItem;
- nCnt = lvVmsInfo->Items->Count;
- for(ii = 0; ii < nCnt; ii++)
- {
- NewItem = lvVmsInfo->Items->Item[ii];
- TVmsCtlr *pObj = (TVmsCtlr*)NewItem->Data;
- if (pObj)
- {
- if (pObj->Server.Status == process_run)
- NewItem->ImageIndex = 1;
- else
- {
- NewItem->ImageIndex = 0;
- nErrCnt++;
- }
- }
- NewItem->SubItems->Strings[12] = pObj->ConnectTm; //Connect
- NewItem->SubItems->Strings[13] = pObj->DisconnectTm; //Disconnect
- }
- VmsManager->Error = nErrCnt;
- VmsManager->Normal = nCnt-nErrCnt;
- plTot->Caption = String(nCnt);
- plErr->Caption = String(nErrCnt);
- plNor->Caption = String(nCnt-nErrCnt);
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsInfo::UpdateClientState(int AIdx)
- {
- try
- {
- int ii, nCnt;
- TListItem *NewItem;
- nCnt = lvVmsInfo->Items->Count;
- for(ii = 0; ii < nCnt; ii++)
- {
- NewItem = lvVmsInfo->Items->Item[ii];
- TVmsCtlr *pObj = (TVmsCtlr*)NewItem->Data;
- if (pObj)
- {
- if (pObj->Client.Status == process_run)
- {
- if (pObj->Client.Comm == state_open)
- NewItem->SubItems->Strings[4] = "정상";
- else
- NewItem->SubItems->Strings[4] = "-";
- }
- else
- {
- NewItem->SubItems->Strings[4] = "오류";
- }
- NewItem->SubItems->Strings[ 5] = VmsModuleState(pObj); //모듈
- NewItem->SubItems->Strings[ 6] = VmsModulePower(pObj); //전원
- NewItem->SubItems->Strings[ 7] = VmsModuleLuminance(pObj); //휘도
- NewItem->SubItems->Strings[ 8] = VmsModuleDoor(pObj); //도어
- NewItem->SubItems->Strings[ 9] = VmsModuleFan(pObj); //팬
- NewItem->SubItems->Strings[10] = VmsModuleHeater(pObj); //히터
- NewItem->SubItems->Strings[11] = VmsModuleTemp(pObj); //온도
- }
- }
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsInfo::Image3DblClick(TObject *Sender)
- {
- FViewMode++;
- lvVmsInfo->IconOptions->Arrangement = TIconArrangement::iaTop;
- switch(FViewMode)
- {
- case 1: lvVmsInfo->ViewStyle = vsIcon;
- break;
- case 2: lvVmsInfo->ViewStyle = vsList;
- break;
- case 3: lvVmsInfo->ViewStyle = vsReport;
- break;
- case 4: lvVmsInfo->IconOptions->Arrangement = TIconArrangement::iaLeft;
- lvVmsInfo->ViewStyle = vsSmallIcon;
- break;
- case 5: lvVmsInfo->ViewStyle = vsReport;
- FViewMode = 0;
- break;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVmsInfo::lvVmsInfoDblClick(TObject *Sender)
- {
- int nIdx = lvVmsInfo->Selected->Index;
- TListItem *NewItem = lvVmsInfo->Items->Item[nIdx];
- TVmsCtlr *pObj = (TVmsCtlr*)NewItem->Data;
- if (!pObj) return;
- if (!FrmVmsLog->Showing)
- {
- FrmVmsLog->Top = FrmMain->Top;
- //FrmVmsLog->Left= FrmMain->Left+FrmMain->Width;
- FrmVmsLog->Show();
- }
- FrmVmsLog->DisplayVmsLog((int)pObj);
- }
- //---------------------------------------------------------------------------
|