//--------------------------------------------------------------------------- #ifndef CDSVmsCtlrFH #define CDSVmsCtlrFH //--------------------------------------------------------------------------- #include #include #include #include #include "ITSLibF.h" #include "ITSDbF.h" #include "CDSObjectF.h" //--------------------------------------------------------------------------- #include "CenterCommF.h" //--------------------------------------------------------------------------- typedef enum enVmsState { state_normal = 0, state_error, state_module, } EN_VMS_STATE; //--------------------------------------------------------------------------- typedef enum _e_schedule_mode { enScheduleAuto, enScheduleFix, enScheduleBase, enScheduleMax, } e_schedule_mode; //--------------------------------------------------------------------------- typedef enum _e_form_type { eFormTp_traf_1 = 11, // ¼ÒÅë»óȲ(1´Ü) eFormTp_traf_2 = 12, // ¼ÒÅë»óȲ(2´Ü) eFormTp_traf_3 = 13, // ¼ÒÅë»óȲ(3´Ü) eFormTp_traf_4 = 14, // ¼ÒÅë»óȲ(4´Ü) eFormtp_figure = 15, // ¼ÒÅë»óȲ(µµÇü½Ä¹è°æ¼ÒÅëÁ¤º¸) eFormTp_congest = 16, // Á¤Ã¼¼ÒÅë»óȲ eFormTp_incident = 20, // µ¹¹ß¹®¾È eFormTp_gongsa = 30, // °ø»ç/Çà»ç¹®¾È eFormTp_hongbo = 40, // È«º¸¹®¾È eFormTp_deture = 50, // ¿ìȸµµ·Î eFormTp_safe = 60, // Àç³­¾ÈÀü eFormTp_video = 70, // µ¿¿µ»ó eFormTp_stream = 80, // ½ºÆ®¸®¹Ö¿µ»ó eFormTp_atmp = 90, // ´ë±âȯ°æ eFormTp_park = 91, // ÁÖÂ÷Á¤º¸ } e_form_type; typedef enum _e_schedule_type { eSchTp_traffic = 0, //0:±³Åë, eSchTp_incident = 1, //1:µ¹¹ß, eSchTp_gongsa = 2, //2:°ø»çÇà»ç, eSchTp_hongbo = 3, //3:È«º¸, eSchTp_deture = 4, //4:¿ìȸ, eSchTp_congest = 5, //5:Á¤Ã¼, eSchTp_safe = 6, //6:¾ÈÀü, eSchTp_video = 7, //7:µ¿¿µ»ó, eSchTp_stream = 8, //8:½ºÆ®¸®¹Ö¿µ»ó eSchTp_atmp = 9, //9:´ë±âȯ°æ eSchTp_park = 10, //10:ÁÖÂ÷Á¤º¸ eSchTp_max, } e_schedule_type; //--------------------------------------------------------------------------- typedef struct tagScheduleUsage { int Total[eSchTp_max]; int Use[eSchTp_max]; } SCHEDULE_USAGE, *PSCHEDULE_USAGE; //--------------------------------------------------------------------------- class TVmsIfscRltn { public: TVmsIfscRltn(); ~TVmsIfscRltn(); public: String VMS_CTLR_NMBR; //NUMBER(10) N VMS Á¦¾î±â ¹øÈ£ int VMS_IFSC_ID; //NUMBER(10) N VMS Á¤º¸Á¦°ø±¸°£ ID int DSPL_PRRT; //NUMBER(2) Y Ç¥Ãâ ¿ì¼±¼øÀ§ String CNGS_CNFM_YN; //CHAR(1) Y 'Y' Á¤Ã¼Æû Á¤Ã¼ÆÇÁ¤ ¿©ºÎ int CNGS_CNFM_SPED; //NUMBER(2) Y 5 Á¤Ã¼Æû Á¤Ã¼ÆÇÁ¤ ¼Óµµ }; //--------------------------------------------------------------------------- typedef struct tagVmsPhase { int DSPL_HH; //Ç¥Ãâ½Ã°£ String DNLD_YN; //´Ù¿î·Îµå¼º°ø¿©ºÎ String DSPL_CD; //Ç¥Ãâ¹æ¹ý int VMS_SCH_FORM_TYPE; String VMS_DSPL_MSG_TXT; Graphics::TBitmap *pVmsBmp; //Ç¥Ãâ¸Þ½ÃÁö(Bitmap À̹ÌÁö) } VMS_PHASE; class TVmsMsg { public: TVmsMsg(); ~TVmsMsg(); public: void Init(); int Total; //Àüü¸Þ½ÃÁö °¹¼ö int Curr; //ÇöÀçÇ¥Ãâ°¹¼ö(»ç¿ë¾ÈÇÔ) String OFFER_DT; //Á¦°ø½Ã°¢ bool OFFER_YN; //Á¤½ÃÁ¦°ø¿©ºÎ(true:Á¤½ÃÁ¦°ø,false:5ºÐÀÌ»óÀÌÀüÁ¦°øµ¥ÀÌÅÍ) VMS_PHASE PHASE[INT_VMS_MAX_FORM]; }; //--------------------------------------------------------------------------- class TVmsCtlr : public TCDSObject { public: TVmsCtlr(); ~TVmsCtlr(); public: String WEB_CMRA_IP; // N VARCHAR2(20) Y À¥ Ä«¸Þ¶ó ¾ÆÀÌÇÇ String WEB_CMRA_PORT; // N NUMBER(5) Y À¥Ä«¸Þ¶ó Æ÷Æ® String WEB_CMRA_ID; // N VARCHAR2(20) Y À¥Ä«¸Þ¶ó ID String WEB_CMRA_PWD; // N VARCHAR2(20) Y À¥Ä«¸Þ¶ó ºñ¹Ð¹øÈ£ String STRM_SESN_NM; // N VARCHAR2(200) Y ½ºÆ®¸®¹Ö ¼¼¼Ç ¸í String OPER_MODE; // N VARCHAR2(7) Y 'A' ¿î¿µ ¸ðµå int VMS_MAX_PHSE_NUM; // N NUMBER(2) Y 14 VMS ÃÖ´ë Ç¥Ãâ¸é °³¼ö int DEF_PHSE_CHNG_CYCL; // N NUMBER(3) Y 5 ±âº»¸Þ½ÃÁöÁÖ±â String PANL_ON_TIME; // N VARCHAR2(4) Y '0400' Àü±¤ÆÇ ON TIME String PANL_OFF_TIME; // N VARCHAR2(4) Y '0200' Àü±¤ÆÇ OFF TIME int PANL_PWER_MODE; // N NUMBER(3) Y 2 Àü±¤ÆÇ Àü¿ø ¸ðµå(0x00:²¨Áü,0x01:ÄÑÁü,0x02:ÀÚµ¿,0x09:¾Ë¼ö¾øÀ½) int FAN_MODE; // N NUMBER(3) Y 2 FAN µ¿ÀÛ¸ðµå(0x00:²¨Áü,0x01:ÄÑÁü,0x02:ÀÚµ¿,0x09:¾Ë¼ö¾øÀ½) int FAN_RUN_TMPR; // N NUMBER(3) Y 30 ÆÒ µ¿ÀÛ ¿Âµµ int HETR_MODE; // N NUMBER(3) Y 2 È÷ÅÍ µ¿ÀÛ¸ðµå(0x00:²¨Áü,0x01:ÄÑÁü,0x02:ÀÚµ¿,0x09:¾Ë¼ö¾øÀ½) int HETR_RUN_TMPR; // N NUMBER(3) Y 0 È÷ÅÍ µ¿ÀÛ ¿Âµµ int BRGH_MODE; // N NUMBER(3) Y 2 ÈÖµµ ¸ðµå(0x00:ÁÖ°£,0x01:¾ß°£,0x00:ÀÚµ¿,0x09:¾Ë¼ö¾øÀ½) int BRGH_CURR_STEP; // N NUMBER(3) Y 40 ÈÖµµ ÇöÀç ´Ü°è(0~100) int BRGH_WEEK_STEP; // N NUMBER(3) Y 64 ÈÖµµ ÁÖ°£ ´Ü°è(0~100) int BRGH_NGHT_STEP; // N NUMBER(3) Y 48 ÈÖµµ ¾ß°£ ´Ü°è(0~100) int MODL_ERR_RATE; // N NUMBER(3) Y 10 VMS ¸ðµâ ¿À·ù À² int CMNC_FAIL_RATE; // N NUMBER(3) Y 60 VMS Åë½Å ¿À·ù ±âº» °ª String WEB_CMRA_CMPY; // N VARCHAR2(50) Y À¥Ä«¸Þ¶óÁ¦Á¶»ç(»ï¼ºÄ«¸Þ¶ó'Samsung') String WEB_CMRA_MDL; // N VARCHAR2(126) Y À¥Ä«¸Þ¶ó¸ðµ¨ String ParamResTime; String VMS_TYPE_NM; //Å©±â int WIDTH, HEIGHT; int ROW_NUM, COL_NUM; int MODL_ROW_NUM, MODL_COL_NUM; int POWR_ROW_NUM, POWR_COL_NUM; SCHEDULE_USAGE FormCnt[enScheduleMax]; TVmsMsg *VmsMsg; INT_VMS_STATE STATE; int RunState; public: void InitFormCount() { for (int ii = 0; ii < eSchTp_max; ii++) { for (int jj = 0; jj < enScheduleMax; jj++) { FormCnt[jj].Total[ii] = 0; FormCnt[jj].Use[ii] = 0; } } }; void CheckRunState(); TItsMap FIfscRltn; public: __property String VMS_CTLR_NMBR = { read = CTLR_NMBR, write = CTLR_NMBR }; __property String VMS_CTLR_ID = { read = CTLR_ID, write = CTLR_ID }; __property String VMS_NM = { read = NAME, write = NAME }; __property String VMS_CTLR_IP = { read = CTLR_IP, write = CTLR_IP }; __property int VMS_CTLR_PORT = { read = CTLR_PORT, write = CTLR_PORT }; __property int VMS_CTLR_LOCAL_NO = { read = CTLR_LOCAL_NO, write = CTLR_LOCAL_NO }; __property String VMS_TYPE_CD = { read = TYPE_CD, write = TYPE_CD }; }; //--------------------------------------------------------------------------- typedef std::map::iterator VmsIterator; //--------------------------------------------------------------------------- class TVmsSize { public: // User declarations String TypeCd; String TypeNm; int Width; int Height; public: // User declarations TVmsSize(); }; //--------------------------------------------------------------------------- class TVmsCtlrManager { public: TVmsCtlrManager(); ~TVmsCtlrManager(); private: TStream *FImgStream; public: TItsMap FVmsSize; TItsMap FLists; void InitFormCount(); int FMinWidth, FMinHeight; int FMaxWidth, FMaxHeight; public: bool LoadVmsSize(TADOConnection *ADbConn=NULL); bool LoadFromDb(TADOConnection *ADbConn=NULL); bool LoadStatusFromDb(TADOConnection *ADbConn=NULL); bool DeleteVms(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool InsertVms(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool UpdateVms(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool MergeVms(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool MergeFcltInfo(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool GetNextVmsId(int &ANmbr, int &AId, TADOConnection *ADbConn=NULL); bool UpdateCtlrInfo(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool UpdateIfscCngsSpeedInfo(int ACngsSpd, TADOConnection *ADbConn=NULL); bool LoadIfscRltn(TADOConnection *ADbConn=NULL); bool SaveIfscRltn(TVmsCtlr *AObj, TADOConnection *ADbConn=NULL); bool LoadVmsMsg(TADOConnection *ADbConn=NULL); bool LoadVmsFormUsage(TADOConnection *ADbConn=NULL); bool InsVmsControlHs(String ACtlDt, String AVmsNmbr, String ACtlType, String ACtlVal, String ACtlRes, String AUserId, TADOConnection *ADbConn=NULL); }; //--------------------------------------------------------------------------- extern TVmsCtlrManager *VmsCtlrManager; //--------------------------------------------------------------------------- void VmsInitStatus(INT_VMS_STATE *AState); int VmsGetFormTypeIdx(int AFormType); //--------------------------------------------------------------------------- #endif