//--------------------------------------------------------------------------- #include #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