//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSLangTransF.h" #include "ITSMapF.h" #pragma hdrstop #include "FrmMainF.h" #include "TThreadPollingF.h" #include "FrmInitializeF.h" // ÇÁ·Î±×·¥ ÃʱâÈ­È­¸é #include "FrmFacilityAlarmF.h" #include "FrmIncidentAlarmF.h" #define D_IDB0140M #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 "IFM0050MF.h" // ÁÖÂ÷Àå °ü¸® #include "IFM0070MF.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 "IHS0070MF.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 "CFG0000MF.h" // ½Ã½ºÅÛ È¯°æ¼³Á¤ //--------------------------------------------------------------------------- #ifdef USE_DSRC #include "DSRH010MF.h" //DSRC »óÅÂÀÌ·Â #include "DSRH020MF.h" //DSRC ·Î±×ÀÌ·Â #include "DSRH030MF.h" //DSRC Á¦¾îÀÌ·Â #include "DSRH040MF.h" //DSRC °¡°øÁ¤º¸ ÀÌ·ÂÁ¶È¸ #include "DSRH050MF.h" //DSRC Á¦°øÁ¤º¸ ÀÌ·ÂÁ¶È¸ #include "DSRH060MF.h" //DSRC OBU ¼öÁý ÀÌ·ÂÁ¶È¸ #include "DSRH070MF.h" //DSRC OBU ¼öÁý Åë°èÁ¶È¸ #include "DSRM010MF.h" //DSRC °ü¸® #include "DSRM020MF.h" //DSRC Á¦¾î #include "DSRM030MF.h" //DSRC ¼öÁý±¸°£ ¼³Á¤ #include "DSRM040MF.h" //DSRC Á¦°ø±¸°£ °ü¸® #include "DSRM050MF.h" //DSRC »óÅ ¸ð´ÏÅ͸µ #endif //--------------------------------------------------------------------------- #ifdef USE_VDS #include "VDSM000MF.h" //VDS-°ËÁö±â »óÅ ¸ð´ÏÅ͸µ #include "VDSM100MF.h" //VDS-Á¦¾î±â °ü¸® #include "VDSM200MF.h" //VDS-°ËÁö±â °ü¸® #include "VDSM300MF.h" //VDS Á¦¾î #include "VDSM400MF.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 "VDSH070MF.h" //VDS-°ËÁö±â »óÅÂÀÌ·Â #include "VDSH080MF.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_PARK2 #include "PIS0010MF.h" //ÁÖÂ÷Àå°ü¸® #include "PIS0020MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ #include "PISH010MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ÀÌ·Â #include "PISH020MF.h" //ÁÖÂ÷Àå»óÅÂÀÌ·Â #include "PIS0030MF.h" //ÁÖÂ÷ÀåÁ¦¾î #endif #ifdef USE_PARK #include "PRK0010MF.h" //ÁÖÂ÷Àå°ü¸® #include "PRK0020MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ #include "PRK0040MF.h" //ÁÖÂ÷ÀåÃþº°À̹ÌÁö°ü¸® #include "PRK0050MF.h" //ÁÖÂ÷ÀåÃþº°½Ç½Ã°£ Á¤º¸ #include "PRK0060MF.h" //ÁÖÂ÷Àå ¿î¿µ Á¤º¸ °ü¸® #include "PRKH010MF.h" //ÁÖÂ÷Àå½Ç½Ã°£Á¤º¸ÀÌ·Â #include "PRKH020MF.h" //ÁÖÂ÷Àå»óÅÂÀÌ·Â #endif //--------------------------------------------------------------------------- #ifdef D_BLACKBOX #include "BDS0010MF.h" #include "BDS0020MF.h" #include "BDSH010MF.h" #include "BDSH020MF.h" #endif //--------------------------------------------------------------------------- #ifdef USE_WCAM #include "WCAM100MF.h" //À¥Ä«¸Þ¶ó °ü¸® #include "WCAM010MF.h" //À¥Ä«¸Þ¶ó »óŸð´ÏÅ͸µ //#include "WCAM020MF.h" //À¥Ä«¸Þ¶ó Á¦¾î #include "WCAMH10MF.h" //À¥Ä«¸Þ¶ó »óÅÂÀÌ·Â Á¶È¸ #endif //--------------------------------------------------------------------------- #ifdef USE_CCAM #include "CCAM100MF.h" //±³Â÷·Î°¨½ÃÄ«¸Þ¶ó °ü¸® #include "CCAM010MF.h" //±³Â÷·Î°¨½ÃÄ«¸Þ¶ó »óŸð´ÏÅ͸µ //#include "CCAM020MF.h" //±³Â÷·Î°¨½ÃÄ«¸Þ¶ó Á¦¾î #include "CCAMH10MF.h" //±³Â÷·Î°¨½ÃÄ«¸Þ¶ó »óÅÂÀÌ·Â Á¶È¸ #endif //--------------------------------------------------------------------------- #ifdef USE_CCTV #include "CTVM100MF.h" //CCTV °ü¸® #include "CTVM010MF.h" //CCTV »óŸð´ÏÅ͸µ #include "CTVM200MF.h" //CCTV ´ëüÀ̹ÌÁö #endif //--------------------------------------------------------------------------- #ifdef USE_VMS #include "VMSM010MF.h" //VMS »óŸð´ÏÅ͸µ #endif #ifdef USE_VDS #include "TAS0080MF.h" #include "TAS0090MF.h" #endif //--------------------------------------------------------------------------- #ifdef D_WBH0010M #include "WBH0010MF.h" //ȨÆäÀÌÁö °ü¸®ÀÚ ÀÌ·ÂÁ¶È¸ #endif #ifdef USE_CROSS #include "CRSM000MF.h" #include "CRSM100MF.h" #include "CRSM200MF.h" #endif #ifdef USE_EVSP #include "EVSP000MF.h" #include "EVSP100MF.h" #include "EVSP200MF.h" #include "EVSP300MF.h" #include "EVSPH10MF.h" #include "EVSPH20MF.h" #endif //--------------------------------------------------------------------------- #include "ITS_OPLibF.h" //--------------------------------------------------------------------------- #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 link "dxSkinMcSkin" #pragma resource "*.dfm" TFrmMain *FrmMain = NULL; #define MAX_EXEPROGRAM 31 ST_RUNPROGRAM g_RunProgram[MAX_EXEPROGRAM] = { /* 0*/ {"", "", ""}, /* 1*/ {"TFrmCctvOprMain", "CctvOprMain.exe", "CCTV¿î¿µ°ü¸®"}, {"TFrmCctvCamViewer", "CctvCamViewer.exe", "CCTV¿µ»ó¸ð´ÏÅ͸µ"}, {"TfrmCctvLog", "CctvLog.exe", "CCTV»óÅÂÀÌ·Â"}, {"", "", ""}, /* VMS */ /* 5*/ {"TFrmVmsOprMain", "VmsOprMain.exe", "VMS¿î¿µ°ü¸®"}, {"TFrmVmsLogStts", "VmsLogStts.exe", "VMS»óÅÂÀÌ·ÂÁ¶È¸"}, {"TFrmVmsLogDspl", "VmsLogDspl.exe", "VMSÁ¦°øÀÌ·ÂÁ¶È¸"}, {"TFrmVmsLogCtrl", "VmsLogCtrl.exe", "VMSÁ¦¾îÀÌ·ÂÁ¶È¸"}, {"TFrmVmsLogDnld", "VmsLogDnld.exe", "VMS´Ù¿î·ÎµåÀÌ·ÂÁ¶È¸"}, /*10*/ {"", "", ""}, /* Web Camera */ /*11*/ {"TFrmWebCamViewer", "WebCamViewer.exe", "WEBÄ«¸Þ¶ó¿µ»ó¸ð´ÏÅ͸µ"}, /*12*/ {"TfrmVdsStatistics", "VmsMsgLog.exe", "VDSÅë°è"}, {"TfrmLinkDSRC", "DsrcSect.exe", "DSRC±¸°£¼³Á¤"}, //VDS {"TfrmVdsMaster", "VdsMgr.exe", "VDS Á¦¾î±â °ü¸®"}, {"TfrmVdsDetector", "VdsDetector.exe", "VDS °ËÁö±â °ü¸®"}, {"TfrmVdsCtrl", "VdsCtrl.exe", "VDS Á¦¾î"}, //AVI {"TfrmAviMaster", "AviMgr.exe", "AVI Á¦¾î±â °ü¸®"}, {"TfrmAviDetector", "AviDetector.exe", "AVI °ËÁö±â °ü¸®"}, {"TfrmAviLink", "AviLink.exe", "AVI ±¸°£ °ü¸®"}, {"TfrmAviControl", "AviCtrl.exe", "AVI Á¦¾î"}, //VMS ADD Form {"TFrmVmsLogCtl", "VmsLogCtl.exe", "VMSÁ¦¾îÀÌ·ÂÁ¶È¸"}, {"TFrmVmsLogDnld", "VmsLogDnld.exe", "VMS´Ù¿î·ÎµåÀÌ·ÂÁ¶È¸"}, /* CROSS Camera */ /*23*/ {"TFrmCrsCamViewer", "CrsCamViewer.exe", "±³Â÷·Î°¨½ÃÄ«¸Þ¶ó¿µ»ó¸ð´ÏÅ͸µ"}, //ETC /*24*/ {"TFrmWebCamCtrl", "WebCamCtrl.exe", "À¥Ä«¸Þ¶óÁ¦¾î"}, {"", "", ""}, }; #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_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_sLang, true, true); 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); //ÅǸ޴ººñȰ¼º TabCrsCam->Visible = false; //TabTrafficAnalysisSupport->Visible = false; BarTrafficAnalysisSupport1->Visible = false; BarTrafficAnalysisSupport2->Visible = false; NTAS0010M->Visible = ivNever; //È¥ÀâÁöµµ ºÐ¼® NTAS0040M->Visible = ivNever; //±³ÅëºÐ¼®Áö¿ø - Ư¼öÀÏ ºÐ¼® NTAS0030M->Visible = ivNever; //°£¼±µµ·Î ¼ÓµµºÐ¼® #ifndef USE_VDS BarVdsAnalysis->Visible = false; #endif //NVDSH080M->Visible = ivNever; //VDS°³º°Â÷·®ÀÌ·ÂÁ¶È¸ TabBlackBox->Visible = false; //BlackBox TabAvi->Visible = false; #ifndef USE_DSRC TabDsrc->Visible = false; #endif TabSms->Visible = false; //SMD //ÁÖÂ÷Àå //#ifdef USE_PARK // TabParking->Visible = true; // NPIS0030M->Visible = ivNever; //#else // TabParking->Visible = false; //#endif #ifdef USE_PARK TabParking->Visible = true; NPIS0030M->Visible = ivNever; #else TabParking->Visible = false; #endif NEVSP000M->Visible = ivNever; //VMS //BarVms2->Visible = false; //RVMSH300M->Visible = ivNever; //VMS Á¦¾îÀÌ·Â(R) RVMSH400M->Visible = ivNever; //VMS ´Ù¿î·ÎµåÀÌ·Â(R) //NCCTV100M->Visible = ivNever; //CCTV °ü¸® //NCCTVR10R->Visible = ivNever; //CCTV ¿µ»ó ¸ð´ÏÅ͸µ //RCCTVH10M->Visible = ivNever; //CCTV »óÅÂÀÌ·Â //NCCTV010M->Visible = ivNever; //CCTV »óÅ ¸ð´ÏÅ͸µ NCCTV020M->Visible = ivNever; //CCTV Á¦¾î //NWCAM100M->Visible = ivNever; //NWCAMH10M->Visible = ivNever; BarCctv2->Visible = false; BarCctv3->Visible = false; BarCctv4->Visible = true; //NIDB0110M->Visible = ivNever; //¿¬°è±â°ü °ü¸® BarConfig4->Visible = false; //½ºÅ² //BarCrsCam4->Visible = false; //NWCAM010M->Visible = ivNever; //À¥Ä«¸Þ¶ó Á¦¾î //NWCAM020M->Visible = ivNever; //BarWebCam4->Visible = false; // ¸Þ´ººñȰ¼º #ifndef D_IDB0140M NIDB0140M->Visible = ivNever; #endif #ifndef D_WBH0010M NWBH0010M->Visible = ivNever; #endif //±¸¹Ì½Ã TabTrafficAnalysisSupport->Visible = false; //±³ÅëÁ¤º¸ºÐ¼®Áö¿ø ÅÇ NIHS0060M->Visible = ivNever; //ÀÌ·ÂÁ¶È¸ - ¼öÁýµ¥ÀÌÅͺм® NIHS0070M->Visible = ivNever; //ÀÌ·ÂÁ¶È¸ - ±³Â÷·Î ±³Åë·® ºÐ¼® NIDB0140M->Visible = ivNever; //±âÃʵ¥ÀÌÅͰü¸® - ȨÆäÀÌÁö°ü¸®ÀÚ°ü¸® NIST0070M->Visible = ivNever; //Åë°è-ºÐ¼® - °£¼±µµ·Î ¼ÒÅëÁ¤º¸ Åë°è NIST0080M->Visible = ivNever; //Åë°è-ºÐ¼® - °£¼±µµ·Î Åë°è //ȯ°æ¼³Á¤ 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; //¹Ýº¹Á¤Ã¼°ü¸®(±â»ó) //NIAN0060M->Visible = ivNever; //¹Ýº¹Á¤Ã¼±¸°£ ºÐ¼® ==> ½ÇÁ¦ ¹Ýº¹Á¤Ã¼±¸°£ ºÐ¼®ÀÌ ¾Æ´Ô(????) #ifdef USE_EVSP TabEvsp->Visible = true; #else TabEvsp->Visible = false; #endif //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 APP_InitDisplayColor(); //ITSSkin_Menu(this); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::FormCreate(TObject *Sender) { /* ·¹Áö½ºÅ͸® µî·Ï IE ÃֽŹöÀü */ String sExeName = ExtractFileName(Application->ExeName); ITSMap_Init(sExeName); //SetUnhandledExceptionFilter(HelperExceptionFilter); Application->ShowMainForm = false; try { Application->Icon->LoadFromResourceName(((unsigned int)HInstance), "MAINICON"); } catch(...) { ShowMessage("LoadFromResourceName failed"); } WindowState = wsMaximized; // Á¾·áÁ¶°ÇÀÌ Àִ°æ¿ì.. //Application->Terminate(); //return; Application->ShowMainForm = true; Application->OnHint = OnAppHint; ImgAlarm->Visible = false; ImgAlarmNormal->Visible = true; } //--------------------------------------------------------------------------- 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; } //--------------------------------------------------------------------------- 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; // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) FPollTraffic05.Cycle = (60*1000*5)+ 0; // UTIS¿î¿µÁ¤º¸ FPollDatabase.Cycle = (60*1000*5)+ 3; // µ¥ÀÌÅͺ£À̽º»óÅÂÁ¤º¸ 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 = (120*1000*10)+1; // ±â»óÁ¤º¸ FPollTraffic00.IsPolling = true; // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) #ifdef USE_UTIS FPollTraffic05.IsPolling = true; // UTIS¿î¿µÁ¤º¸ #else FPollTraffic05.IsPolling = false; // UTIS¿î¿µÁ¤º¸ #endif FPollDatabase.IsPolling = false; // µ¥ÀÌÅͺ£À̽º»óÅÂÁ¤º¸ FPollStatus01.IsPolling = true; // ½Ã¼³¹°»óÅÂÁ¤º¸ FPollStatus02.IsPolling = true; // ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ FPollStatus03.IsPolling = true; // µ¹¹ßÁ¤º¸ FPollEvent01.IsPolling = false; // ºí·¢¹Ú½ºÀ̺¥Æ® #ifdef USE_VILG FPollVilgFrcs.IsPolling = true; // ±â»óÁ¤º¸ #else FPollVilgFrcs.IsPolling = false; // ±â»óÁ¤º¸ #endif //³»ºÎÅë½Å ÃʱâÈ­ ½ÃÀÛ... TItsProcess *pPrcs = ItsProcessManager->FLists.Find(g_AppCfg.sProcessId); if (!pPrcs) { if (g_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 = CComm_Initialize((long)Handle, g_AppCfg.sProcessId, "UOT", nPort, g_AppCfg.sLogDay); if (VERR_NONE != nResult) { if (g_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 (CComm_AddProcess(sProcessId, sSystemTp, sIpAddress, sUdpPort) >= 0) { if ("UOT" == sSystemTp) { nPort = sUdpPort.ToIntDef(0); CComm_AddProcess(sProcessId, sSystemTp, sIpAddress, AnsiString(nPort+1)); } } } if (VERR_NONE != CComm_Open()) { if (g_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; } //--------------------------------------------------------------------------- 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; } //--------------------------------------------------------------------------- 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(...) { } } //--------------------------------------------------------------------------- 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) { /* * È­¸é°ü·Ã ÀÛ¾÷À» ¸øÇϵµ·Ï ¿©±â¿¡ Äڵ带 ÀûÀÚ... */ CloseAllWindow(); ITSDb_ApplicationTerm(); g_AppCfg.bAppClose = true; } CanClose = false; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::CommClose() { try { CComm_Close(); //CloseAllWindow(); ITSSkin_Term(); CMM_SaveForm(g_sFormsDir, this); WriteConfigInfo(g_AppCfg.sConfigFile, "MAP", "MAPTYPE", String(g_GisInfo.mapType)); WriteConfigInfo(g_AppCfg.sConfigFile, "APPLICATION", "LOGDAY", Now().FormatString("dd")); ::CoUninitialize(); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::CloseAllWindow() { int ii; // ½ÇÇà½ÃŲ ÇÁ·Î±×·¥À» Á¾·á½ÃŲ´Ù. #if 0 for (ii = 0; ii < MAX_EXEPROGRAM; ii++) { if (g_RunProgram[ii].AClassName == "") continue; TermItsProgram(g_RunProgram[ii].AClassName, ""); } #endif //½ÇÇàÁßÀÎ È­¸éÀ» Á¾·á ½ÃŲ´Ù. 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.Pos("ITSSkin")) continue; if (sFormName.Pos("FrmSkin")) continue; if (sFormName.Pos("FrmLang")) continue; if (sFormName.Pos("PlugInChart")) continue; //if (sFormName.SubString(1, 11) == "PlugInChart") continue; if (Screen->Forms[ii]->Owner == this || Screen->Forms[ii]->Owner == Application) { //Screen->Forms[ii]->Close(); PostMessage(Screen->Forms[ii]->Handle, WM_CLOSE, 0, 0); //Application->ProcessMessages(); try { WaitForSingleObject(Screen->Forms[ii]->Handle, 1000); }catch(Exception &e) {} } } Application->ProcessMessages(); } } } catch(...) {} } //--------------------------------------------------------------------------- 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; } //--------------------------------------------------------------------------- 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(EDatabaseError &E) { DBERRORLOG("TFrmMain::GetUserMenuRight", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORLOG("TFrmMain::GetUserMenuRight", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __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_TRAFFIC); DebugMsg(FrmLang->cxLabel3->Caption + FrmLang->cxLabelReq->Caption); } // µ¥ÀÌÅͺ£À̽º »óÅ if (FPollDatabase.IsPolling && FPollDatabase.IsPollingTime(dwTick)) { FPollDatabase.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_DATABASE_STTS); DebugMsg(FrmLang->cxLabel25->Caption + FrmLang->cxLabelReq->Caption); } // ½Ã¼³¹°»óÅÂÁ¤º¸ if (FPollStatus01.IsPolling && FPollStatus01.IsPollingTime(dwTick)) { FPollStatus01.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_FACILITY_STTS); DebugMsg(FrmLang->cxLabel8->Caption + FrmLang->cxLabelReq->Caption); } // ÇÁ·Î¼¼½º»óÅÂÁ¤º¸ if (FPollStatus02.IsPolling && FPollStatus02.IsPollingTime(dwTick)) { FPollStatus02.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_PROCESS_STTS); DebugMsg(FrmLang->cxLabel9->Caption + FrmLang->cxLabelReq->Caption); } // µ¹¹ßÁ¤º¸ if (FPollStatus03.IsPolling && FPollStatus03.IsPollingTime(dwTick)) { FPollStatus03.Polling = dwTick; PostJobMessage(WM_THREAD, WP_PARAM_TRAFFIC, LP_MSG_INCIDENT); DebugMsg(FrmLang->cxLabel10->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 (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_WEATHER); 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; } //--------------------------------------------------------------------------- bool __fastcall TFrmMain::PostJobMessage(UINT nMsg, int WParam/*=0*/, int LParam/*=0*/) { int nRes; String sMsg; sMsg.printf(L"PostJobMessage: Msg: %02X, WParam: %02X, LParam: %02X", nMsg, WParam, LParam); DebugMsg(sMsg); 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_FACILITY_STTS); } ShowFacilityStatus(); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCFG0001MClick(TObject *Sender) { #if 0 try { if (ITS00MAP) { ITS00MAP->ShowLayerEditForm(); } else { Application->MessageBox(L"Áöµµ·¹ÀÌ¾î ¼³Á¤Àº ¸ÞÀÎÈ­¸éÀÌ ½ÇÇàµÇ¾î ÀÖÀ»¶§ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.\r\n¸ÞÀÎÈ­¸éÀ» ¸ÕÀú ½ÇÇàÇϼ¼¿ä.", L"Áöµµ·¹ÀÌ¾î ¼³Á¤", MB_OK|MB_ICONWARNING|MB_APPLMODAL); } } catch(...) {} #endif } //--------------------------------------------------------------------------- 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); ShowWindow(hExeForm, SW_RESTORE); } 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); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnRunProgramClick(TObject *Sender) { #if 0 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); #else ExecuteItsProgram("TFrmWebCamCtrl", "WebCamCtrl.exe", "À¥Ä«¸Þ¶óÁ¦¾î"); #endif } //--------------------------------------------------------------------------- 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); } //--------------------------------------------------------------------------- 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); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnAppHint(TObject *Sender) { dxStatusBar->Panels->Items[isbHint]->Text = " " + Application->Hint; dxStatusBar->Panels->Items[isbHint]->StatusBarControl->Refresh(); } //--------------------------------------------------------------------------- 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(...) { } } //--------------------------------------------------------------------------- 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; case WM_DATABASE_REFRESH: OnDatabaseMessage(Msg.wParam, Msg.lParam); break; case WM_PLUGINFORM: OnRefreshMessage(Msg.wParam, Msg.lParam); break; case WM_MOUSEMOVE: FLogoutTick = 0; break; case WM_KEYDOWN: FLogoutTick = 0; if (Msg.wParam == VK_F5) { Handled = true; } break; case WM_KEYUP: FLogoutTick = 0; break; case WM_USER+0xF4: if (Msg.wParam == 0xB2) { ITSDb_Close(); DebugMsg(FrmLang->cxLabel14->Caption); } break; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::ApplicationEvents1ShortCut(TWMKey &Msg, bool &Handled) { if (Msg.CharCode == VK_F2) { NTAS0030MClick((TObject*)NTAS0030M); } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnRefreshMessage(WPARAM AWParam, LPARAM ALParam) { HWND hWnd; // Æú¸µ ½º·¹µå¿¡¼­ µ¥ÀÌÅͺ£À̽º ÀÛ¾÷ ¿Ï·áÈÄ ÀÀ´ä ¸Þ½ÃÁö ó¸® if (AWParam == WP_DB_SELECT_OK) { DWORD dwTick = GetTickCount(); switch(ALParam) { case LP_MSG_TRAFFIC: DebugMsg(FrmLang->cxLabel3->Caption + FrmLang->cxLabelRes->Caption); FPollTraffic00.Polling = dwTick; break; case LP_MSG_DATABASE_STTS: DebugMsg(FrmLang->cxLabel25->Caption + FrmLang->cxLabelRes->Caption); FPollDatabase.Polling = dwTick; break; case LP_MSG_FACILITY_STTS: DebugMsg(FrmLang->cxLabel8->Caption + FrmLang->cxLabelRes->Caption); FPollStatus01.Polling = dwTick; break; case LP_MSG_PROCESS_STTS: DebugMsg(FrmLang->cxLabel9->Caption + FrmLang->cxLabelRes->Caption); FPollStatus02.Polling = dwTick; break; case LP_MSG_INCIDENT: 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_WEATHER: 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_FACILITY_STTS && NVDSM300M->Enabled) { hWnd = FindChildWindow("VDSM300M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, AWParam, ALParam); } if (ALParam == LP_MSG_FACILITY_STTS) { //½Ã¼³¹° »óÅÂÁ¤º¸ ¾÷µ¥ÀÌÆ® ShowFacilityStatus(); } else if (ALParam == LP_MSG_INCIDENT) { //µ¹¹ß¹ß»ýÁ¤º¸ //ShowAutoIncidentInfo(); } } else if (AWParam == WP_MSG_15) { if (LP_MSG_15 == ALParam) { DebugMsg("GIS Link Select"); 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 -±³ÅëÆÄ¶ó¹ÌÅÍ //CComm_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 °ü¸® 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; IPC_MSG_DATA *RcvData = (IPC_MSG_DATA*)Msg.LParam; INT_SENDER *Sender = &RcvData->Sender; INT_PACKET *Pkt = &RcvData->Pkt; INT_HEAD *head = &Pkt->head; INT_DATA *data = &Pkt->data; char *pData = &Pkt->data.Data[0]; BYTE OpCode = head->OpCode; LOGINFO("*** OPR Client Req: %s.%d", CComm_ulong2ip(Sender->IP), Sender->Port); HWND hWnd; bool bFacility; String sMsg = ""; String sCtrlNmbr = ""; TItsFacility *pFacility; WPARAM AWParam; LPARAM ALParam; switch(OpCode) { case INT_OP_PG_STATE_RES: { DebugMsg(FrmLang->cxLabel19->Caption); INT_PG_STATE_RES *ARes = (INT_PG_STATE_RES*)pData; String CommStatus; bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_MAX_PG_STATE; ii++) { String SYST_ID; switch(ARes->Unit[ii].Type) { case INT_ID_TRAFFIC_SERVER: SYST_ID = "UTP01"; break; case INT_ID_VDS_SERVER: SYST_ID = "VDS01"; break; case INT_ID_DSRC_SERVER: SYST_ID = "DSRC01"; break; case INT_ID_VMS_SERVER: SYST_ID = "VMS01"; break; case INT_ID_WCAM_SERVER: SYST_ID = "WCAM01"; break; case INT_ID_CCAM_SERVER: SYST_ID = "CCAM01"; break; case INT_ID_EXT01_SERVER: SYST_ID = "EXT01"; break; case INT_ID_EXT02_SERVER: SYST_ID = "EXT02"; break; default: continue; } TItsProcess *pObj = ItsProcessManager->FLists.Find(SYST_ID); if (pObj) { CommStatus = ARes->Unit[ii].Action == 0x00 ? "1" : "0"; if (pObj->CommStatus != CommStatus) bFacility = true; pObj->CommStatus = CommStatus; } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_PROCESS_STTS); } break; case INT_OP_VMS_STATE_RES: { INT_VMS_STATE_RES *ARes = (INT_VMS_STATE_RES*)pData; sMsg = ""; sMsg.printf(FrmLang->cxLabel20->Caption.c_str(), ARes->Count); DebugMsg(sMsg); bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_VMS_MAX_STATE; ii++) { sMsg = ""; INT_VMS_STATE *pVms = &ARes->Unit[ii]; sCtrlNmbr = String(pVms->VMS_CTLR_NMBR); TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(sCtrlNmbr); if (pObj) { if (pObj->STATE.Comm != pVms->Comm) bFacility = true; memcpy(&pObj->STATE, 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->CheckRunState(); if (pObj->STATE.Comm != vms_comm_normal) { pObj->VmsMsg->OFFER_YN = false; } pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID); if (pFacility) { pFacility->FComm = pObj->STATE.Comm == vms_comm_normal ? state_normal : state_error; } } else { sMsg.printf(L"INT_OP_VMS_STATE_RES VMS not found: %s", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_FACILITY_STTS); } break; case INT_OP_VDS_STATE_RES: { INT_VDS_STATE_RES *ARes = (INT_VDS_STATE_RES*)pData; sMsg = ""; sMsg.printf(FrmLang->cxLabel26->Caption.c_str(), ARes->Count); DebugMsg(sMsg); bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_VDS_MAX_STATE; ii++) { sMsg = ""; INT_VDS_STATE *pVds = &ARes->Unit[ii]; sCtrlNmbr = String(pVds->VDS_CTLR_NMBR); TVdsCtlr *pObj = VdsCtlrManager->FLists.Find(sCtrlNmbr); if (pObj) { if (pObj->STATE.Comm != pVds->Comm) bFacility = true; memcpy(&pObj->STATE, pVds, sizeof(INT_VDS_STATE)); pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID); if (pFacility) { pFacility->FComm = pObj->STATE.Comm == vds_normal ? state_normal : state_error; } } else { sMsg.printf(L"INT_OP_VDS_STATE_RES VDS not found: %s", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_FACILITY_STTS); } break; case INT_OP_DSRC_STATE_RES: { INT_DSRC_STATE_RES *ARes = (INT_DSRC_STATE_RES*)pData; sMsg = ""; sMsg.printf(FrmLang->cxLabel28->Caption.c_str(), ARes->Count); DebugMsg(sMsg); bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_DSRC_MAX_STATE; ii++) { sMsg = ""; INT_DSRC_STATE *pDsrc = &ARes->Unit[ii]; sCtrlNmbr = String(pDsrc->DSRC_CTLR_NMBR); TItsDsrc *pObj = ItsDsrcManager->FLists.Find(sCtrlNmbr); if (pObj) { if (pObj->STATE.Comm != pDsrc->Comm) bFacility = true; memcpy(&pObj->STATE, pDsrc, sizeof(INT_DSRC_STATE)); pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID); if (pFacility) { pFacility->FComm = pObj->STATE.Comm == dsrc_normal ? state_normal : state_error; } } else { sMsg.printf(L"INT_OP_DSRC_STATE_RES DSRC not found: %s", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_FACILITY_STTS); } break; case INT_OP_WCAM_STATE_RES: { INT_WCAM_STATE_RES *ARes = (INT_WCAM_STATE_RES*)pData; sMsg = ""; sMsg.printf(FrmLang->cxLabel27->Caption.c_str(), ARes->Count); DebugMsg(sMsg); bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_WCAM_MAX_STATE; ii++) { sMsg = ""; INT_WCAM_STATE *pCam = &ARes->Unit[ii]; sCtrlNmbr = String(pCam->WCAM_CTLR_NMBR); TWCamCtlr *pObj = WCamCtlrManager->FLists.Find(sCtrlNmbr); if (pObj) { if (pObj->STATE.Comm != pCam->Comm) bFacility = true; memcpy(&pObj->STATE, pCam, sizeof(INT_WCAM_STATE)); pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID); if (pFacility) { pFacility->FComm = pObj->STATE.Comm == wcam_normal ? state_normal : state_error; } } else { sMsg.printf(L"INT_OP_WCAM_STATE_RES WCAM not found: %s", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_FACILITY_STTS); } break; case INT_OP_CCAM_STATE_RES: { INT_CCAM_STATE_RES *ARes = (INT_CCAM_STATE_RES*)pData; sMsg = ""; sMsg.printf(FrmLang->cxLabel27->Caption.c_str(), ARes->Count); DebugMsg(sMsg); bFacility = false; for (int ii = 0; ii < ARes->Count && ii < INT_CCAM_MAX_STATE; ii++) { sMsg = ""; INT_CCAM_STATE *pCam = &ARes->Unit[ii]; sCtrlNmbr = pCam->CCAM_CTLR_NMBR; TCCamCtlr *pObj = CCamCtlrManager->FLists.Find(sCtrlNmbr); if (pObj) { if (pObj->STATE.Comm != pCam->Comm) bFacility = true; memcpy(&pObj->STATE, pCam, sizeof(INT_CCAM_STATE)); pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID); if (pFacility) { pFacility->FComm = pObj->STATE.Comm == ccam_normal ? state_normal : state_error; } } else { sMsg.printf(L"INT_OP_CCAM_STATE_RES WCAM not found: %s", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } if (bFacility) OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_FACILITY_STTS); } 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); //OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_VMS_DSPLMSG); //VMS´Ù¿î·ÎµåÇÑ °á°ú¸¦ ¹Þ¾Æ¼­ »õ·Î¿î VMS½ºÄÉÁìÀ» Ç¥ÃâÇϵµ·Ï ÇÑ´Ù. } break; case INT_OP_VMS_FORM_DOWNLOAD: { OnRefreshMessage(WP_DB_SELECT_OK, LP_MSG_VMS_DSPLMSG); #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_VMS_MAX_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); sCtrlNmbr = String(szVmsNmbr); String sDateTime = String(szDateTime); TVmsCtlr *pObj = VmsManager->FLists.Find(sCtrlNmbr); 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_VMS_MAX_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", sCtrlNmbr.c_str()); DebugMsg(sMsg); } } #endif } break; case INT_OP_TRAFFIC_CHANGE: /* 0x01, ±³ÅëÁ¤º¸°¡°ø¿Ï·á */ { DebugMsg("Traffic Changed"); FPollTraffic00.Reset(); // ¸µÅ©¼ÒÅëÁ¤º¸(Àüü) } break; case INT_OP_NODELINK_CHANGE: /* 0x10, ³ëµå¸µÅ© ±â¹Ý Á¤º¸ º¯°æ */ { DebugMsg("Node Link DB Changed"); //ÈÞÀÏÁ¤º¸ //±¸°£µî±Þº¯°æ //¼ÒÅëµî±Þ //±³ÅëÆÄ¶ó¹ÌÅÍ /* * ±âÁ¸¿¡´Â ó¸®Çϴ°ÍÀÌ ¾ø¾úÀ½. * ---> ½É½ÉÇÒ¶§ ó¸®ÇÏÀÚ */ } 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_VDS_STOP_IMAGE_RES: /* VDS Á¤Áö¿µ»ó ¿äû ÀÀ´ä */ { DebugMsg("VDS Stop Image response"); INT_VDS_STOP_IMAGE_RES *ARes = (INT_VDS_STOP_IMAGE_RES*)pData; hWnd = FindChildWindow("VDSM300M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, INT_OP_VDS_STOP_IMAGE_RES, Msg.LParam); } break; case INT_OP_DSRC_CONTROL_RES: /* DSRC Control ¿äû ÀÀ´ä */ { DebugMsg("DSRC Control response"); INT_DSRC_CONTROL_RES *ARes = (INT_DSRC_CONTROL_RES*)pData; hWnd = FindChildWindow("DSRM020M"); if (hWnd) POST_MSG(hWnd, WM_MAINFORM, INT_OP_DSRC_CONTROL_RES, Msg.LParam); } break; } } //--------------------------------------------------------------------------- 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 != str_state_normal) { bShow = true; break; } else { if (pFacility->FDoor != str_state_normal) { bShow = true; break; } if (pFacility->FCBoxTmpr > g_AppCfg.Temp.AlarmValue) { bShow = true; break; } if (pFacility->FCLT_TYPE == "VMS") { if (pFacility->Sts01 != str_state_normal || pFacility->Sts02 != str_state_normal) { bShow = true; break; } } if (pFacility->FCLT_TYPE == "VDS") { if (pFacility->FCollError) { bShow = true; break; } } } } } __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(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH010MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH020MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH030MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH030M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH040MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH040M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRH050MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRH050M); #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::NDSRM010MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRM020MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRM030MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM030M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRM040MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM040M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NDSRM050MClick(TObject *Sender) { #ifdef USE_DSRC FORMSHOW(DSRM050M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH010MClick(TObject *Sender) { FORMSHOW(VDSH010M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH020MxClick(TObject *Sender) { FORMSHOW(VDSH020M); } //--------------------------------------------------------------------------- /* * VDS-°ËÁö±â °ú°Å¼öÁýÀÌ·ÂÈ­¸é È£Ãâ */ void __fastcall TFrmMain::NVDSH030MxClick(TObject *Sender) { FORMSHOW(VDSH030M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH040MClick(TObject *Sender) { FORMSHOW(VDSH040M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH050MxClick(TObject *Sender) { FORMSHOW(VDSH050M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSS010MClick(TObject *Sender) { FORMSHOW(VDSS010M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSS020MClick(TObject *Sender) { FORMSHOW(VDSS020M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIM010MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIM020MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIM020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH010MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH020MxClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH030MxClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH030M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH040MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH040M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH050MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH050M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH060MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH060M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NAVIH070MClick(TObject *Sender) { #ifdef USE_AVI FORMSHOW(AVIH070M); #endif } //--------------------------------------------------------------------------- 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_PARK2 FORMSHOW(PIS0010M); #endif #ifdef USE_PARK FORMSHOW(PRK0010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0030MClick(TObject *Sender) { #ifdef USE_PARK2 FORMSHOW(PIS0030M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0020MClick(TObject *Sender) { #ifdef USE_PARK2 FORMSHOW(PIS0020M); #endif #ifdef USE_PARK FORMSHOW(PRK0020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0050MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PRK0050M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0060MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PRK0060M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPIS0040MClick(TObject *Sender) { #ifdef USE_PARK FORMSHOW(PRK0040M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPISH010MClick(TObject *Sender) { #ifdef USE_PARK2 FORMSHOW(PISH010M); #endif #ifdef USE_PARK FORMSHOW(PRKH010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NPISH020MClick(TObject *Sender) { #ifdef USE_PARK2 FORMSHOW(PISH020M); #endif #ifdef USE_PARK FORMSHOW(PRKH020M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::OnAlarmDblClick(TObject *Sender) { try { #if 0 //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::NIHS0060MClick(TObject *Sender) { FORMSHOW(IHS0060M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIHS0070MClick(TObject *Sender) { FORMSHOW(IHS0070M); } //--------------------------------------------------------------------------- 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->Prepared = true; 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::NTAS0060MClick(TObject *Sender) { //FORMSHOW(TAS0060M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0070MClick(TObject *Sender) { //FORMSHOW(TAS0070M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0080MClick(TObject *Sender) { //FORMSHOW(TAS0080M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NTAS0090MClick(TObject *Sender) { //FORMSHOW(TAS0090M); } //--------------------------------------------------------------------------- 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::NVDSM100MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSM020MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM200M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWCAM100MClick(TObject *Sender) { #ifdef USE_WCAM FORMSHOW(WCAM100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWCAM010MClick(TObject *Sender) { #ifdef USE_WCAM FORMSHOW(WCAM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSM000MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM000M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSM400MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM400M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH070MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSH070M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSH080MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSH080M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWCAMH10MClick(TObject *Sender) { #ifdef USE_WCAM FORMSHOW(WCAMH10M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVDSM300MClick(TObject *Sender) { #ifdef USE_VDS FORMSHOW(VDSM300M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCAM100MClick(TObject *Sender) { #ifdef USE_CCAM FORMSHOW(CCAM100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCAMH10MClick(TObject *Sender) { #ifdef USE_CCAM FORMSHOW(CCAMH10M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCAM020MClick(TObject *Sender) { #ifdef USE_CCAM //FORMSHOW(CCAM020M); #endif } //--------------------------------------------------------------------------- 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 == NULL) { continue; } 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::FormDblClick(TObject *Sender) { NTST0000MClick((TObject*)NTST0000M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVMSR000RClick(TObject *Sender) { ExecuteItsProgram("TFrmVmsOprMain", "VmsOprMain.exe", "VMS°ü¸®"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVMS0400MClick(TObject *Sender) { ExecuteItsProgram("TFrmVmsCamViewer", "VmsCamViewer.exe", "VMS¿µ»ó¸ð´ÏÅ͸µ"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RVMSH100MClick(TObject *Sender) { ExecuteItsProgram("TFrmVmsLogStts", "VmsLogStts.exe", "VMS»óÅÂÀÌ·Â"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RVMSH200MClick(TObject *Sender) { ExecuteItsProgram("TFrmVmsLogDspl", "VmsLogDspl.exe", "VMSÇ¥ÃâÀÌ·Â"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RVMSH300MClick(TObject *Sender) { ExecuteItsProgram("TFrmVmsLogCtrl", "VmsLogCtrl.exe", "VMSÁ¦¾îÀÌ·Â"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCTV100MClick(TObject *Sender) { //ExecuteItsProgram("TfrmCctv", "CctvMgr.exe", "CCTV°ü¸®"); #ifdef USE_CCTV FORMSHOW(CTVM100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCTV200MClick(TObject *Sender) { #ifdef USE_CCTV FORMSHOW(CTVM200M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCTVR10RClick(TObject *Sender) { ExecuteItsProgram("TfrmCptnMgr", "CctvOpt.exe", "CCTVÁ¦¾î"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::RCCTVH10MClick(TObject *Sender) { ExecuteItsProgram("TFrmCctvLogStts", "CctvLogStts.exe", "CCTV»óÅÂÀÌ·Â"); //ExecuteItsProgram("TfrmCctvLog", "CctvLog.exe", "CCTV»óÅÂÀÌ·Â"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCCTV010MClick(TObject *Sender) { #ifdef USE_CCTV FORMSHOW(CTVM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWCAM020MClick(TObject *Sender) { ExecuteItsProgram("TFrmWebCamCtrl", "WebCamCtrl.exe", "À¥Ä«¸Þ¶óÁ¦¾î"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NWCAMR10RClick(TObject *Sender) { ExecuteItsProgram("TFrmWebCamViewer", "WebCamViewer.exe", "À¥Ä«¸Þ¶ó¿µ»ó¸ð´ÏÅ͸µ"); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NVMSM010MClick(TObject *Sender) { #ifdef USE_VMS FORMSHOW(VMSM010M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NIFM0070MClick(TObject *Sender) { FORMSHOW(IFM0070M); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSM100MClick(TObject *Sender) { //±³Â÷·Î±³Åë·® °ü¸® #ifdef USE_CROSS FORMSHOW(CRSM100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSM200MClick(TObject *Sender) { //±³Â÷·Î±³Åë·® CCTV°ü¸® #ifdef USE_CROSS FORMSHOW(CRSM200M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSM000MClick(TObject *Sender) { //±³Â÷·Î±³Åë·® CCTV»óÅ ¸ð´ÏÅ͸µ #ifdef USE_CROSS FORMSHOW(CRSM000M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSH100MClick(TObject *Sender) { #ifdef USE_CROSS ExecuteItsProgram("TFrmCrsTrafVolLog", "CrsTrafVolLog.exe", "±³Â÷·Î±³Åë·®Åë°èÀÌ·Â"); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSH200MClick(TObject *Sender) { #ifdef USE_CROSS ExecuteItsProgram("TFrmCrsTrafVolDir", "CrsTrafVolDir.exe", "±³Â÷·Î±³Åë·®¹æÇ⺰Åë°è"); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NCRSE000MClick(TObject *Sender) { #ifdef USE_CROSS String sExeName = ""; String sClsName = ""; String sOptions = ""; ReadConfigInfo(g_AppCfg.sConfigFile, "CROSS_VOL", "PATH", sExeName); ReadConfigInfo(g_AppCfg.sConfigFile, "CROSS_VOL", "CLASS", sClsName); ReadConfigInfo(g_AppCfg.sConfigFile, "CROSS_VOL", "OPTIONS", sOptions); if (!FileExists(sExeName)) { ShowMessage(sExeName); Application->MessageBox(L"±³Â÷·Î±³Åë·® ÇÁ·Î±×·¥À» ãÀ»¼ö ¾ø½À´Ï´Ù.\r\nȯ°æ¼³Á¤ÆÄÀÏ¿¡¼­ ¼³Á¤Á¤º¸¸¦ È®ÀÎÇϽʽÿä.", L"±³Â÷·Î±³Åë·® ÇÁ·Î±×·¥ ½ÇÇà ¿À·ù", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } HWND hExeForm = FindWindow(sClsName.c_str(), NULL); if (hExeForm) { SetWindowPos(hExeForm, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); ShowWindow(hExeForm, SW_RESTORE); //SetForegroundWindow(hExeForm); } else { ShellExecute(Handle, NULL, sExeName.c_str(), sOptions.c_str(), NULL, SW_SHOWNORMAL); } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSP100MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSP100M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSP200MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSP200M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSP300MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSP300M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSPH10MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSPH10M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSPH20MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSPH20M); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::NEVSP000MClick(TObject *Sender) { #ifdef USE_EVSP FORMSHOW(EVSP000M); #endif } //---------------------------------------------------------------------------