//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "VitzroCommF.h" #pragma hdrstop #include "DSRM020MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #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 "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxRadioGroup" #pragma link "cxSplitter" #pragma link "cxStyles" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" TDSRM020M *DSRM020M = NULL; //--------------------------------------------------------------------------- __fastcall TDSRM020M::TDSRM020M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FTitle = "DSRC-RSE Á¦¾î"; FReqSeq = 0; TvResult->OptionsView->NoDataToDisplayInfoText = FrmLang->lblNoInfo->Caption;//"<Á¦¾îÀü¼Û°á°ú>"; FRAMEDsrcList1->PnlBottom->Visible = false; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TDSRM020M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM020M::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TDSRM020M::FormInit() { } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM020M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; RdoController->Checked = true; FRAMEDsrcList1->UpdateList(); } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TDSRM020M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TDSRM020M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); DSRM020M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TDSRM020M::FormCloseQuery(TObject *Sender, bool &CanClose) { FRAMEDsrcList1->OnCloseQuery(CanClose); } //--------------------------------------------------------------------------- void __fastcall TDSRM020M::BtnControlClick(TObject *Sender) { int nSelects = CMM_GetCheckCount(FRAMEDsrcList1->TvList, FRAMEDsrcList1->ColumnSel->Index); if (0 == nSelects) { Application->MessageBox(L"Á¦¾î ¸ñ·ÏÀ» ¼±ÅÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); FRAMEDsrcList1->CxList->SetFocus(); return; } if (!RdoController->Checked && !RdoAnt1->Checked) { Application->MessageBox(L"ÀåÄ¡ À¯ÇüÀ» ¼±ÅÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù.\r\nÀåÄ¡ À¯ÇüÀ» ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } if (!RdoReset->Checked && !RdoStop->Checked && !RdoStart->Checked) { Application->MessageBox(L"Á¦¾î À¯ÇüÀ» ¼±ÅÃÇÏÁö ¾Ê¾Ò½À´Ï´Ù.\r\nÁ¦¾î À¯ÇüÀ» ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } if (Application->MessageBox(L"Á¦¾îÀü¼ÛÈ®ÀÎ\r\n¼±ÅÃÇÑ DSRC-RSE¿¡ ´ëÇÏ¿© Á¦¾î¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î??", FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; int nRow; int nResult; EN_INT_RSE_DEVICE_CODE DeviceType; EN_INT_RSE_CONTROL_CODE ControlType; DeviceType = INT_RSE_DEVICE_MAIN; if (RdoAnt1->Checked) { DeviceType = INT_RSE_DEVICE_ATN1; } ControlType = INT_RSE_CONTROL_RESET; if (RdoStop->Checked) { ControlType = INT_RSE_CONTROL_STOP; } else if (RdoStart->Checked) { ControlType = INT_RSE_CONTROL_START; } CMM_ClearGridTableView(TvResult); INT_RSE_CONTROL_REQ RseCtl; memset(&RseCtl, 0x00, sizeof(RseCtl)); try { FRAMEDsrcList1->TvList->BeginUpdate(); int nRowCnt = FRAMEDsrcList1->TvList->ViewData->RecordCount; for (int ii = 0; ii < nRowCnt; ii++) { TcxCustomGridRow* ARow = FRAMEDsrcList1->TvList->ViewData->Rows[ii]; if (((bool)ARow->Values[FRAMEDsrcList1->ColumnSel->Index])) { String sId = VarToStr(ARow->Values[FRAMEDsrcList1->Column01->Index]); nRow = TvResult->DataController->AppendRecord(); AnsiString DesProcessID = "DSRC01"; String sSendDate = Now().FormatString("YYYYMMDD"); String sSendTime = Now().FormatString("HHNNSS"); RseCtl.Head.Seq = FReqSeq++; RseCtl.Head.RseId = sId.ToIntDef(0); RseCtl.Data.SendDate = sSendDate.ToIntDef(0); RseCtl.Data.SendTime = sSendTime.ToIntDef(0); RseCtl.Data.DeviceType = DeviceType; RseCtl.Data.ControlType = ControlType; nResult = VComm_RseCtlReq(&RseCtl); TvResult->DataController->Values[nRow][ColResult1->Index] = sId; TvResult->DataController->Values[nRow][ColResult2->Index] = String(RseCtl.Head.Seq); if (VERR_NONE == nResult) { TvResult->DataController->Values[nRow][ColResult3->Index] = "¼º°ø"; } else { TvResult->DataController->Values[nRow][ColResult3->Index] = "½ÇÆÐ"; } TvResult->DataController->Values[nRow][ColResult4->Index] = "ÀÀ´ä´ë±â"; } } } __finally { FRAMEDsrcList1->TvList->EndUpdate(); } #if 0 INT_RSE_RESPONSE_SUCC, /* 0: ¼º°ø */ INT_RSE_RESPONSE_NACK, /* 1: °ÅÀý */ INT_RSE_RESPONSE_NONE /* 2: ÀÀ´ä¾øÀ½ */ #endif Application->MessageBox(L"Á¦¾î¸í·ÉÀ» Àü¼Û ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- /* * ¸ÞÀÎÆû¿¡¼­ µ¥ÀÌÅ͸¦ ¼ö½Å½Ã ¹ß»ýÇÏ´Â À̺¥Æ® Çڵ鷯 * arguments * * return * void */ void __fastcall TDSRM020M::OnMainFormMessage(TMessage &Msg) { #if 0 IPCUDPMESSAGESTRUCT *pMsg; // ¸Þ½ÃÁö ±¸Á¶Ã¼ IPCUDPDATASTRUCT *pPkt; // ³»ºÎ Åë½Å ÆÐŶ ±¸Á¶Ã¼ UNION_INT_DATA *pData; // ³»ºÎ Åë½Å µ¥ÀÌÅͺΠ±¸Á¶Ã¼ pMsg = (IPCUDPMESSAGESTRUCT *)Msg.LParam; pPkt = &pMsg->Frame; pData = &pPkt->Data.unData; switch (Msg.WParam) { case INT_OP_RSE_CONTROL_RES: /* 0xC1, RSE Á¦¾îÁ¤º¸ ÀÀ´ä */ { INT_RSE_CONTROL_RES *pRseCtl; pRseCtl = (INT_RSE_CONTROL_RES *)pData; String sResId = String(pRseCtl->Head.RseId); String sResSeq = String(pRseCtl->Head.Seq); int nResult = pRseCtl->Data.ResType; try { TvResult->BeginUpdate(); int nRowCnt = TvResult->ViewData->RecordCount; for (int ii = 0; ii < nRowCnt; ii++) { TcxCustomGridRow* ARow = FRAMEDsrcList1->TvList->ViewData->Rows[ii]; if (((bool)ARow->Values[FRAMEDsrcList1->ColumnSel->Index])) { String sId = VarToStr(ARow->Values[ColResult1->Index]); String sSeq= VarToStr(ARow->Values[ColResult2->Index]); if (sResId == sId && sResSeq == sSeq) { String sResult = "Unknown"; if (nResult == (int)INT_RSE_RESPONSE_SUCC) sResult = "¼º°ø"; else if (nResult == (int)INT_RSE_RESPONSE_NACK) sResult = "½ÇÆÐ"; else if (nResult == (int)INT_RSE_RESPONSE_NONE) sResult = "ÀÀ´ä¾øÀ½"; ARow->Values[ColResult4->Index] = sResult; break; } } } } __finally { TvResult->EndUpdate(); } #if 0 ProcLog(CENTER_LOG_DATA, "RSE_CONTROL_RES"); ProcLog(CENTER_LOG_DATA, "Seq: %d", pRseCtl->Head.Seq); ProcLog(CENTER_LOG_DATA, "RseId: %d", pRseCtl->Head.RseId); ProcLog(CENTER_LOG_DATA, "SendDate: %d", pRseCtl->Data.SendDate); ProcLog(CENTER_LOG_DATA, "SendTime: %d", pRseCtl->Data.SendTime); ProcLog(CENTER_LOG_DATA, "ResType: %d", pRseCtl->Data.ResType); #endif } break; default: break; }/* end switch */ #endif } //--------------------------------------------------------------------------- void __fastcall TDSRM020M::RdoControllerClick(TObject *Sender) { RdoStop->Enabled = false; RdoStart->Enabled = false; RdoReset->Enabled = true; RdoReset->Checked = true; } //--------------------------------------------------------------------------- void __fastcall TDSRM020M::RdoAnt1Click(TObject *Sender) { RdoReset->Enabled = false; RdoStop->Enabled = true; RdoStart->Enabled = true; RdoStop->Checked = true; } //---------------------------------------------------------------------------