//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "FrmMainF.h" #include "TThreadPollingF.h" #include "FrmInitializeF.h" // ÇÁ·Î±×·¥ ÃʱâÈ­È­¸é #include "FrmFacilityAlarmF.h" #include "FrmIncidentAlarmF.h" #include "CDSTrafficF.h" #define D_IDB0140Mx #define D_WBH0010Mx #define D_BLACKBOXx //--------------------------------------------------------------------------- #include "ITS0000MF.h" // ÅëÇÕ¸ð´ÏÅ͸µ #include "ITS0010MF.h" // ÇöÀç¼ÒÅëÁ¤º¸ #include "ITS0020MF.h" // ¼ÒÅëÁ¤º¸Á¦º¸ °ü¸® #include "ITS0030MF.h" // µ¹¹ß»óȲÁ¤º¸ °ü¸® #include "ITS0040MF.h" // ¹Ýº¹Á¤Ã¼±¸°£°ü¸® //#include "ITS0050MF.h" // ¹Ýº¹Á¤Ã¼±¸°£°ü¸®(±â»ó) //--------------------------------------------------------------------------- #include "IFM0010MF.h" // ½Ã¼³¹° Á¤º¸°ü¸® #include "IFM0020MF.h" // ½Ã¼³¹° ¾÷ü °ü¸® #include "IFM0030MF.h" // ½Ã¼³¹° Àå¾Ö °ü¸® #include "IFM0040MF.h" // ½Ã¼³¹°Àå¾Ö ÀÌ·Â #include "IFM0050MF.h" // ½Ã¼³¹° Àå¾ÖÄÚµå °ü¸® //--------------------------------------------------------------------------- #include "IDB0010MF.h" // ³ëµå #include "IDB0020MF.h" // ¸µÅ© #include "IDB0030MF.h" // ¼­ºñ½º¸µÅ© #include "IDB0040MF.h" // µµ·Î #include "IDB0050MF.h" // °¡°øÆÄ¶ó¹ÌÅͰü¸® #include "IDB0051MF.h" // °¡°øÆÄ¶ó¹ÌÅͰü¸® #include "IDB0060MF.h" // ¼ÒÅëµî±Þ°ü¸® #include "IDB0070MF.h" // ÈÞÀϰü¸® #include "IDB0080MF.h" // ¿î¿µÄÚµå °ü¸® #include "IDB0090MF.h" // ¿î¿µÀÚ°ü¸® #include "IDB0100MF.h" // ¼­¹ö/ÇÁ·Î¼¼½º°ü¸® #include "IDB0110MF.h" // ±â°ü°ü¸® #include "IDB0120MF.h" // °£¼±µµ·Î°ü¸® #include "IDB0130MF.h" // ¿î¿µÀÚ±×·ì ¸Þ´º°ü¸® #ifdef D_IDB0140M #include "IDB0140MF.h" // ȨÆäÀÌÁö °ü¸®ÀÚ #endif //--------------------------------------------------------------------------- #include "IHS0010MF.h" // ¿î¿µÀÚ Á¢¼ÓÀÌ·Â #include "IHS0020MF.h" // ÇÁ·Î¼¼½º»óÅÂÀÌ·Â #include "IHS0030MF.h" // ¼öÁýµ¥ÀÌÅÍ ÀÌ·ÂÁ¶È¸ #include "IHS0040MF.h" // °¡°øµ¥ÀÌÅÍ ÀÌ·ÂÁ¶È¸ #include "IHS0060MF.h" // ¼öÁýµ¥ÀÌÅÍ À̷ºм® //--------------------------------------------------------------------------- #include "IST0010MF.h" // ÀÎÅÍ³Ý Á¢¼ÓÅë°è #include "IST0020MF.h" // CCTV Á¢¼ÓÅë°è #include "IST0030MF.h" // ¼ÒÅëÁ¤º¸ Åë°è #include "IST0040MF.h" // µ¹¹ß»óȲ Åë°è #include "IST0050MF.h" // ½Ã¼³¹° Åë½Å´ÜÀýÅë°è #include "IST0060MF.h" // ÇÁ·Î¼¼½º »óÅÂÅë°è #include "IST0070MF.h" // µµ·Î¼ÒÅëÁ¤º¸ Åë°è #include "IST0080MF.h" // µµ·Î¼ÒÅëÁ¤º¸ Åë°è #include "IRP0010MF.h" // º¸°í¼­ //--------------------------------------------------------------------------- #include "IAN0010MF.h" // ±³ÅëÁ¤º¸ ¼öÁý°á°ú ºÐ¼® #include "IAN0020MF.h" // ±³ÅëÁ¤º¸ °¡°ø°á°ú ºÐ¼® #include "IAN0030MF.h" // ±³ÅëÁ¤º¸ Á¦°ø°á°ú ºÐ¼® #include "IAN0040MF.h" // ¼ÒÅëÁ¤º¸ À̷ºм® #include "IAN0050MF.h" // ÆÐÅϵ¥ÀÌÅÍ ºÐ¼® #include "IAN0060MF.h" // ¹Ýº¹Á¤Ã¼±¸°£ ºÐ¼® //#include "IAN0070MF.h" // ¹Ýº¹Á¤Ã¼±¸°£ ºÐ¼®(±â»ó) //--------------------------------------------------------------------------- #include "CFG0000MF.h" // ½Ã½ºÅÛ È¯°æ¼³Á¤ //--------------------------------------------------------------------------- #ifdef USE_DSRC #include "DSRH010MF.h" //DSRC-RSE »óÅÂÀÌ·Â #include "DSRH020MF.h" //DSRC-RSE ·Î±×ÀÌ·Â #include "DSRH030MF.h" //DSRC-RSE Á¦¾îÀÌ·Â #include "DSRH040MF.h" //DSRC-RSE °¡°øÁ¤º¸ ÀÌ·ÂÁ¶È¸ #include "DSRH050MF.h" //DSRC-RSE Á¦°øÁ¤º¸ ÀÌ·ÂÁ¶È¸ #include "DSRM010MF.h" //DSRC-RSE °ü¸® #include "DSRM020MF.h" //DSRC-RSE Á¦¾î #include "DSRM030MF.h" //DSRC-RSE ¼öÁý±¸°£ ¼³Á¤ #include "DSRM040MF.h" //DSRC-RSE Á¦°ø±¸°£ °ü¸® #include "DSRH060MF.h" //DSRC-RSE OBU ¼öÁý ÀÌ·ÂÁ¶È¸ #include "DSRH070MF.h" //DSRC-RSE OBU ¼öÁý Åë°èÁ¶È¸ #endif //--------------------------------------------------------------------------- #ifdef USE_VDS #include "VDSM010MF.h" //VDS-Á¦¾î±â °ü¸® #include "VDSM020MF.h" //VDS-°ËÁö±â °ü¸® #include "VDSH010MF.h" //VDS-Á¦¾î±â »óÅÂÀÌ·Â #include "VDSH020MF.h" //VDS-Á¦¾î±â À̺¥Æ®ÀÌ·Â #include "VDSH030MF.h" //VDS-°ËÁö±â °ú°Å¼öÁýÀÌ·Â #include "VDSH040MF.h" //VDS-°ËÁö±â ¿ø½Ã¼öÁýÀÌ·Â #include "VDSH050MF.h" //VDS-°ËÁö±â ÆòȰȭÀÌ·Â #include "VDSH060MF.h" //VDS-°ËÁö±â º¸Á¤ÀÌ·Â #include "VDSS010MF.h" //VDS-°ËÁö±â Åë°èÁ¶È¸ #include "VDSS020MF.h" //VDS-°ËÁö±â Åë°èÁ¶È¸ #endif //--------------------------------------------------------------------------- #ifdef USE_AVI #include "AVIM010MF.h" //AVI-Á¦¾î±â °ü¸® #include "AVIM020MF.h" //AVI-±¸°£ °ü¸® #include "AVIH010MF.h" //AVI-Á¦¾î±â »óÅÂÀÌ·Â #include "AVIH020MF.h" //AVI-Á¦¾î±â Â÷·®ÀνÄÀÌ·Â #include "AVIH030MF.h" //AVI-Á¦¾î±â ±³ÅëÁ¤º¸ÀÌ·Â #include "AVIH040MF.h" //AVI-Á¦¾î±â Â÷·®Åë°úÀÌ·Â #include "AVIH050MF.h" //AVI-±¸°£ ¸ÅĪÀÌ·Â #include "AVIH060MF.h" //AVI-±¸°£ ¼öÁýÀÌ·Â #include "AVIH070MF.h" //AVI-±¸°£ ¼ÒÅë»óȲÀÌ·Â #include "AVIH080MF.h" //AVI ÁöÁ¡ ¿ø½Ã¼öÁý ÀÌ·Â #include "AVIS010MF.h" //AVI-±¸°£ ¼ÒÅë»óȲÅë°è #include "AVIS020MF.h" //AVI-°ËÁö±â ¼ÒÅë»óȲÅë°è #endif //--------------------------------------------------------------------------- #ifdef USE_PARK #include "PIS0010MF.h" //ÁÖÂ÷Àå°ü¸® #include "PIS0020MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ #include "PISH010MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ÀÌ·Â #include "PIS0030MF.h" //ÁÖÂ÷ÀåÁ¦¾î #endif //--------------------------------------------------------------------------- #ifdef D_BLACKBOX #include "BDS0010MF.h" #include "BDS0020MF.h" #include "BDSH010MF.h" #include "BDSH020MF.h" #endif //--------------------------------------------------------------------------- #include "TAS0010MF.h" #include "TAS0020MF.h" #include "TAS0030MF.h" #include "TAS0040MF.h" #include "TAS0050MF.h" //--------------------------------------------------------------------------- #ifdef D_WBH0010M #include "WBH0010MF.h" //ȨÆäÀÌÁö °ü¸®ÀÚ ÀÌ·ÂÁ¶È¸ #endif //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxHint" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "dxBar" #pragma link "dxCustomHint" #pragma link "dxRibbon" #pragma link "dxRibbonGallery" #pragma link "dxRibbonSkins" #pragma link "dxRibbonStatusBar" #pragma link "dxScreenTip" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinChooserGallery" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "dxSkinsdxBarPainter" #pragma link "dxSkinsdxRibbonPainter" #pragma link "dxSkinsForm" #pragma link "dxStatusBar" #pragma link "dxTabbedMDI" #pragma resource "*.dfm" TFrmMain *FrmMain = NULL; #define MAX_EXEPROGRAM 21 ST_RUNPROGRAM g_RunProgram[MAX_EXEPROGRAM] = { {"TfrmCctv", "CctvMgr.exe", "CCTV°ü¸®"}, //CCTV °ü¸® ÇÁ·Î±×·¥ È£Ãâ // 0 {"TfrmCptnMgr", "CctvOpt.exe", "CCTV¸ð´ÏÅ͸µ"}, //CCTV ¸ð´ÏÅ͸µ ÇÁ·Î±×·¥ È£Ãâ // 1 #if 1 {"TFrmVmsOprMain", "VmsOprMain.exe", "VMS ¿î¿µ°ü¸®"}, //VMS °ü¸® ÇÁ·Î±×·¥ È£Ãâ // 2 #else {"TfrmVmsMgr", "VmsOpt.exe", "VMS°ü¸®"}, //VMS °ü¸® ÇÁ·Î±×·¥ È£Ãâ // 2 #endif {"TfrmCctvLog", "CctvLog.exe", "CCTV»óÅÂÀÌ·Â"}, //CCTV »óÅÂÀÌ·Â ÇÁ·Î±×·¥ È£Ãâ // 3 #if 1 {"TFrmVmsLogStts", "VmsLogStts.exe", "VMS»óÅÂÀÌ·ÂÁ¶È¸"}, //VMS »óÅÂÀÌ·Â ÇÁ·Î±×·¥ È£Ãâ // 4 {"TFrmVmsLogMsg", "VmsLogMsg.exe", "VMSÁ¦°øÀÌ·ÂÁ¶È¸"}, //VMS Ç¥ÃâÀÌ·Â ÇÁ·Î±×·¥ È£Ãâ // 5 #else {"TfrmVmsLog", "VmsSttsLog.exe", "VMS»óÅÂÀÌ·Â"}, //VMS »óÅÂÀÌ·Â ÇÁ·Î±×·¥ È£Ãâ // 4 {"TfrmVmsMsgLog", "VmsMsgLog.exe", "VMSÇ¥ÃâÀÌ·Â"}, //VMS Ç¥ÃâÀÌ·Â ÇÁ·Î±×·¥ È£Ãâ // 5 #endif {"TfrmVdsStatistics", "VmsMsgLog.exe", "VDSÅë°è"}, //VDS Åë°èÁ¤º¸ Á¶È¸ ÇÁ·Î±×·¥ È£Ãâ // 6 {"TfrmLinkDSRC", "DsrcSect.exe", "DSRC±¸°£¼³Á¤"}, //DSRC-RSE ¼öÁý±¸°£ ¼³Á¤ // 7 {"TfrmWebCamMgr", "WebCamMgr.exe", "WEBCAM°ü¸®"}, //À¥Ä«¸Þ¶ó°ü¸® // 8 {"TfrmWebCamOpt", "WebCamOpt.exe", "WEBCAM¸ð´ÏÅ͸µ"}, //À¥Ä«¸Þ¶ó ¸ð´ÏÅ͸µ // 9 //VDS {"TfrmVdsMaster", "VdsMgr.exe", "VDS Á¦¾î±â °ü¸®"}, //VDS Á¦¾î±â °ü¸® È£Ãâ //10 {"TfrmVdsDetector", "VdsDetector.exe", "VDS °ËÁö±â °ü¸®"}, //VDS °ËÁö±â °ü¸® È£Ãâ //11 {"TfrmVdsCtrl", "VdsCtrl.exe", "VDS Á¦¾î"}, //VDS Á¦¾î È£Ãâ //12 //AVI {"TfrmAviMaster", "AviMgr.exe", "AVI Á¦¾î±â °ü¸®"}, //AVI Á¦¾î±â °ü¸® È£Ãâ //13 {"TfrmAviDetector", "AviDetector.exe", "AVI °ËÁö±â °ü¸®"}, //AVI °ËÁö±â °ü¸® È£Ãâ //14 {"TfrmAviLink", "AviLink.exe", "AVI ±¸°£ °ü¸®"}, //AVI ±¸°£ °ü¸® È£Ãâ //15 {"TfrmAviControl", "AviCtrl.exe", "AVI Á¦¾î"}, //AVI Á¦¾î È£Ãâ //16 //VMS ADD Form {"TFrmVmsLogCtl", "VmsLogCtl.exe", "VMSÁ¦¾îÀÌ·ÂÁ¶È¸"}, //VMSÁ¦¾îÀÌ·ÂÁ¶È¸ È£Ãâ //17 {"TFrmVmsLogDnld", "VmsLogDnld.exe", "VMS´Ù¿î·ÎµåÀÌ·ÂÁ¶È¸"}, //VMS´Ù¿î·ÎµåÀÌ·ÂÁ¶È¸ È£Ãâ //18 //ETC {"", "", ""}, {"", "", ""}, }; #define FORMSHOW(x) if (x) \ { \ try { \ ShowWindow(x->Handle, SW_RESTORE); \ x->BringToFront(); \ } catch(...) {} \ } \ else \ { \ Application->CreateForm(__classid(T##x), &x); \ if (x) x->Show(); \ } //--------------------------------------------------------------------------- class TdxMyBarControl : public TdxBarControl { __published: __property OnMouseMove; __property OnMouseEnter; __property OnMouseLeave; public: __fastcall virtual TdxMyBarControl(Classes::TComponent* AOwner) : TdxBarControl(AOwner){}; }; //--------------------------------------------------------------------------- LONG __stdcall HelperExceptionFilter(struct _EXCEPTION_POINTERS * pContext) { LONG lRet = EXCEPTION_EXECUTE_HANDLER; DWORD dwRet = ERROR_SUCCESS; __try { Application->NormalizeTopMosts(); if (g_AppCfg.sLang == "kr") { Application->MessageBox(L"½Ã½ºÅÛ¿¡¼­ ¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.\r\nÇÁ·Î±×·¥À» ´Ù½Ã ±âµ¿ÇØ ÁÖ¼¼¿ä.", L"½Ã½ºÅÛ ¿À·ù", MB_OK|MB_ICONERROR|MB_APPLMODAL); } else { Application->MessageBox(L"The system encountered an unknown error.\r\nPlease re-start the program.", L"System error", MB_OK|MB_ICONERROR|MB_APPLMODAL); } Application->RestoreTopMosts(); //TerminateProcess(GetCurrentProcess(), 0); } __finally { if(ERROR_SUCCESS != dwRet) { lRet = EXCEPTION_CONTINUE_SEARCH; } exit(0); } return lRet; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnMenuMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { ::SetCursor(Screen->Cursors[crHandPoint]); } //--------------------------------------------------------------------------- __fastcall TFrmMain::TFrmMain(TComponent* Owner) : TdxCustomRibbonForm(Owner)//TdxCustomRibbonForm(Owner)//TForm(Owner) { //::CoInitialize(NULL); Caption = g_AppCfg.sTitle; Application->OnException = OnAppException; LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Initialize(Application, g_AppCfg.sLang, false, false); TmrOnShow->Enabled = false; TmrAppState->Enabled = false; FLogoutTick = 0; g_AppCfg.lMainWinHandle = (long)Handle; StartJobThread(); while(!PostJobMessage(WM_THREAD, WP_PING)) ; String sCaption = ""; ReadConfigInfo(g_AppCfg.sConfigFile, "APPLICATION", "CAPTION", sCaption); ITSSkin_Caption(sCaption == "1" ? true : false); //ÅǸ޴ººñȰ¼º TabBlackBox->Visible = false; //BlackBox TabCctv->Visible = false; TabAvi->Visible = false; TabDsrc->Visible = false; TabSms->Visible = false; //SMD TabParking->Visible = false; //¸Þ´ºÀüü ºñȰ¼º BarWebCam->Visible = false; //À¥Ä«¸Þ¶ó(¼­ºê¸Þ´º) BarConfig4->Visible = false; //½ºÅ² // ¸Þ´ººñȰ¼º #ifndef D_IDB0140M NIDB0140M->Visible = ivNever; #endif #ifndef D_WBH0010M NWBH0010M->Visible = ivNever; #endif //ȯ°æ¼³Á¤ NCFG0001M->Visible = ivNever; //Áöµµ ·¹À̾Á¤ //Åë°è-ºÐ¼® NIST0010M->Visible = ivNever; //ÀÎÅͳÝÁ¢¼Ó Åë°è NIST0020M->Visible = ivNever; //CCTVÁ¢¼Ó Åë°è //NIAN0040M->Visible = ivNever; //¼ÒÅëÁ¤º¸ÀÌ·Â ºÐ¼® - ³²¾çÁÖ(±³ÅëÁ¤º¸ºÐ¼®Áö¿ø ¸Þ´º¿¡¼­ ´ëü) //½Ã¼³¹°°ü¸® NIFM0040M->Visible = ivNever; //½Ã¼³¹°Àå¾Ö ÀÌ·Â NIFM0050M->Visible = ivNever; //½Ã¼³¹° Àå¾ÖÄÚµå °ü¸® //AVI RAVIC010M->Visible = ivNever; //AVI Á¦¾î[R] //VMS RVMSH300M->Visible = ivNever; //VMS Á¦¾îÀÌ·Â(R) RVMSH400M->Visible = ivNever; //VMS ´Ù¿î·ÎµåÀÌ·Â(R) //ÁÖÂ÷Àå NPIS0030M->Visible = ivNever; //ÁÖÂ÷Àå Á¦¾î NITS0050M->Visible = ivNever; //¹Ýº¹Á¤Ã¼°ü¸®(±â»ó) //Ribon config Ribbon->ShowTabGroups = true; // ¸Þ´ºÅÇ show/hide Ribbon->QuickAccessToolbar->Visible = false; //Ribbon->ApplicationButton->Visible = false; Ribbon->SupportNonClientDrawing = true; Ribbon->EnableTabAero = true; //Active Tab set TabTraffic->Active = true; SetColorScheme(g_AppCfg.sSkinName); CMM_SetFormPosition(g_AppCfg.bSaveForm); CMM_LoadForm(g_sFormsDir, this); #if 1 int nCompnentCnt = this->ComponentCount; for (int ii = 0; ii < nCompnentCnt; ii++) { String sClassName = this->Components[ii]->ClassName(); if(sClassName == "TdxBar") { TdxBar *pMenuGrp = (TdxBar *)this->Components[ii]; if (pMenuGrp->Visible == false) continue; static_cast(pMenuGrp->Control)->OnMouseMove = OnMenuMouseMove; } } #endif //ITSSkin_Menu(this); } //--------------------------------------------------------------------------- /* * FormÀÌ ¸Þ¸ð¸®¿¡¼­ »ý¼ºµÉ¶§ È£ÃâµÇ´Â »ý¼ºÀÚ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TFrmMain::FormCreate(TObject *Sender) { /* ·¹Áö½ºÅ͸® µî·Ï IE ÃֽŹöÀü */ String sExeName = ExtractFileName(Application->ExeName); UpdateExplorerEmulatorVersion(sExeName); //SetUnhandledExceptionFilter(HelperExceptionFilter); Application->ShowMainForm = false; try { Application->Icon->LoadFromResourceName(((unsigned int)HInstance), "MAINICON"); } catch(...) { ShowMessage("LoadFromResourceName failed"); } //DeleteLogFiles((PTCHAR)g_sLogDir.c_str(), 30, (PTCHAR)"*.*"); WindowState = wsMaximized; // Á¾·áÁ¶°ÇÀÌ Àִ°æ¿ì.. //Application->Terminate(); //return; Application->ShowMainForm = true; Application->OnHint = OnAppHint; ImgAlarm->Visible = false; ImgAlarmNormal->Visible = true; } //--------------------------------------------------------------------------- bool __fastcall TFrmMain::UpdateExplorerEmulatorVersion(String AAppName) { TRegistry *reg = new TRegistry(KEY_READ|KEY_WRITE|KEY_WOW64_64KEY); if (reg == NULL) return false; String sKey = "SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION"; reg->RootKey = HKEY_LOCAL_MACHINE; if (!reg->KeyExists(sKey)) { //MessageDlg("Key not found! Created now.", mtInformation, TMsgDlgButtons() << mbOK, 0); bool bOpenKey = reg->CreateKey(sKey); //return false; } reg->Access = KEY_WRITE; bool openResult = reg->OpenKey(sKey, true); if(!openResult) { //MessageDlg("Unable to create key! Exiting.", mtError, TMsgDlgButtons() << mbOK, 0); return false; } if (!reg->KeyExists(AAppName)) { reg->WriteInteger(AAppName, 10000); //reg->WriteInteger(AAppName, 10001); //reg->WriteInteger(AAppName, 11000); #if 0 11001 Internet Explorer 11. Webpages are displayed in IE11 edge mode, regardless of the !DOCTYPE directive. 11000 IE11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 edge mode. Default value for IE11. 10001 Internet Explorer 10. Webpages are displayed in IE10 Standards mode, regardless of the !DOCTYPE directive. 10000 Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives are displayed in IE10 Standards mode. Default value for Internet Explorer 10. 9999 Windows Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive. 9000 Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. Default value for Internet Explorer 9. 8888 Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive. 8000 Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode. Default value for Internet Explorer 8 7000 Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode. Default value for applications hosting the WebBrowser Control. #endif } reg->CloseKey(); reg->Free(); return true; } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TFrmMain::FormShow(TObject *Sender) { Application->ProcessMessages(); g_AppCfg.lMainWinHandle = (long)Handle; /* * ÇÁ·Î±×·¥ ÃʱâÈ­ ÀÛ¾÷ */ InitStatusBar(); if (g_pLOGIN) { GetUserMenuRight(g_pLOGIN->sUserId, g_pLOGIN->sUserRightId); } TmrOnShow->Enabled = true; } //--------------------------------------------------------------------------- /* * ÇÁ·Î±×·¥ ±âµ¿ÈÄ ÃÖÃÊ¿¡ ¼öÇàµÈ´Ù. * arguments * * return * void */ void __fastcall TFrmMain::TmrOnShowTimer(TObject *Sender) { TmrOnShow->Enabled = false; Application->ProcessMessages(); TFrmInitialize *FrmInitialize = new TFrmInitialize(this); FrmInitialize->FThreadId = g_AppCfg.thr.dwThreadId; FrmInitialize->ShowModal(); //Æú¸µÀÛ¾÷ °´Ã¼ ÃʱâÈ­ FPollTraffic00.Cycle = (60*1000*2)+ 5; // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) FPollTraffic01.Cycle = (60*1000*2)+10; // ¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic02.Cycle = (60*1000*2)+11; // ¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic03.Cycle = (60*1000*2)+12; // µµ·Î¼ÒÅëÁ¤º¸ FPollTraffic04.Cycle = (60*1000*2)+13; // ¹Ýº¹Á¤Ã¼±¸°£ FPollTraffic05.Cycle = (60*1000*5)+ 0; // UTIS¿î¿µÁ¤º¸ FPollStatus01.Cycle = (60*1000*1)+ 1; // ½Ã¼³¹°»óÅÂÁ¤º¸ FPollStatus02.Cycle = (60*1000*5)+ 3; // ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ FPollStatus03.Cycle = (60*1000*1)+ 5; // µ¹¹ßÁ¤º¸ FPollEvent01.Cycle = (60*1000*1)+ 1; // ºí·¢¹Ú½ºÀ̺¥Æ® FPollVilgFrcs.Cycle = (60*1000*10)+1; // ±â»óÁ¤º¸ FPollTraffic00.IsPolling = true; // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) FPollTraffic01.IsPolling = false; // ¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic02.IsPolling = false; // ¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic03.IsPolling = false; // µµ·Î¼ÒÅëÁ¤º¸ FPollTraffic04.IsPolling = true; // ¹Ýº¹Á¤Ã¼±¸°£ #ifdef USE_UTIS FPollTraffic05.IsPolling = true; // UTIS¿î¿µÁ¤º¸ #else FPollTraffic05.IsPolling = true;//false; // UTIS¿î¿µÁ¤º¸ #endif FPollStatus01.IsPolling = true; // ½Ã¼³¹°»óÅÂÁ¤º¸ FPollStatus02.IsPolling = true; // ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ FPollStatus03.IsPolling = true; // µ¹¹ßÁ¤º¸ FPollEvent01.IsPolling = true; // ºí·¢¹Ú½ºÀ̺¥Æ® FPollVilgFrcs.IsPolling = true; // ±â»óÁ¤º¸ //³»ºÎÅë½Å ÃʱâÈ­ ½ÃÀÛ... TItsProcess *pPrcs = ItsProcessManager->FLists.Find(g_AppCfg.sProcessId); if (!pPrcs) { if (g_AppCfg.sLang == "kr") { Application->MessageBox(L"Åë½ÅÇÁ·Î¼¼½º¸¦ ÃʱâÈ­ ÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nȯ°æ¼³Á¤¿¡¼­ ½Ã½ºÅÛID¸¦ È®ÀÎÇϼ¼¿ä.\r\nÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.", L"ÇÁ·Î±×·¥ Åë½Å¿À·ù_1", MB_OK|MB_ICONERROR|MB_APPLMODAL); } else { Application->MessageBox(L"Failed to initialize communication process.\r\nPlease check your system ID in preferences.\r\nExit the program.", L"Program communication error_1", MB_OK|MB_ICONERROR|MB_APPLMODAL); } g_AppCfg.bAppClose = true; Close(); return; } int nPort = pPrcs->PRGM_PORT.ToIntDef(4602); int nResult = VComm_Initialize((long)Handle, g_AppCfg.sProcessId, "UOT", nPort, g_AppCfg.sLogDay); if (VERR_NONE != nResult) { if (g_AppCfg.sLang == "kr") { Application->MessageBox(L"Åë½ÅÇÁ·Î¼¼½º¸¦ ÃʱâÈ­ ÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nȯ°æ¼³Á¤¿¡¼­ ½Ã½ºÅÛID¸¦ È®ÀÎÇϼ¼¿ä.\r\nÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.", L"ÇÁ·Î±×·¥ Åë½Å¿À·ù_2", MB_OK|MB_ICONERROR|MB_APPLMODAL); } else { Application->MessageBox(L"Failed to initialize communication process.\r\nPlease check your system ID in preferences.\r\nExit the program.", L"Program communication error_2", MB_OK|MB_ICONERROR|MB_APPLMODAL); } g_AppCfg.bAppClose = true; Close(); return; } FOR_STL(TItsProcess*, pObj, ItsProcessManager->FLists) { if (pObj->DEL_YN == "Y") continue; AnsiString sProcessId = AnsiString(pObj->SYST_ID); AnsiString sSystemTp = AnsiString(pObj->SYST_TYPE); AnsiString sIpAddress = AnsiString(pObj->SYST_IP_1); AnsiString sUdpPort = AnsiString(pObj->PRGM_PORT); if (VComm_AddProcess(sProcessId, sSystemTp, sIpAddress, sUdpPort) >= 0) { #if 0 if ("UOT" == sSystemTp) { nPort = sUdpPort.ToIntDef(0); VComm_AddProcess(sProcessId, sSystemTp, sIpAddress, AnsiString(nPort+1)); } #endif } } if (VERR_NONE != VComm_Open()) { if (g_AppCfg.sLang == "kr") { Application->MessageBox(L"Åë½ÅÇÁ·Î¼¼½º¸¦ ÃʱâÈ­ ÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nȯ°æ¼³Á¤¿¡¼­ ½Ã½ºÅÛID¸¦ È®ÀÎÇϼ¼¿ä.\r\nÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.", L"ÇÁ·Î±×·¥ Åë½Å¿À·ù_3", MB_OK|MB_ICONERROR|MB_APPLMODAL); } else { Application->MessageBox(L"Failed to initialize communication process.\r\nPlease check your system ID in preferences.\r\nExit the program.", L"Program communication error_3", MB_OK|MB_ICONERROR|MB_APPLMODAL); } g_AppCfg.bAppClose = true; Close(); return; } //³»ºÎÅë½Å ÃʱâÈ­ ³¡... ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbComm]->PanelStyle)->ImageIndex = 8; Application->ProcessMessages(); ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex = ITSDb_IsOpen() ? 8 : 7; //TODO NITS0000MClick((TObject *)NITS0000M); //¸ÞÀÎÈ­¸éÀ» ÇÁ·Î±×·¥ ±âµ¿°ú µ¿½Ã¿¡ È£ÃâÇÏ´Â °æ¿ì #if 0 if (g_AppCfg.AutoLogout.LogoutExit) { Application->MessageBox(L"ÀÌÀü ÇÁ·Î±×·¥Àº ÀÚµ¿·Î±×¾Æ¿ôÀ¸·Î Á¾·áµÇ¾ú½À´Ï´Ù.\r\nÇÁ·Î±×·¥À» ½ÇÇàÇÕ´Ï´Ù.", L"ÇÁ·Î±×·¥ ½ÇÇàÁ¤º¸", MB_OK|MB_ICONQUESTION|MB_APPLMODAL); } #endif g_AppCfg.AutoLogout.LogoutExit = false; TmrAppState->Enabled = true; TmrPolling->Enabled = true; TmrDbCheck->Enabled = true; } //--------------------------------------------------------------------------- /* * ÀÛ¾÷½º·¹µå »ý¼º * arguments * * return * void */ bool __fastcall TFrmMain::StartJobThread() { TThreadPolling *pPollingThread = new TThreadPolling(false); if (pPollingThread) { pPollingThread->OnTerminate = OnPollingThreadDone; g_AppCfg.thr.pThread = (TThread *)pPollingThread; g_AppCfg.thr.dwThreadId = pPollingThread->ThreadID; g_AppCfg.thr.nHandle = pPollingThread->Handle; //pPollingThread->Resume(); return true; } return false; } //--------------------------------------------------------------------------- /* * ÀÛ¾÷½º·¹µå Á¾·á * arguments * * return * void */ void __fastcall TFrmMain::TerminateJobThread() { if (g_AppCfg.thr.bRunning) { PostJobMessage(WM_THREAD, WM_QUIT); } Sleep(500); try { if (g_AppCfg.thr.bRunning) { TThreadPolling *pThread = (TThreadPolling *)g_AppCfg.thr.pThread; pThread->Terminate(); //pThread->WaitFor(); } g_AppCfg.thr.pThread = NULL; g_AppCfg.thr.dwThreadId = 0; g_AppCfg.thr.nHandle = 0; g_AppCfg.thr.bRunning = false; } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀÌ ´ÝÈ÷±â Àü¿¡ ÇÁ·Î±×·¥ÀÇ Á¾·á¿©ºÎ¸¦ È®ÀÎÇÑ´Ù. * arguments * * return * void */ void __fastcall TFrmMain::FormCloseQuery(TObject *Sender, bool &CanClose) { // ÆûÀÌ ´ÝÈ÷±â Àü¿¡ ¼öÇàÇØ¾ß ÇÒ ¸ð¹Ä ±â¼ú // ÇÁ·Î±×·¥ Á¾·á¸¦ »ç¿ëÀÚ°¡ È®ÀÎÇÒ ¼ö ÀÖµµ·Ï... if (!g_AppCfg.bAppClose) { String strMsg; strMsg = ""; strMsg = "[ " + g_AppCfg.sTitle + " ]\r\n\n"; strMsg+= FrmLang->cxLabel1->Caption; if(Application->MessageBox(strMsg.c_str(), FrmLang->cxLabel2->Caption.c_str(), MB_YESNO|MB_ICONQUESTION) == IDYES) { /* * È­¸é°ü·Ã ÀÛ¾÷À» ¸øÇϵµ·Ï ¿©±â¿¡ Äڵ带 ÀûÀÚ... */ ITSDb_ApplicationTerm(); g_AppCfg.bAppClose = true; } CanClose = false; } } //--------------------------------------------------------------------------- /* * FormÀ» ´ÝÀ»¶§ È£ÃâµÇ´Â event ¸Þ¼­µå * arguments * Sender : event handler °´Ã¼ * Action : TCloseAction °´Ã¼ * return * void */ void __fastcall TFrmMain::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); Action = caFree; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TFrmMain::CommClose() { try { CloseAllWindow(); ITSSkin_Term(); CMM_SaveForm(g_sFormsDir, this); WriteConfigInfo(g_AppCfg.sConfigFile, "APPLICATION", "LOGDAY", Now().FormatString("dd")); ::CoUninitialize(); } catch(...) { } } //--------------------------------------------------------------------------- /* * ¿­·ÁÀÖ´Â ¸ðµç Form WindowµéÀ» ´Ý´Â´Ù. * parameter * Sender : Event¸¦ º¸³½ °´Ã¼ * return * None */ void __fastcall TFrmMain::CloseAllWindow() { int ii; // ½ÇÇà½ÃŲ ÇÁ·Î±×·¥À» Á¾·á½ÃŲ´Ù. for (ii = 0; ii < MAX_EXEPROGRAM; ii++) { if (g_RunProgram[ii].AClassName == "") continue; TermItsProgram(g_RunProgram[ii].AClassName, ""); } //½ÇÇàÁßÀÎ È­¸éÀ» Á¾·á ½ÃŲ´Ù. try { int nForms = Screen->FormCount; for (ii = nForms-1; ii >= 0; ii--) { if (Screen->Forms[ii] != this) { if (::IsWindow(Screen->Forms[ii]->Handle)) { String sFormName = Screen->Forms[ii]->Name; if (sFormName == "ITSSkin") continue; if (sFormName == "FrmSkin") continue; if (sFormName == "FrmLang") continue; if (sFormName.SubString(1, 11) == "PlugInChart") continue; if (Screen->Forms[ii]->Owner == this || Screen->Forms[ii]->Owner == Application) { Screen->Forms[ii]->Close(); Application->ProcessMessages(); try { WaitForSingleObject(Screen->Forms[ii]->Handle, 500); }catch(Exception &e) {} } } Application->ProcessMessages(); } } } catch(...) {} } //--------------------------------------------------------------------------- /* * ¸Å1ÃÊ ¸¶´Ù ÁÖ±âÀûÀ¸·Î ½ÇÇàµÇ´Â ŸÀÌ¸Ó * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TFrmMain::TmrAppStateTimer(TObject *Sender) { /* * ŸÀ̸Ӱ¡ 1Ãʰ£°ÝÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥ÀÇ »óŸ¦ üũÇϰí * ÀÀ¿ëÇÁ·Î±×·¥ÀÇ »óŸ¦ ÁÖ±âÀûÀ¸·Î üũÇÏ¿© ÇÊ¿äÇÑ Á¶Ä¡¸¦ ¼öÇàÇÑ´Ù. */ if (g_AppCfg.bAppClose) { TmrAppState->Enabled = false; TmrPolling->Enabled = false; TmrDbCheck->Enabled = false; UserLogout(); // ·Î±×¾Æ¿ô TerminateJobThread(); ITSDb_Close(); Close(); // ÀÀ¿ëÇÁ·Î±×·¥ Á¾·á } else { TmrAppState->Enabled = false; UpdateStatusBar(); //UpdateCommStatus(); if (g_AppCfg.AutoLogout.Enabled) { FLogoutTick++; if (FLogoutTick > (g_AppCfg.AutoLogout.IntervalMin*60)) { //ÀÚµ¿·Î±×¾Æ¿ôó¸® g_AppCfg.bAppClose = true; g_AppCfg.AutoLogout.LogoutExit = true; } } TmrAppState->Enabled = true; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::UpdateCommStatus() { static bool bStatus = false; #if 0 if (CenterThreadMonitoring(true)) { ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbComm]->PanelStyle)->ImageIndex = 7; } else #endif { ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbComm]->PanelStyle)->ImageIndex = bStatus ? 8 : 7; bStatus = !bStatus; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::UpdateStatusBar() { try { dxStatusBar->Panels->Items[isbTime]->Text = Now().FormatString(STR_DATETIME); #if 0 if (ITSDb_IsOpen()) { if (((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex != 8) ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex = 8; } else { if (((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex != 7) ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex = 7; } #endif } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::DebugMsg(String AMsg) { dxStatusBar->Panels->Items[isbMsg]->Text = " " + AMsg; dxStatusBar->Panels->Items[isbMsg]->StatusBarControl->Refresh(); TmrDebugHide->Enabled = false; TmrDebugHide->Enabled = true; if (g_AppCfg.bDebug) ITSUtil_Trace(AnsiString("ITS_OP: " + AMsg).c_str()); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::TmrDebugHideTimer(TObject *Sender) { dxStatusBar->Panels->Items[isbMsg]->Text = ""; dxStatusBar->Panels->Items[isbMsg]->StatusBarControl->Refresh(); TmrDebugHide->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::InitStatusBar() { try { dxStatusBar->Panels->Items[isbGisPos]->Text = ""; dxStatusBar->Panels->Items[isbTime]->Text = Now().FormatString(STR_DATETIME); if (g_pLOGIN) { String sUserName = g_pLOGIN->sUserName.Trim(); if (sUserName == "") sUserName = g_pLOGIN->sUserId; dxStatusBar->Panels->Items[isbUser]->Text = sUserName; ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbUser]->PanelStyle)->ImageIndex = 9; } else { //dxStatusBar->Panels->Items[isbUser]->Text = g_pLOGIN->sUserName;// = "·Î±×ÀÎ X"; ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbUser]->PanelStyle)->ImageIndex = 9; } //dxStatusBar->Panels->Items[isbScale]->Visible = false; //dxStatusBar->Panels->Items[isbPos]->Visible = false; dxStatusBar->Panels->Items[isbHint]->Text = ""; dxStatusBar->Panels->Items[isbMsg]->Text = ""; //dxStatusBar->Panels->Items[isbDb]->Text = "DB"; //dxStatusBar->Panels->Items[isbComm]->Text = "Åë½Å"; UpdateStatusBar(); } catch(...) { } } //--------------------------------------------------------------------------- bool __fastcall TFrmMain::GetUserMenuRight(String AUserId, String AUserRight) { String sQry; TADOQuery *pADO = NULL; try { sQry = "SELECT OPERSYST_MENU_ID \r\n" " FROM TB_GROP_MENU_ATHR \r\n" " WHERE ATHR_YN = 'N' \r\n" " AND GROP_ID = (SELECT GROP_ID \r\n" " FROM TB_USER_INFR \r\n" " WHERE USER_ID = :p01) \r\n"; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AUserId); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { String sMenuId = pADO->FieldByName("OPERSYST_MENU_ID")->AsString; try { int nCompnentCnt = this->ComponentCount; for (int ii = 0; ii < nCompnentCnt; ii++) { String sClassName = this->Components[ii]->ClassName(); if(sClassName == "TdxBarLargeButton") { TdxBarLargeButton *pMenu = (TdxBarLargeButton *)this->Components[ii]; if (pMenu->Name == sMenuId) { pMenu->Enabled = false; break; } } } } catch(...) { } } } catch (Exception &exception) { throw Exception(String(exception.ClassName()) + exception.Message); } catch (...) { //throw Exception(FrmLang->lblDbErr->Caption);//"¿î¿µÀÚ±ÇÇÑÁ¤º¸ Á¶È¸ Áß¿¡ ¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- HWND __fastcall TFrmMain::FindChildWindow(String sFormName) { int nFormCnt = Screen->FormCount; for (int ii = 0; ii < nFormCnt; ii++) { TForm *pForm = Screen->Forms[ii]; String sTmpFormName = pForm->Name.SubString(1, sFormName.Length()); if (sTmpFormName == sFormName) { return pForm->Handle; } } return NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnSkinClick(TObject *Sender) { TdxBarButton *pMenu = (TdxBarButton*)Sender; try { dxSkinController1->SkinName = pMenu->Caption; dxSkinController1->Refresh(); //ITSSkin_SetName(dxSkinController1->SkinName); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmMain::TmrPollingTimer(TObject *Sender) { TmrPolling->Enabled = false; DWORD dwTick = GetTickCount(); UpdateThreadStatus(true); //ÀÛ¾÷½º·¹µå ½ÇÇà È®ÀÎ // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) if (FPollTraffic00.IsPolling && FPollTraffic00.IsPollingTime(dwTick)) { SetProcessWorkingSetSize(GetCurrentProcess(), -1, -1); FPollTraffic00.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_00); DebugMsg(FrmLang->cxLabel3->Caption + FrmLang->cxLabelReq->Caption); } // ¸µÅ©¼ÒÅëÁ¤º¸ if (FPollTraffic01.IsPolling && FPollTraffic01.IsPollingTime(dwTick)) { FPollTraffic01.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_01); DebugMsg(FrmLang->cxLabel4->Caption + FrmLang->cxLabelReq->Caption); } // ¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸ if (FPollTraffic02.IsPolling && FPollTraffic02.IsPollingTime(dwTick)) { FPollTraffic02.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_02); DebugMsg(FrmLang->cxLabel5->Caption + FrmLang->cxLabelReq->Caption); } // µµ·Î¼ÒÅëÁ¤º¸ if (FPollTraffic03.IsPolling && FPollTraffic03.IsPollingTime(dwTick)) { FPollTraffic03.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_03); DebugMsg(FrmLang->cxLabel6->Caption + FrmLang->cxLabelReq->Caption); } // ¹Ýº¹Á¤Ã¼±¸°£ if (FPollTraffic04.IsPolling && FPollTraffic04.IsPollingTime(dwTick)) { FPollTraffic04.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_04); DebugMsg(FrmLang->cxLabel7->Caption + FrmLang->cxLabelReq->Caption); } // UTIS¿î¿µÁ¤º¸ if (FPollTraffic05.IsPolling && FPollTraffic05.IsPollingTime(dwTick)) { FPollTraffic05.Polling = dwTick; DebugMsg(FrmLang->cxLabel18->Caption + FrmLang->cxLabelReq->Caption); //UTIS¿î¿µÁ¤º¸ Á¶È¸, Database ¿î¿µÁ¤º¸Á¶È¸ PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_05); } // ½Ã¼³¹°»óÅÂÁ¤º¸ if (FPollStatus01.IsPolling && FPollStatus01.IsPollingTime(dwTick)) { FPollStatus01.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_11); DebugMsg(FrmLang->cxLabel8->Caption + FrmLang->cxLabelReq->Caption); } // ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ if (FPollStatus02.IsPolling && FPollStatus02.IsPollingTime(dwTick)) { FPollStatus02.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_12); DebugMsg(FrmLang->cxLabel9->Caption + FrmLang->cxLabelReq->Caption); } // µ¹¹ßÁ¤º¸ if (FPollStatus03.IsPolling && FPollStatus03.IsPollingTime(dwTick)) { FPollStatus03.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_13); DebugMsg(FrmLang->cxLabel10->Caption + FrmLang->cxLabelReq->Caption); } // ºí·¢¹Ú½ºÀ̺¥Æ® if (FPollEvent01.IsPolling && FPollEvent01.IsPollingTime(dwTick)) { FPollEvent01.Polling = dwTick; //PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_16); DebugMsg(FrmLang->cxLabel11->Caption + FrmLang->cxLabelReq->Caption); } if (FPollVilgFrcs.IsPolling && FPollVilgFrcs.IsPollingTime(dwTick)) { FPollVilgFrcs.Polling = dwTick; //PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_17); DebugMsg(FrmLang->cxLabel12->Caption + FrmLang->cxLabelReq->Caption); } if (Now().FormatString("nn") == "13") { // ¸Å½Ã 10ºÐ¿¡ ±â»óÁ¤º¸¸¦ ÀúÀåÇϴϱî 13ºÐ¿¡ µðºñ¿¡¼­ ÀÐÀÚ String sCurrTm = Now().FormatString("hh"); } if (!g_AppCfg.bAppClose) TmrPolling->Enabled = true; } //--------------------------------------------------------------------------- /* * ÀÛ¾÷½º·¹µå·Î ÀÛ¾÷ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù. * arguments * * return * void */ bool __fastcall TFrmMain::PostJobMessage(UINT nMsg, int WParam/*=0*/, int LParam/*=0*/) { int nRes; if (g_AppCfg.bDebug) ITSUtil_Trace("PostJobMessage: Msg: %02X, WParam: %02X, LParam: %02X", nMsg, WParam, LParam); if (g_AppCfg.thr.dwThreadId) { for (int ii = 0; ii < 3; ii++) { if (PostThreadMessageW(g_AppCfg.thr.dwThreadId, nMsg, WParam, LParam)) { nRes = 0; return true; } else { nRes = GetLastError(); if (ERROR_INVALID_THREAD_ID == nRes) { Sleep(500); continue; } } } } return false; } //--------------------------------------------------------------------------- /* * ÅëÇÕ¸ð´ÏÅ͸µ È­¸é È£Ãâ */ void __fastcall TFrmMain::NITS0000MClick(TObject *Sender) { FORMSHOW(ITS0000M); } //--------------------------------------------------------------------------- /* * ÇöÀç¼ÒÅëÁ¤º¸ Á¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NITS0010MClick(TObject *Sender) { FORMSHOW(ITS0010M); } //--------------------------------------------------------------------------- /* * ¼ÒÅëÁ¤º¸Á¦º¸ °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NITS0020MClick(TObject *Sender) { FORMSHOW(ITS0020M); } //--------------------------------------------------------------------------- /* * µ¹¹ß»óȲÁ¤º¸ °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NITS0030MClick(TObject *Sender) { FORMSHOW(ITS0030M); } //--------------------------------------------------------------------------- /* * ¹Ýº¹Á¤Ã¼±¸°£°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NITS0040MClick(TObject *Sender) { FORMSHOW(ITS0040M); } //--------------------------------------------------------------------------- /* * ³ëµå°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0010MClick(TObject *Sender) { FORMSHOW(IDB0010M); } //--------------------------------------------------------------------------- /* * ¸µÅ©°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0020MClick(TObject *Sender) { FORMSHOW(IDB0020M); } //--------------------------------------------------------------------------- /* * µµ·Î°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0030MClick(TObject *Sender) { FORMSHOW(IDB0030M); } //--------------------------------------------------------------------------- /* * ȸÀüÁ¤º¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0040MClick(TObject *Sender) { FORMSHOW(IDB0040M); } //--------------------------------------------------------------------------- /* * °£¼±µµ·Î °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0120MClick(TObject *Sender) { FORMSHOW(IDB0120M); } //--------------------------------------------------------------------------- /* * ¿î¿µÀÚ±×·ì ¸Þ´º°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0130MClick(TObject *Sender) { FORMSHOW(IDB0130M); } //--------------------------------------------------------------------------- /* * ÆÄ¶ó¹ÌÅͰü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0050MClick(TObject *Sender) { FORMSHOW(IDB0050M); } //--------------------------------------------------------------------------- /* * ¼ÒÅëµî±Þ°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0060MClick(TObject *Sender) { FORMSHOW(IDB0060M); } //--------------------------------------------------------------------------- /* * ÈÞÀϰü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0070MClick(TObject *Sender) { FORMSHOW(IDB0070M); } //--------------------------------------------------------------------------- /* * ¿î¿µÄÚµå °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0080MClick(TObject *Sender) { FORMSHOW(IDB0080M); } //--------------------------------------------------------------------------- /* * ¿î¿µÀÚ°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0090MClick(TObject *Sender) { FORMSHOW(IDB0090M); } //--------------------------------------------------------------------------- /* * ±â°ü°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0110MClick(TObject *Sender) { FORMSHOW(IDB0110M); } //--------------------------------------------------------------------------- /* * ¼­¹ö/ÇÁ·Î¼¼½º°ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIDB0100MClick(TObject *Sender) { FORMSHOW(IDB0100M); } //--------------------------------------------------------------------------- /* * ½Ã½ºÅÛ È¯°æ¼³Á¤ È­¸é È£Ãâ */ void __fastcall TFrmMain::NCFG0000MClick(TObject *Sender) { String sIniFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".ini"); CFG0000M = new TCFG0000M(this); CFG0000M->IniFile = sIniFile; CFG0000M->ShowModal(); delete CFG0000M; CFG0000M = NULL; if (NITS0000M->Enabled) { HWND hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, WP_DB_SELECT_OK, LP_MSG_11); } ShowFacilityStatus(); } //--------------------------------------------------------------------------- /* * Áöµµ ·¹ÀÌ¾î ¼³Á¤ È­¸é È£Ãâ */ void __fastcall TFrmMain::NCFG0001MClick(TObject *Sender) { try { if (ITS00MAP) { ITS00MAP->ShowLayerEditForm(); } else { Application->MessageBox(L"Áöµµ·¹ÀÌ¾î ¼³Á¤Àº ¸ÞÀÎÈ­¸éÀÌ ½ÇÇàµÇ¾î ÀÖÀ»¶§ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.\r\n¸ÞÀÎÈ­¸éÀ» ¸ÕÀú ½ÇÇàÇϼ¼¿ä.", L"Áöµµ·¹ÀÌ¾î ¼³Á¤", MB_OK|MB_ICONWARNING|MB_APPLMODAL); } } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmMain::dxSkinChooserGalleryItem1SkinChanged(TObject *Sender, const UnicodeString ASkinName) { g_AppCfg.sSkinName = ASkinName; WriteConfigInfo(g_AppCfg.sConfigFile, "APPLICATION", "SKINNAME", g_AppCfg.sSkinName); SetColorScheme(ASkinName); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::SetColorScheme(String ASkinName) { Ribbon->ColorSchemeName = ASkinName; dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); dxTabbedMDIManager1->LookAndFeel->SkinName = ASkinName; dxStatusBar->Invalidate(); //Panel1->Color = Ribbon->ColorScheme->GetPartColor(rfspRibbonForm); //Ribbon.ColorSchemeName := AName; //SkinChooserSelectSkinName(AName); //Panel1.Color := Ribbon.ColorScheme.GetPartColor(rfspRibbonForm); //dxStatusBar.Invalidate; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::ExecuteItsProgram(String AClassName, String AExeName, String AOption) { HWND hExeForm = FindWindow(AClassName.c_str(), NULL); if (hExeForm) { SetWindowPos(hExeForm, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); } else { String sExeName = ""; String sExeParam= ""; //if (!ReadConfigInfo(g_AppCfg.sConfigFile, "PROGRAM", AOption, sExeName)) { if (g_AppCfg.sAppPath == "") { sExeName = AExeName; } else { sExeName = g_AppCfg.sAppPath + "\\" + AExeName; } sExeParam = g_pLOGIN->sUserId; } ShellExecute(Handle, NULL, sExeName.c_str(), sExeParam.c_str(), NULL, SW_SHOWNORMAL); } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::TermItsProgram(String AClassName, String AExeName) { HWND hExeForm = FindWindow(AClassName.c_str(), NULL); if (hExeForm) { POST_MSG(hExeForm, WM_CLOSE, 0, 0); } } //--------------------------------------------------------------------------- /* * ½Ã¼³¹° Á¤º¸ °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIFM0010MClick(TObject *Sender) { FORMSHOW(IFM0010M); } //--------------------------------------------------------------------------- /* * ½Ã¼³¹° ¾÷ü °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIFM0020MClick(TObject *Sender) { FORMSHOW(IFM0020M); } //--------------------------------------------------------------------------- /* * ½Ã¼³¹° Àå¾Ö °ü¸® È­¸é È£Ãâ */ void __fastcall TFrmMain::NIFM0030MClick(TObject *Sender) { FORMSHOW(IFM0030M); } //--------------------------------------------------------------------------- /* * EXE ÇÁ·Î±×·¥ ½ÇÇà½ÃÅ´ */ void __fastcall TFrmMain::OnRunProgramClick(TObject *Sender) { TdxBarLargeButton *pButton = (TdxBarLargeButton*)Sender; int nIdx = pButton->Tag; if (nIdx < 0 || nIdx >= MAX_EXEPROGRAM) return; if (g_RunProgram[nIdx].AClassName == "") return; ExecuteItsProgram(g_RunProgram[nIdx].AClassName, g_RunProgram[nIdx].AExeName, g_RunProgram[nIdx].AOption); } //--------------------------------------------------------------------------- /* * ¿î¿µÀÚ Á¢¼ÓÀÌ·Â È­¸é È£Ãâ */ void __fastcall TFrmMain::NIHS0010MClick(TObject *Sender) { FORMSHOW(IHS0010M); } //--------------------------------------------------------------------------- /* * ÇÁ·Î¼¼½º ÀÌ·ÂÁ¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIHS0020MClick(TObject *Sender) { FORMSHOW(IHS0020M); } //--------------------------------------------------------------------------- /* * ¼öÁýµ¥ÀÌÅÍ ÀÌ·ÂÁ¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIHS0030MClick(TObject *Sender) { FORMSHOW(IHS0030M); } //--------------------------------------------------------------------------- /* * °¡°øµ¥ÀÌÅÍ ÀÌ·ÂÁ¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIHS0040MClick(TObject *Sender) { FORMSHOW(IHS0040M); } //--------------------------------------------------------------------------- /* * ±³ÅëÁ¤º¸ ¼öÁý°á°ú ºÐ¼®Á¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0010MClick(TObject *Sender) { FORMSHOW(IAN0010M); } //--------------------------------------------------------------------------- /* * ±³ÅëÁ¤º¸ °¡°ø°á°ú ºÐ¼®Á¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0020MClick(TObject *Sender) { FORMSHOW(IAN0020M); } //--------------------------------------------------------------------------- /* * ±³ÅëÁ¤º¸ Á¦°ø°á°ú ºÐ¼®Á¶È¸ È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0030MClick(TObject *Sender) { FORMSHOW(IAN0030M); } //--------------------------------------------------------------------------- /* * ¼ÒÅëÁ¤º¸ À̷ºм®È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0040MClick(TObject *Sender) { FORMSHOW(IAN0040M); } //--------------------------------------------------------------------------- /* * ÆÐÅϵ¥ÀÌÅÍ ºÐ¼®È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0050MClick(TObject *Sender) { FORMSHOW(IAN0050M); } //--------------------------------------------------------------------------- /* * ¹Ýº¹Á¤Ã¼±¸°£ ºÐ¼®È­¸é È£Ãâ */ void __fastcall TFrmMain::NIAN0060MClick(TObject *Sender) { FORMSHOW(IAN0060M); } //--------------------------------------------------------------------------- /* * ÀÎÅÍ³Ý Á¢¼ÓÅë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0010MClick(TObject *Sender) { FORMSHOW(IST0010M); } //--------------------------------------------------------------------------- /* * CCTV Á¢¼ÓÅë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0020MClick(TObject *Sender) { FORMSHOW(IST0020M); } //--------------------------------------------------------------------------- /* * ¼ÒÅëÁ¤º¸ Åë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0030MClick(TObject *Sender) { FORMSHOW(IST0030M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIST0070MClick(TObject *Sender) { FORMSHOW(IST0070M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIST0080MClick(TObject *Sender) { FORMSHOW(IST0080M); } //--------------------------------------------------------------------------- /* * µ¹¹ß»óȲ Åë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0040MClick(TObject *Sender) { FORMSHOW(IST0040M); } //--------------------------------------------------------------------------- /* * ½Ã¼³¹° Åë½Å´ÜÀýÅë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0050MClick(TObject *Sender) { FORMSHOW(IST0050M); } //--------------------------------------------------------------------------- /* * ÇÁ·Î¼¼½º »óÅÂÅë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NIST0060MClick(TObject *Sender) { FORMSHOW(IST0060M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIRP0010MClick(TObject *Sender) { FORMSHOW(IRP0010M); } //--------------------------------------------------------------------------- /* * Application Hint Display Event Handler * arguments * * return * */ void __fastcall TFrmMain::OnAppHint(TObject *Sender) { dxStatusBar->Panels->Items[isbHint]->Text = " " + Application->Hint; dxStatusBar->Panels->Items[isbHint]->StatusBarControl->Refresh(); } //--------------------------------------------------------------------------- /* * Application Exception Event Handler * arguments * * return * */ void __fastcall TFrmMain::OnAppException(TObject *Sender, Exception *exception) { if (g_AppCfg.bAppClose) { ITSDb_Close(); Close(); // ÀÀ¿ëÇÁ·Î±×·¥ Á¾·á } String sClassName = (NULL != Sender) ? Sender->ClassName() : String("Unknown_Class"); String sErrMsg = (NULL != exception) ? exception->Message : String("Unknown_Error"); String sError = sClassName + " : " + sErrMsg; //Application->ShowException(&exception); if (sError.Pos("ORA") || sError.Pos("TBR")) { ITSDb_Close(); } else { Application->NormalizeTopMosts(); Application->MessageBox(sError.c_str(), L"System Error", MB_OK|MB_ICONERROR|MB_APPLMODAL); Application->RestoreTopMosts(); } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::UpdateThreadStatus(bool ARequest, bool APing/*=true*/) { return; try { if (APing) if (ARequest) PostJobMessage(WM_THREAD, WP_PING); ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbStatus]->PanelStyle)->ImageIndex = ARequest ? 7 : 8; dxStatusBar->Panels->Items[isbDb]->StatusBarControl->Refresh(); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::UpdateDbStatus(bool ASelect) { try { ((TdxStatusBarTextPanelStyle*)dxStatusBar->Panels->Items[isbDb]->PanelStyle)->ImageIndex = ASelect ? 7 : 8; dxStatusBar->Panels->Items[isbDb]->StatusBarControl->Refresh(); } catch(...) { } } //--------------------------------------------------------------------------- /* * Application Event Message Handler * arguments * * return * */ void __fastcall TFrmMain::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { switch(Msg.message) { case WM_THREAD: switch(Msg.wParam) { case WP_PING: UpdateThreadStatus(false); //½º·¹µå ÇÎ È®ÀÎ break; case WP_PARAM_TRAFFIC: break; case WP_DB_SELECT_START: UpdateDbStatus(true); break; case WP_DB_SELECT_OK: case WP_DB_SELECT_ERROR: case WP_DB_SELECT_CANCEL: UpdateDbStatus(false); if (Msg.wParam == WP_DB_SELECT_OK) { OnRefreshMessage(Msg.wParam, Msg.lParam); } else { DebugMsg(FrmLang->cxLabel13->Caption); } break; } break; #if 0 case WM_VCOMMDATA_RECV: OnUdpDataRecvMessage(Msg); break; #endif case WM_DATABASE_REFRESH: OnDatabaseMessage(Msg.wParam, Msg.lParam); break; case WM_PLUGINFORM: OnRefreshMessage(Msg.wParam, Msg.lParam); break; case WM_MOUSEMOVE: case WM_KEYDOWN: case WM_KEYUP: FLogoutTick = 0; break; case WM_USER+0xF4: if (Msg.wParam == 0xB2) { ITSDb_Close(); DebugMsg(FrmLang->cxLabel14->Caption); } break; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnRefreshMessage(WPARAM AWParam, LPARAM ALParam) { HWND hWnd; if (AWParam == WP_DB_SELECT_OK) { DWORD dwTick = GetTickCount(); switch(ALParam) { case LP_MSG_00: DebugMsg(FrmLang->cxLabel3->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic00.Polling = dwTick; break; case LP_MSG_01: DebugMsg(FrmLang->cxLabel4->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic01.Polling = dwTick; break; case LP_MSG_02: DebugMsg(FrmLang->cxLabel5->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic02.Polling = dwTick; break; case LP_MSG_03: DebugMsg(FrmLang->cxLabel6->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic03.Polling = dwTick; break; case LP_MSG_04: DebugMsg(FrmLang->cxLabel7->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic04.Polling = dwTick; break; case LP_MSG_11: DebugMsg(FrmLang->cxLabel8->Caption + FrmLang->cxLabelRes->Caption); FPollStatus01.Polling = dwTick; break; case LP_MSG_12: DebugMsg(FrmLang->cxLabel9->Caption + FrmLang->cxLabelRes->Caption); FPollStatus02.Polling = dwTick; break; case LP_MSG_13: DebugMsg(FrmLang->cxLabel10->Caption + FrmLang->cxLabelRes->Caption); FPollStatus03.Polling = dwTick; break; case LP_MSG_16: DebugMsg(FrmLang->cxLabel11->Caption + FrmLang->cxLabelRes->Caption); FPollEvent01.Polling = dwTick; break; case LP_MSG_17: DebugMsg(FrmLang->cxLabel12->Caption + FrmLang->cxLabelRes->Caption); FPollVilgFrcs.Polling = dwTick; break; case LP_MSG_05: DebugMsg(FrmLang->cxLabel18->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic05.Polling = dwTick; break; case LP_MSG_09: DebugMsg(FrmLang->cxLabel15->Caption + FrmLang->cxLabelRes->Caption); break; //ÇÁ·Î¼¼½ºÁ¤º¸ Àç·Îµù case LP_MSG_14: DebugMsg(FrmLang->cxLabel16->Caption + FrmLang->cxLabelRes->Caption); break; //½Ã¼³¹°Á¤º¸ Àç·Îµù } if (NITS0000M->Enabled) { hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); } if (ALParam == LP_MSG_11) { //½Ã¼³¹° »óÅÂÁ¤º¸ ¾÷µ¥ÀÌÆ® ShowFacilityStatus(); } else if (ALParam == LP_MSG_13) { //µ¹¹ß¹ß»ýÁ¤º¸ ShowAutoIncidentInfo(); } } else if (AWParam == WP_MSG_15) { if (LP_MSG_15 == ALParam) { if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_15-GisSelectLink"); if (NITS0000M->Enabled) { hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); } } } else { LOGERROR("DB Thread failed: %02X[%02X]", ALParam, AWParam); } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnDatabaseMessage(WPARAM AWParam, LPARAM ALParam) { HWND hWnd; switch(AWParam) { case WP_MSG_01: //¼ÒÅëµî±Þº¯°æ case WP_MSG_02: //µ¹¹ßÁ¤º¸º¯°æ(¿Àº¸/µî·Ï/ÇØÁ¦) if (NITS0000M->Enabled) { hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); } break; case WP_MSG_03: //½Ã¼³¹° Á¤º¸ º¯°æ DebugMsg(FrmLang->cxLabel16->Caption + FrmLang->cxLabelReq->Caption); PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_14); //hWnd = FindChildWindow("ITS0000M"); //if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); break; case WP_MSG_04: // IDB0070M-ÈÞÀÏÁ¤º¸ case WP_MSG_05: // FrmLinkGradeSet-±¸°£µî±Þº¯°æ case WP_MSG_06: // IDB0060M - ¼ÒÅëµî±Þ case WP_MSG_07: // IDB0050M -±³ÅëÆÄ¶ó¹ÌÅÍ //VComm_NodeLinkChangeReq(); break; case WP_MSG_09: // IDB0100M DebugMsg(FrmLang->cxLabel12->Caption + FrmLang->cxLabelReq->Caption); PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_09); //ÀÛ¾÷½º·¹µå¿¡¼­ Àоî ó¸®Çϵµ·Ï ÇÑ´Ù. break; case WP_MSG_14: // DSRM010M -DSRC-RSE °ü¸® PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_14); //ÀÛ¾÷½º·¹µå¿¡¼­ Àоî ó¸®Çϵµ·Ï ÇÑ´Ù. break; default: LOGERROR("Unknown Database Msg: %02X[%02X]", ALParam, AWParam); break; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnUdpDataRecvMessage(TMessage &Msg) { int nResult; IPCUDPMESSAGESTRUCT *RcvData = (IPCUDPMESSAGESTRUCT*)Msg.LParam; INT_SENDER *Sender = &RcvData->Sender; INT_PACKET *Pkt = &RcvData->Pkt; INT_HEAD *head = &Pkt->head; INT_DATA *data = &Pkt->data; char *pData = &data->Data[2]; BYTE OpCode = (BYTE)data->Data[0]; LOGINFO("*** OPR Client Req: %s.%d", VComm_ulong2ip(Sender->IP), Sender->Port); String sMsg = ""; String sVmsNmbr = ""; //UpdateVmsCommStatus(false); if (head->OPCode == INT_OP_COMM_COMMON) { switch(OpCode) { case INT_OP_PG_STATE_RES: { DebugMsg(FrmLang->cxLabel19->Caption); INT_PG_STATE_RES *ARes = (INT_PG_STATE_RES*)pData; for (int ii = 0; ii < ARes->Count && ii < INT_MAX_PG_STATE; ii++) { if (ARes->Unit[ii].Type == INT_ID_VMS_SERVER) { #if 0 FVmsServerState = ARes->Unit[ii].Action; UpdateVmsCommStatus(false); FPollPrcsState.Polling = GetTickCount(); //ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ Á¶È¸ ŸÀÌ¸Ó ¸®¼Â #endif break; } } } break; case INT_OP_VMS_STATE_RES: { char szVmsNmbr[INT_VMS_MAX_ID+1]; INT_VMS_STATE_RES *ARes = (INT_VMS_STATE_RES*)pData; sMsg = ""; //sMsg.printf(L"*** VMS Á¦¾î±â »óÅÂÁ¤º¸ ¼ö½Å: %d EA", ARes->Count); sMsg.printf(FrmLang->cxLabel19->Caption.c_str(), ARes->Count); DebugMsg(sMsg); #if 0 for (int ii = 0; ii < ARes->Count && ii < INT_MAX_VMS_STATE; ii++) { sMsg = ""; String sVmsNmbr; INT_VMS_STATE *pVms = &ARes->Unit[ii]; sprintf(szVmsNmbr, "%.*s", INT_VMS_MAX_ID, (char*)pVms->VmsId); sVmsNmbr = String(szVmsNmbr); TVmsCtlr *pObj = VmsManager->FLists.Find(sVmsNmbr); if (pObj) { VmsStatusCopy(&pObj->WSTATE, pVms); if (pObj->WSTATE.OprMode == 'A') pObj->OPER_MODE = "A"; else if (pObj->WSTATE.OprMode == 'B') pObj->OPER_MODE = "B"; else pObj->OPER_MODE = "F"; pObj->VMS_PHSE_CHNG_CYCL = pObj->WSTATE.ScheduledMessageOperatingTime; pObj->VMS_CMNC_ERR_BASS_VAL = pObj->WSTATE.ModuleOperatingTemperature; pObj->FAN_MTNS_TMPR = pObj->WSTATE.FanOperatingTemperature; pObj->HETR_MTNS_TMPR = pObj->WSTATE.HeaterOperatingTemperature; pObj->VMS_MODL_ERR_RATE = pObj->WSTATE.ModuleBasicFailureRate; pObj->CheckRunState(); } else { sMsg.printf(L"INT_OP_VMS_STATE_RES VMS not found: %s", sVmsNmbr.c_str()); DebugMsg(sMsg); } } RefreshVmsMessage(WM_VMS_STATE_REFRESH); FPollVmsState.Polling = GetTickCount(); #endif } break; case INT_OP_VMS_FORM_SAVE: { #if 0 FPollVmsMsg.Reset(); //VMS¸Þ½ÃÁö Á¶È¸ ŸÀÌ¸Ó ¸®¼Â char szDateTime[INT_VMS_MAX_DATETIME+1]; INT_VMS_FORM_SAVE_REQ *AReq = (INT_VMS_FORM_SAVE_REQ*)pData; sprintf(szDateTime, "%.*s", INT_VMS_MAX_DATETIME, (char*)AReq->Date); String sDateTime = String(szDateTime); sMsg = ""; sMsg.printf(L"*** VMS Æû»ý¼º ¿Ï·á ¸Þ½ÃÁö ¼ö½Å: %s", sDateTime.c_str()); DebugMsg(sMsg); #endif } break; case INT_OP_VMS_FORM_DOWNLOAD: { #if 0 char szDateTime[INT_VMS_MAX_DATETIME+1]; char szVmsNmbr[INT_VMS_MAX_ID+1]; INT_VMS_FORM_DOWNLOAD_REQ *AReq = (INT_VMS_FORM_DOWNLOAD_REQ*)pData; sMsg.printf(L"*** VMS Æû ´Ù¿î·Îµå ¸Þ½ÃÁö ¼ö½Å: %d EA", AReq->Count); DebugMsg(sMsg); for (int ii = 0; ii < AReq->Count && ii < INT_MAX_VMS_FORM_DOWNLOAD; ii++) { sMsg = ""; INT_VMS_FORM_DOWNLOAD *pVms = &AReq->Unit[ii]; sprintf(szVmsNmbr, "%.*s", INT_VMS_MAX_ID, (char*)pVms->VmsId); sprintf(szDateTime, "%.*s", INT_VMS_MAX_DATETIME, (char*)pVms->Date); sVmsNmbr = String(szVmsNmbr); String sDateTime = String(szDateTime); TVmsCtlr *pObj = VmsManager->FLists.Find(sVmsNmbr); if (pObj) { bool bDnLd = (pVms->Result == vms_download_succ) ? true : false; String sResult = bDnLd ? "Succ" : "Fail"; pObj->VmsMsg->OFFER_DT = sDateTime; pObj->VmsMsg->OFFER_YN = bDnLd; for (int kk = 0; kk < pObj->VmsMsg->Total && kk < INT_MAX_VMS_FORM; kk++) { pObj->VmsMsg->PHASE[kk].DNLD_YN = bDnLd ? "Y" : "N"; } //sMsg.printf(L"*** ===> VMS Msg download: %s, %s", pObj->VMS_CTLR_ID.c_str(), sResult.c_str()); //DebugMsg(sMsg); } else { sMsg.printf(L"*** INT_OP_VMS_FORM_DOWNLOAD VMS not found: %s", sVmsNmbr.c_str()); DebugMsg(sMsg); } } #endif } break; } } else { //Vitzro internal communication OpCode = (BYTE)head->OPCode; pData = data->Data; switch(OpCode) { case INT_OP_PROC_EVENT: /* 0x01, ±³ÅëÁ¤º¸°¡°ø¿Ï·á */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: ±³ÅëÁ¤º¸ °¡°ø¿Ï·á"); if (NITS0000M->Enabled) { HWND hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, WP_DB_SELECT_OK, LP_MSG_10); } FPollTraffic00.Reset(); // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) FPollTraffic01.Reset(); // ¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic02.Reset(); // ¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic03.Reset(); // µµ·Î¼ÒÅëÁ¤º¸ FPollTraffic04.Reset(); // ¹Ýº¹Á¤Ã¼±¸°£ } break; case INT_OP_NODELINK_CHANGE: /* 0x10, ³ëµå¸µÅ© ±â¹Ý Á¤º¸ º¯°æ */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: ³ëµå¸µÅ© ±â¹Ý Á¤º¸ º¯°æ"); //ÈÞÀÏÁ¤º¸ //±¸°£µî±Þº¯°æ //¼ÒÅëµî±Þ //±³ÅëÆÄ¶ó¹ÌÅÍ /* * ±âÁ¸¿¡´Â ó¸®Çϴ°ÍÀÌ ¾ø¾úÀ½. * ---> ½É½ÉÇÒ¶§ ó¸®ÇÏÀÚ */ } break; case INT_OP_FACILITY_CHANGE: /* 0x12, ½Ã¼³¹° ±â¹Ý Á¤º¸ º¯°æ */ { //CCTV, VMS°ü·Ã±âº»Á¤º¸ DebugMsg(FrmLang->cxLabel17->Caption); PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_14); } break; case INT_OP_RSE_CONTROL_REQ: /* 0xC0, RSE Á¦¾îÁ¤º¸ Àü¼Û */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: RSE Á¦¾îÁ¤º¸ Àü¼Û"); } break; case INT_OP_RSE_CONTROL_RES: /* 0xC1, RSE Á¦¾îÁ¤º¸ ÀÀ´ä */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: RSE Á¦¾îÁ¤º¸ ÀÀ´ä"); if (NDSRM020M->Enabled) { HWND hWnd = FindChildWindow("DSRM020M"); //if (hWnd) POST_MSG(hWnd, WM_MAINFORM, Msg.wParam, Msg.lParam); } } } } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnUdpDataRecvMessage(tagMSG &Msg) { IPCUDPMESSAGESTRUCT *RcvData = (IPCUDPMESSAGESTRUCT*)Msg.lParam; INT_SENDER *Sender = &RcvData->Sender; INT_PACKET *Pkt = &RcvData->Pkt; INT_HEAD *head = &Pkt->head; INT_DATA *data = &Pkt->data; char *pData = &data->Data[2]; BYTE OpCode = (BYTE)data->Data[0]; LOGINFO("*** OPR Client Req: %s.%d", VComm_ulong2ip(Sender->IP), Sender->Port); String sMsg = ""; String sVmsNmbr = ""; //UpdateVmsCommStatus(false); if (head->OPCode == INT_OP_COMM_COMMON) { switch(OpCode) { case INT_OP_PG_STATE_RES: { DebugMsg("*** VMS ÇÁ·Î¼¼½º »óÅÂÁ¤º¸ ¼ö½Å"); INT_PG_STATE_RES *ARes = (INT_PG_STATE_RES*)pData; for (int ii = 0; ii < ARes->Count && ii < INT_MAX_PG_STATE; ii++) { if (ARes->Unit[ii].Type == INT_ID_VMS_SERVER) { //FVmsServerState = ARes->Unit[ii].Action; //UpdateVmsCommStatus(false); //FPollStatus02.Reset(); //ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ Á¶È¸ ŸÀÌ¸Ó ¸®¼Â break; } } } break; case INT_OP_VMS_STATE_RES: { char szVmsNmbr[INT_VMS_MAX_ID+1]; INT_VMS_STATE_RES *ARes = (INT_VMS_STATE_RES*)pData; sMsg = ""; sMsg.printf(L"*** VMS Á¦¾î±â »óÅÂÁ¤º¸ ¼ö½Å: %d EA", ARes->Count); DebugMsg(sMsg); for (int ii = 0; ii < ARes->Count && ii < INT_MAX_VMS_STATE; ii++) { String sVmsNmbr; INT_VMS_STATE *pVms = &ARes->Unit[ii]; sprintf(szVmsNmbr, "%.*s", INT_VMS_MAX_ID, (char*)pVms->VmsId); sVmsNmbr = String(szVmsNmbr); #if 0 TVmsCtlr *pObj = VmsManager->FLists.Find(sVmsNmbr); if (pObj) { memcpy((char*)&pObj->STATE, (char*)pVms, sizeof(INT_VMS_STATE)); if (pObj->STATE.OprMode == 'A') pObj->OPER_MODE = "A"; else if (pObj->STATE.OprMode == 'B') pObj->OPER_MODE = "B"; else pObj->OPER_MODE = "F"; pObj->VMS_PHSE_CHNG_CYCL = pObj->STATE.ScheduledMessageOperatingTime; pObj->VMS_CMNC_ERR_BASS_VAL = pObj->STATE.ModuleOperatingTemperature; pObj->FAN_MTNS_TMPR = pObj->STATE.FanOperatingTemperature; pObj->HETR_MTNS_TMPR = pObj->STATE.HeaterOperatingTemperature; pObj->VMS_MODL_ERR_RATE = pObj->STATE.ModuleBasicFailureRate; } #endif } //RefreshVmsMessage(WM_VMS_STATE_REFRESH); } break; case INT_OP_VMS_FORM_SAVE: { //FPollVmsMsg.Reset(); //VMS¸Þ½ÃÁö Á¶È¸ ŸÀÌ¸Ó ¸®¼Â char szDateTime[INT_VMS_MAX_DATETIME+1]; INT_VMS_FORM_SAVE_REQ *AReq = (INT_VMS_FORM_SAVE_REQ*)pData; sprintf(szDateTime, "%.*s", INT_VMS_MAX_DATETIME, (char*)AReq->Date); String sDateTime = String(szDateTime); sMsg = ""; sMsg.printf(L"*** VMS Æû»ý¼º ¿Ï·á ¸Þ½ÃÁö ¼ö½Å: %s", sDateTime.c_str()); DebugMsg(sMsg); } break; case INT_OP_VMS_FORM_DOWNLOAD: { char szDateTime[INT_VMS_MAX_DATETIME+1]; char szVmsNmbr[INT_VMS_MAX_ID+1]; INT_VMS_FORM_DOWNLOAD_REQ *AReq = (INT_VMS_FORM_DOWNLOAD_REQ*)pData; sMsg.printf(L"*** VMS Æû ´Ù¿î·Îµå ¸Þ½ÃÁö ¼ö½Å: %d EA", AReq->Count); DebugMsg(sMsg); for (int ii = 0; ii < AReq->Count && ii < INT_MAX_VMS_FORM_DOWNLOAD; ii++) { sMsg = ""; INT_VMS_FORM_DOWNLOAD *pVms = &AReq->Unit[ii]; sprintf(szVmsNmbr, "%.*s", INT_VMS_MAX_ID, (char*)pVms->VmsId); sprintf(szDateTime, "%.*s", INT_VMS_MAX_DATETIME, (char*)pVms->Date); sVmsNmbr = String(szVmsNmbr); String sDateTime = String(szDateTime); #if 0 TVmsCtlr *pObj = VmsManager->FLists.Find(sVmsNmbr); if (pObj) { bool bDnLd = (pVms->Result == vms_download_succ) ? true : false; String sResult = bDnLd ? "Succ" : "Fail"; pObj->VmsMsg->OFFER_DT = sDateTime; pObj->VmsMsg->OFFER_YN = bDnLd; for (int kk = 0; kk < pObj->VmsMsg->Total && kk < INT_MAX_VMS_FORM; kk++) { pObj->VmsMsg->PHASE[kk].DNLD_YN = bDnLd ? "Y" : "N"; } sMsg.printf(L"*** VMS Msg download: %s, %s", pObj->VMS_CTLR_ID.c_str(), sResult.c_str()); } else { sMsg.printf(L"*** INT_OP_VMS_FORM_DOWNLOAD VMS not found: %s", sVmsNmbr.c_str()); } DebugMsg(sMsg); #endif } } break; } } else { //Vitzro internal communication OpCode = (BYTE)head->OPCode; pData = data->Data; switch(OpCode) { case INT_OP_PROC_EVENT: /* 0x01, ±³ÅëÁ¤º¸°¡°ø¿Ï·á */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: ±³ÅëÁ¤º¸ °¡°ø¿Ï·á"); if (NITS0000M->Enabled) { HWND hWnd = FindChildWindow("ITS0000M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, WP_DB_SELECT_OK, LP_MSG_10); } FPollTraffic00.Reset(); // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) FPollTraffic01.Reset(); // ¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic02.Reset(); // ¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸ FPollTraffic03.Reset(); // µµ·Î¼ÒÅëÁ¤º¸ FPollTraffic04.Reset(); // ¹Ýº¹Á¤Ã¼±¸°£ } break; case INT_OP_NODELINK_CHANGE: /* 0x10, ³ëµå¸µÅ© ±â¹Ý Á¤º¸ º¯°æ */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: ³ëµå¸µÅ© ±â¹Ý Á¤º¸ º¯°æ"); //ÈÞÀÏÁ¤º¸ //±¸°£µî±Þº¯°æ //¼ÒÅëµî±Þ //±³ÅëÆÄ¶ó¹ÌÅÍ /* * ±âÁ¸¿¡´Â ó¸®Çϴ°ÍÀÌ ¾ø¾úÀ½. * ---> ½É½ÉÇÒ¶§ ó¸®ÇÏÀÚ */ } break; case INT_OP_FACILITY_CHANGE: /* 0x12, ½Ã¼³¹° ±â¹Ý Á¤º¸ º¯°æ */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: ½Ã¼³¹° ±â¹Ý Á¤º¸ º¯°æ"); //CCTV, VMS°ü·Ã±âº»Á¤º¸ PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_14); } break; case INT_OP_RSE_CONTROL_REQ: /* 0xC0, RSE Á¦¾îÁ¤º¸ Àü¼Û */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: RSE Á¦¾îÁ¤º¸ Àü¼Û"); } break; case INT_OP_RSE_CONTROL_RES: /* 0xC1, RSE Á¦¾îÁ¤º¸ ÀÀ´ä */ { if (g_AppCfg.bDebug) ITSUtil_Trace("UDP: RSE Á¦¾îÁ¤º¸ ÀÀ´ä"); if (NDSRM020M->Enabled) { HWND hWnd = FindChildWindow("DSRM020M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, Msg.wParam, Msg.lParam); } } } } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnPollingThreadDone(TObject *Sender) { LOGINFO("Polling thead terminated"); g_AppCfg.thr.bRunning = false; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::ShowFacilityStatus() { // HWND hWnd = FindChildWindow("ITS0000M"); // if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); bool bShow = false; try { try { ItsFacilityManager->FLists.Lock(); FOR_STL(TItsFacility*, pFacility, ItsFacilityManager->FLists) { if (pFacility->DEL_YN == "Y") continue; #if 0 if (pFacility->FCLT_TYPE == "DSRC") { if (pFacility->FCollCntBase > pFacility->FCollCntCurr) { bShow = true; break; } } #endif if (pFacility->FComm != state_normal) { bShow = true; break; } else { #if 0 try { String sValue = pFacility->FCBoxTmpr; int nValue = 0; if (TryStrToInt(sValue, nValue)) { if (nValue > g_AppCfg.Temp.AlarmValue) { bShow = true; break; } } } catch(...) {} #endif } } } __finally { ItsFacilityManager->FLists.UnLock(); } } catch(...) { } if (!bShow) { LblAlarm->Style->Font->Color = clBlack; //LblAlarm->Caption = "¾Ë¶÷Á¤º¸"; LblAlarm->Caption = FrmLang->cxLabel21->Caption; ImgAlarm->Visible = false; ImgAlarmNormal->Visible = true; try { if (ImgAlarm->Picture->Graphic->ClassName() == "TGIFImage") ((TGIFImage *)ImgAlarm->Picture->Graphic)->Animate = false; } catch(...) {} return; } ImgAlarmNormal->Visible = false; ImgAlarm->Visible = true; try { if (ImgAlarm->Picture->Graphic->ClassName() == "TGIFImage") ((TGIFImage *)ImgAlarm->Picture->Graphic)->Animate = true; } catch(...) {} //LblAlarm->Caption = "¾Ë¶÷¹ß»ý"; LblAlarm->Caption = FrmLang->cxLabel22->Caption; LblAlarm->Style->Font->Color = clRed; if (!g_AppCfg.Alarm.Enabled) return; if (!g_AppCfg.Alarm.Window) return; try { if (FrmFacilityAlarm == NULL) { FrmFacilityAlarm = new TFrmFacilityAlarm(Application); } FrmFacilityAlarm->Show(); FrmFacilityAlarm->ShowFacilityAlarm(); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::ShowAutoIncidentInfo() { // HWND hWnd = FindChildWindow("ITS0000M"); // if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); if (!g_AppCfg.Incident.Enabled) return; bool bShow = false; try { try { ItsIncidentManager->FAutoLists.Lock(); if (ItsIncidentManager->FAutoLists.Size() > 0) { bShow = true; } } __finally { ItsIncidentManager->FAutoLists.UnLock(); } } catch(...) { } if (!bShow) return; try { if (FrmIncidentAlarm == NULL) { FrmIncidentAlarm = new TFrmIncidentAlarm(Application); } FrmIncidentAlarm->Show(); FrmIncidentAlarm->ShowIncidentAlarm(); } catch(...) { } } //--------------------------------------------------------------------------- /* ***************************************************************************** * DSRC-RSE Á¤º¸ ***************************************************************************** */ /* * DSRC-RSE »óÅÂÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRH010MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH010M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE ·Î±×ÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRH020MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH020M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE Á¦¾îÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRH030MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH030M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE °¡°øÁ¤º¸ ÀÌ·ÂÁ¶È¸È­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRH040MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH040M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE Á¦°øÁ¤º¸ ÀÌ·ÂÁ¶È¸È­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRH050MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH050M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRM010MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM010M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE Á¦¾îÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRM020MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM020M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE ¼öÁý±¸°£ ¼³Á¤È­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRM030MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM030M); #endif } //--------------------------------------------------------------------------- /* * DSRC-RSE Á¦°ø±¸°£ °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NDSRM040MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM040M); #endif } //--------------------------------------------------------------------------- /* * VDS-Á¦¾î±â °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSM010MClick(TObject *Sender) { FORMSHOW(VDSM010M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSM020MClick(TObject *Sender) { FORMSHOW(VDSM020M); } //--------------------------------------------------------------------------- /* * VDS-Á¦¾î±â »óÅÂÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH010MClick(TObject *Sender) { FORMSHOW(VDSH010M); } //--------------------------------------------------------------------------- /* * VDS-Á¦¾î±â À̺¥Æ®ÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH020MxClick(TObject *Sender) { FORMSHOW(VDSH020M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â °ú°Å¼öÁýÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH030MxClick(TObject *Sender) { FORMSHOW(VDSH030M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â ¿ø½Ã¼öÁýÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH040MClick(TObject *Sender) { FORMSHOW(VDSH040M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â ÆòȰȭÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH050MxClick(TObject *Sender) { FORMSHOW(VDSH050M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â º¸Á¤ÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH060MxClick(TObject *Sender) { FORMSHOW(VDSH060M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â Åë°èÁ¶È¸È­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSS010MClick(TObject *Sender) { FORMSHOW(VDSS010M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSS020MClick(TObject *Sender) { FORMSHOW(VDSS020M); } //--------------------------------------------------------------------------- /* * AVI-Á¦¾î±â °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIM010MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIM010M); #endif } //--------------------------------------------------------------------------- /* * AVI-±¸°£ °ü¸®È­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIM020MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIM020M); #endif } //--------------------------------------------------------------------------- /* * AVI-Á¦¾î±â »óÅÂÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH010MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH010M); #endif } //--------------------------------------------------------------------------- /* * AVI-Á¦¾î±â Â÷·®ÀνÄÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH020MxClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH020M); #endif } //--------------------------------------------------------------------------- /* * AVI-Á¦¾î±â ±³ÅëÁ¤º¸ÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH030MxClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH030M); #endif } //--------------------------------------------------------------------------- /* * AVI-Á¦¾î±â Â÷·®Åë°úÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH040MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH040M); #endif } //--------------------------------------------------------------------------- /* * AVI-±¸°£-¸ÅĪÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH050MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH050M); #endif } //--------------------------------------------------------------------------- /* * AVI-±¸°£-¼öÁýÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH060MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH060M); #endif } //--------------------------------------------------------------------------- /* * AVI-±¸°£-¼ÒÅë»óȲÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIH070MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH070M); #endif } //--------------------------------------------------------------------------- /* * AVI-±¸°£-¼ÒÅë»óȲÅë°èÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NAVIS010MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIS010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIS020MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIS020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NSMS0010MClick(TObject *Sender) { //FORMSHOW(SMS0010M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NSMS0020MClick(TObject *Sender) { //FORMSHOW(SMS0020M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NSMS0030MClick(TObject *Sender) { //FORMSHOW(SMS0030M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIFM0040MClick(TObject *Sender) { FORMSHOW(IFM0040M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIFM0050MClick(TObject *Sender) { FORMSHOW(IFM0050M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0010MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PIS0010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0030MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PIS0030M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0020MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PIS0020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPISH010MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PISH010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH060MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH060M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH070MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH070M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnAlarmDblClick(TObject *Sender) { try { #if 1 //TODO if (FrmIncidentAlarm == NULL) { FrmIncidentAlarm = new TFrmIncidentAlarm(Application); } FrmIncidentAlarm->Show(); FrmIncidentAlarm->ShowIncidentAlarm(); #endif if (FrmFacilityAlarm == NULL) { FrmFacilityAlarm = new TFrmFacilityAlarm(Application); } FrmFacilityAlarm->Show(); FrmFacilityAlarm->ShowFacilityAlarm(); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTST0000MClick(TObject *Sender) { #if 0 String sExeName = "Project1.exe"; String sParam = "\"" + g_pLOGIN->sUserId + "\" \"" + g_pLOGIN->sUserId + "\""; //ShellExecute(NULL,"open", "C:\\myprocess.exe", "\"my argument 1 containing spaces\" \"my argument 2\"","C:\\",SW_SHOWNORMAL); ShellExecute(Handle, NULL, sExeName.c_str(), sParam.c_str(), NULL, SW_SHOWNORMAL); #endif #include AnsiString sQry1 = "INSERT INTO TB_OPERSYST_MENU VALUES('%s', '%02d.%s', 'N', 1, '');\n"; AnsiString sQry2 = "INSERT INTO TB_OPERSYST_MENU VALUES('%s', '%s', 'N', 2, '%s');\n"; AnsiString sMenuFile = g_sAppDir + "Menu.TXT"; FILE *pFileMenu = NULL; pFileMenu = fopen(sMenuFile.c_str(), "w+"); if (pFileMenu == NULL) { ShowMessage("¸Þ´ºÆÄÀÏÀ» »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù."); return; } int nMenuCnt = 1; int nMenuTabs = Ribbon->Tabs->Count; for (int ii = 0; ii < nMenuTabs; ii++) { TdxRibbonTab *pTab = Ribbon->Tabs->Items[ii]; if (pTab->Visible == false) continue; AnsiString sMainName = pTab->Name; AnsiString sMainCap = pTab->Caption; fprintf(pFileMenu, sQry1.c_str(), sMainName.c_str(), nMenuCnt++, sMainCap.c_str()); int nSubMenus = pTab->Groups->Count; for (int jj = 0; jj < nSubMenus; jj++) { TdxRibbonTabGroup *pGroup = pTab->Groups->Items[jj]; TdxBar *pBar = pGroup->ToolBar; if (pBar->Visible == false) continue; int nMenus = pBar->ItemLinks->Count; for (int kk = 0; kk < nMenus; kk++) { TdxBarItemLink *pItemLink = pBar->ItemLinks->Items[kk]; TdxBarLargeButton *pMenuBtn = (TdxBarLargeButton*)pItemLink->Item; if (pMenuBtn->Visible != ivAlways) continue; AnsiString sMenuName = pMenuBtn->Name; AnsiString sMenuCap = pMenuBtn->Caption; fprintf(pFileMenu, sQry2.c_str(), sMenuName.c_str(), sMenuCap.c_str(), sMainName.c_str()); } } } fclose(pFileMenu); pFileMenu = NULL; #if 0 for (int ii = 0; ii < nCompnentCnt; ii++) { String sClassName = this->Components[ii]->ClassName(); if(sClassName == "TdxBarLargeButton") { TdxBarLargeButton *pMenu = (TdxBarLargeButton *)this->Components[ii]; if (pMenu->Name == sMenuId) { pMenu->Enabled = false; break; } } } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIHS0060MClick(TObject *Sender) { FORMSHOW(IHS0060M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::TmrDbCheckTimer(TObject *Sender) { TmrDbCheck->Enabled = false; if (ITSDb_IsOpen() == false) { //DebugMsg("µ¥ÀÌÅͺ£À̽º ¿¬°á ¿À·ù...."); DebugMsg(FrmLang->cxLabel23->Caption); UpdateDbStatus(true); if (DbConnect()) { if (ITSDb_Open()) { UpdateDbStatus(false); //DebugMsg("µ¥ÀÌÅͺ£À̽º À翬°á ¼º°ø...."); DebugMsg(FrmLang->cxLabel24->Caption); } } TmrDbCheck->Interval = 10000; } else { if (IsDbAlive()) { TmrDbCheck->Interval = 10000; } else { TmrDbCheck->Interval = 5000; } } TmrDbCheck->Enabled = true; } //--------------------------------------------------------------------------- bool __fastcall TFrmMain::DbConnect() { TADOConnection *m_pConnection = new TADOConnection(NULL); try { try { m_pConnection->ConnectionString = ITSDb_GetConnStr(); m_pConnection->KeepConnection = true; m_pConnection->LoginPrompt = false; m_pConnection->Open(); m_pConnection->Close(); } catch(EDatabaseError &E) { return false; } catch (Exception &e) { return false; } catch (...) { return false; } } __finally { SAFE_DELETE(m_pConnection); } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmMain::IsDbAlive() { String sQry; TADOQuery *pADO = NULL; try { sQry = "SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') AS CURDATE FROM DUAL"; try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; pADO->Open(); for( ; !pADO->Eof; pADO->Next()) { String sCurrDate = pADO->FieldByName("CURDATE")->AsString; } } catch (Exception &exception) { ITSDb_Close(); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NBDS0010MClick(TObject *Sender) { #ifdef D_BLACKBOX FORMSHOW(BDS0010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NBDS0020MClick(TObject *Sender) { #ifdef D_BLACKBOX FORMSHOW(BDS0020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NBDH0010MClick(TObject *Sender) { #ifdef D_BLACKBOX FORMSHOW(BDSH010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NBDH0020MClick(TObject *Sender) { #ifdef D_BLACKBOX FORMSHOW(BDSH020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0010MClick(TObject *Sender) { FORMSHOW(TAS0010M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0020MClick(TObject *Sender) { FORMSHOW(TAS0020M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0030MClick(TObject *Sender) { FORMSHOW(TAS0030M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0040MClick(TObject *Sender) { FORMSHOW(TAS0040M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0050MClick(TObject *Sender) { FORMSHOW(TAS0050M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWBH0010MClick(TObject *Sender) { #ifdef D_WBH0010M FORMSHOW(WBH0010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH080MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH080M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIDB0140MClick(TObject *Sender) { #ifdef D_IDB0140M FORMSHOW(IDB0140M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NITS0050MClick(TObject *Sender) { // FORMSHOW(ITS0050M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RVDSM010MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RVDSM020MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM020M); #endif } //---------------------------------------------------------------------------