123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "FrmVmsF.h"
- #include "AppGlobalF.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TFrmVms *FrmVms = NULL;
- //---------------------------------------------------------------------------
- __fastcall TFrmVms::TFrmVms(TComponent* Owner)
- : TForm(Owner)
- {
- pnlCaption->Caption = "";
- reMsg->Lines->Clear();
- //FVmsObj = NULL;
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::UpdateVmsList()
- {
- #if 0
- int nRowIdx = 0;
- TListItem *NewItem;
- lvClient->Items->BeginUpdate();
- lvClient->Clear();
- FOR_STL(TVmsObj*, pObj, VmsManager->FLists)
- {
- if (pObj->MEMDEL) continue;
- NewItem = lvClient->Items->Add();
- NewItem->Caption = "";//String(ii+1);
- NewItem->ImageIndex = 0;
- NewItem->SubItems->Add(pObj->VMSID);
- NewItem->SubItems->Add(pObj->NAME);
- NewItem->Data = (void*)pObj;
- pObj->RowIdx = nRowIdx++;
- }
- lvClient->Items->EndUpdate();
- Application->ProcessMessages();
- #endif
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::CommStateRefresh()
- {
- #if 0
- try
- {
- TVmsObj *pObj;
- TListItem *NewItem;
- int ii, nCnt;
- nCnt = lvClient->Items->Count;
- for(ii = 0; ii < nCnt; ii++)
- {
- NewItem = lvClient->Items->Item[ii];
- pObj = (TVmsObj*)NewItem->Data;
- if (!pObj) continue;
- if (pObj->Server.Status == PROCESS_RUN)
- NewItem->ImageIndex = 1;
- else
- NewItem->ImageIndex = 0;
- }
- }
- catch(Exception &e)
- {
- }
- #endif
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::OnWMTcpServerMessage(TMessage &Msg)
- {
- #if 0
- switch(Msg.Msg)
- {
- case WM_TCP_SERVER:
- if (Msg.WParam == WM_VMS_STTS)
- {
- TVmsObj *pObj = (TVmsObj*)Msg.LParam;
- //LINFO("VMS status: %s", pObj->VMSID.c_str());
- RefreshGridCommState((void*)pObj);
- }
- break;
- }
- #endif
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::RefreshGridCommState(void *AData)
- {
- #if 0
- TVmsObj *pObj = (TVmsObj*)AData;
- if (!pObj) return;
- try
- {
- int nRowIdx = pObj->RowIdx;
- if (nRowIdx < 0 || nRowIdx >= lvClient->Items->Count) return;
- TListItem *NewItem;
- NewItem = lvClient->Items->Item[nRowIdx];
- if (pObj->Server.Status == PROCESS_RUN)
- {
- NewItem->ImageIndex = 1;
- }
- else
- {
- NewItem->ImageIndex = 0;
- }
- }
- catch(Exception &e)
- {
- }
- #endif
- Application->ProcessMessages();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::lvClientSelectItem(TObject *Sender, TListItem *Item, bool Selected)
- {
- #if 0
- if (Selected)
- {
- try
- {
- TVmsObj *pSelObj = (TVmsObj*)Item->Data;
- if (!pSelObj) return;
- pnlCaption->Caption = pSelObj->VMSID + " - " + pSelObj->IPADDRESS;
- FVmsObj = pSelObj;
- reMsg->Lines->BeginUpdate();
- reMsg->Lines->Assign((TPersistent*)FVmsObj->FLogList);
- PostMessage(reMsg->Handle, WM_VSCROLL, SB_BOTTOM, 0);
- reMsg->Lines->EndUpdate();
- Application->ProcessMessages();
- }
- catch(Exception &e) { }
- }
- #endif
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::btnClearClick(TObject *Sender)
- {
- reMsg->Lines->Clear();
- Application->ProcessMessages();
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::btnCopyClick(TObject *Sender)
- {
- try
- {
- reMsg->SelectAll();
- reMsg->CopyToClipboard();
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TFrmVms::OnWMLogDisplayMessage(TMessage &Msg)
- {
- #if 0
- IPC_LOG_MESSAGE *pLog = (IPC_LOG_MESSAGE *)Msg.WParam;
- TVmsObj *pObj = NULL;
- if (pLog)
- {
- IPC_LOG_MESSAGE Log;
- Log.Kind = pLog->Kind;
- Log.Flag = pLog->Flag;
- Log.Len = pLog->Len;
- Log.Tm = pLog->Tm;
- memcpy(Log.Msg, pLog->Msg, sizeof(Log.Msg));
- Log.Obj = pLog->Obj;
- delete pLog; pLog = NULL;
- ReplyMessage(0);
- pObj = (TVmsObj*)Log.Obj;
- if (!pObj) return;
- if (Log.Kind == eLOG_DATA)
- {
- LogData(&Log);
- }
- else
- {
- DisplayLog(&Log);
- }
- }
- #endif
- }
- //---------------------------------------------------------------------------
- #if 0
- void TFrmVms::LogData(IPC_LOG_MESSAGE *ALog)
- {
- AnsiString sTemp;
- AnsiString sTime;
- int ii, jj, pos;
- bool bFileClose = false;
- TVmsObj *pObj = (TVmsObj*)ALog->Obj;
- unsigned char *AData= ALog->Msg;
- if (!AData) return;
- String sLogData = "";
- try
- {
- AnsiString sSndRcv = ALog->Flag == 1 ? "SEND" : "RECV";
- sTime = AnsiString(ALog->Tm.FormatString("hh:nn:ss"));
- sTemp.printf("%s [%s] %d Bytes ", sTime.c_str(), sSndRcv.c_str(), ALog->Len);
- sLogData += sTemp;
- #if 0
- sLogData += "\r\n";
- AnsiString sLog;
- AnsiString sChar;
- AnsiString sMsg;
- for (ii = 0; ii < ALog->Len; ii += 16)
- {
- sLog = "";
- sMsg.printf("%08Xh ", ii);
- sLog += sMsg;
- for (jj = 0; jj < 16; jj++)
- {
- pos = ii + jj;
- if (pos < ALog->Len)
- sMsg.printf(" %02X", AData[pos]);
- else
- sMsg.printf(" ");
- sLog += sMsg;
- if (jj == 7)
- {
- //sMsg.printf(" "); sLog += sMsg;
- }
- }
- sMsg.printf(" ;"); sLog += sMsg;
- for (jj = 0; jj < 16; jj++)
- {
- pos = ii + jj;
- if (pos >= ALog->Len)
- break;
- uint8_t v = AData[pos];
- sMsg.printf("%c", isprint(v) ? v : '.');
- sLog += sMsg;
- if (jj == 7)
- {
- //sMsg.printf(" "); sLog += sMsg;
- }
- }
- sLogData += sLog;
- sLogData += "\r\n";
- }
- sLogData = sLogData.SubString(0, sLogData.Length()-2);
- #endif
- try
- {
- while (pObj->FLogList->Count >= g_AppCfg.nMaxLogLines)
- pObj->FLogList->Delete(0);
- pObj->FLogList->Add(sLogData);
- }
- catch(Exception &e)
- {
- }
- if (!FVmsObj) return;
- if (pObj != FVmsObj) return; //선택한 VMS가 아니면 표출할 필요가 없다.
- //메모리에는 이미 적재하였고 화면에만 표출하지 않도록 한다.
- if (chkLogPause->Checked) return;
- reMsg->Lines->BeginUpdate();
- reMsg->Lines->Add(sLogData);
- PostMessage(reMsg->Handle, WM_VSCROLL, SB_BOTTOM, 0);
- reMsg->Lines->EndUpdate();
- Application->ProcessMessages();
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- void TFrmVms::DisplayLog(IPC_LOG_MESSAGE *ALog)
- {
- TVmsObj *pObj = (TVmsObj*)ALog->Obj;
- try
- {
- try
- {
- while (pObj->FLogList->Count >= g_AppCfg.nMaxLogLines)
- pObj->FLogList->Delete(0);
- pObj->FLogList->Add(ALog->Tm.FormatString("hh:nn:ss") + ALog->Msg);
- }
- catch(Exception &e)
- {
- }
- if (!FVmsObj) return;
- if (pObj != FVmsObj) return; //선택한 VMS가 아니면 표출할 필요가 없다.
- //메모리에는 이미 적재하였고 화면에만 표출하지 않도록 한다.
- if (chkLogPause->Checked) return;
- reMsg->Lines->BeginUpdate();
- reMsg->Lines->Add(ALog->Tm.FormatString("hh:nn:ss") + String(ALog->Msg));
- PostMessage(reMsg->Handle, WM_VSCROLL, SB_BOTTOM, 0);
- reMsg->Lines->EndUpdate();
- Application->ProcessMessages();
- }
- catch(Exception &e)
- {
- }
- }
- //---------------------------------------------------------------------------
- #endif
|