예제 #1
0
        public void SetDbChangeNotify(DbChangeNotifyConst notifyConst,params object[] args)
        {
            DeviceBaseWrapper dev;
            try
            {
                if (dictPerformance.ContainsKey("SetDbChangeNotify"))
                {
                    dictPerformance["SetDbChangeNotify"].CallCount++;
                    dictPerformance["SetDbChangeNotify"].InCount++;
                }

                switch (notifyConst)
                {
                    case DbChangeNotifyConst.ETAG_Life_Minutes_Change:
                        if (args==null||args.Length != 1)
                              throw new Exception("引數錯誤");
                        int minute = System.Convert.ToInt32(args[0]);
                        Host.TC.AVIDeviceWrapper.ETAGLiveTime = minute;
                        break;
                    case DbChangeNotifyConst.JamEvalTable:
                        Program.matrix.vd_jam_eval.LoatTable();
                        break;
                    case DbChangeNotifyConst.AID_PARAMETER_Change:
                        if (args != null && args[0] != null)
                        {
                            dev = Program.matrix.getDeviceWrapper(args[0].ToString());
                            AID.AIDobject.LoadParameters();
                            VDDeviceWrapper vddev = dev as VDDeviceWrapper;
                            vddev.NotifyAidObjSettingChange();
                        }
                        break;
                    case DbChangeNotifyConst.TravelSettingData:
                        dev = Program.matrix.getDeviceWrapper(args[0].ToString());
                        if (dev is RGSDeviceWrapper)
                        {
                            ((RGSDeviceWrapper)dev).loadTravelSetting();
                            try
                            {
                                ((RGSDeviceWrapper)dev).DisplayTravelTime();
                            }
                            catch { ;}
                            ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                        }
                        else if (dev is CMSDeviceWrapper)
                        {
                            ((CMSDeviceWrapper)dev).loadTravelSetting();
                            try
                            {
                                ((CMSDeviceWrapper)dev).DisplayTravelTime();
                            }
                            catch { ;}
                            ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                        }
                        else if (dev is TTSDeviceWrapper)
                        {
                            ((TTSDeviceWrapper)dev).loadTravelSetting();
                            try
                            {
                                ((TTSDeviceWrapper)dev).DisplayTravelTime();
                            }
                            catch { ;}
                            ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                        }
                        else
                            throw new Exception("設備不支援旅行時間設定");

                        break;

                    case DbChangeNotifyConst.SectionPolygonMapingData:

                        Program.matrix.rgs_polygon_section_mapping.loadPolyGonSessionMapping();
                        if (args != null && args[0] != null)
                            ((OutPutDeviceBase)Program.matrix.getDeviceWrapper(args[0].ToString())).output();

                        break;
                    case DbChangeNotifyConst.UnitRoadVDMapping:  //args 0:lineid,1:dir ,2: km
                        if (args == null || args.Length != 3)
                            throw new Exception("引數錯誤");
                        Program.matrix.line_mgr[args[0].ToString()][args[1].ToString(), System.Convert.ToInt32(args[2])].load_vd_travel_mapping_table();
                        System.Console.WriteLine(Program.matrix.line_mgr[args[0].ToString()][args[1].ToString(), System.Convert.ToInt32(args[2])].unitid + "VD 對應表改變!");
                        break;

                    case DbChangeNotifyConst.AVISampleInterval:
                        if (args == null || args.Length != 1)
                            throw new Exception("引數錯誤");

                        Program.matrix.avimgr[args[0].ToString()].LoadAVISectionEffective();
                        break;
                    case DbChangeNotifyConst.ETC_IP_Change:
                        Program.matrix.etcmgr.loadETCIPs();
                        break;
                    case DbChangeNotifyConst.RediretRoute_Change:
                        Program.matrix.route_mgr.loadAllRoutSetting();
                        break;
                    case DbChangeNotifyConst.T74RediretRoute_Change:
                        Program.matrix.route_mgr74.loadAllRoutSetting();
                        break;
                    case DbChangeNotifyConst.Reload_Device_Loaction:
                        if (args == null || args.Length != 1)
                            throw new Exception("引數錯誤");
                        Program.matrix.device_mgr[args[0].ToString()].ReloadDeviceLocation();
                        break;
                    case DbChangeNotifyConst.Reload_Section_WeightTable:
                        if (args == null || args.Length != 3)
                            throw new Exception("引數錯誤");
                        Program.matrix.line_mgr[args[0].ToString()].getSection(args[1].ToString(), args[2].ToString()).LoadSectionTravelTimeWeight();
                        break;

                    case DbChangeNotifyConst.CMSRST_Manual_MessageChange:
                        if (args == null || args.Length != 2)
                            throw new Exception("引數錯誤");
                        //   Program.matrix.line_mgr[args[0].ToString()].getSection(args[1].ToString(),args[2].ToString()).LoadSectionTravelTimeWeight();
                        (Program.matrix.getDeviceWrapper(args[0].ToString()) as CMSRSTDeviceWrapper).loadManualTurnData(System.Convert.ToInt32(args[1]));
                        break;
                    case DbChangeNotifyConst.Enable_Weather_Change:
                        if (args == null || args.Length != 2)
                            throw new Exception("引數錯誤");

                        (Program.matrix.getDeviceWrapper(args[0].ToString()) as CMSDeviceWrapper).EnableWeather = args[1].ToString().Trim();
                        break;

                }
            }
            catch (Exception ex)
            {
                throw new RemoteException(ex.Message + ex.StackTrace);
            }
            finally
            {
                if (dictPerformance.ContainsKey("SetDbChangeNotify"))
                         dictPerformance["SetDbChangeNotify"].InCount--;
            }
        }
예제 #2
0
        public void SetDbChangeNotify(DbChangeNotifyConst notifyConst,params object[] args)
        {
            DeviceBaseWrapper dev;
              try{
                    switch (notifyConst)
                    {
                        case DbChangeNotifyConst.JamEvalTable:
                            Program.matrix.vd_jam_eval.LoatTable();
                            break;
                        case DbChangeNotifyConst.TravelSettingData:
                            dev = Program.matrix.getDeviceWrapper(args[0].ToString());
                            if (dev is RGSDeviceWrapper)
                            {
                                ((RGSDeviceWrapper)dev).loadTravelSetting();
                                ((RGSDeviceWrapper)dev).DisplayTravelTime();
                                ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                            }
                            else if (dev is CMSDeviceWrapper)
                            {
                                ((CMSDeviceWrapper)dev).loadTravelSetting();
                                ((CMSDeviceWrapper)dev).DisplayTravelTime();
                                ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                            }
                            else if (dev is TTSDeviceWrapper)
                            {
                                ((TTSDeviceWrapper)dev).loadTravelSetting();
                                ((TTSDeviceWrapper)dev).DisplayTravelTime();
                                ConsoleServer.WriteLine(args[0].ToString() + "旅行時間設定改變!");
                            }
                            else
                                throw new Exception("設備不支援旅行時間設定");

                            break;

                        case DbChangeNotifyConst.SectionPolygonMapingData:

                            Program.matrix.rgs_polygon_section_mapping.loadPolyGonSessionMapping();
                            if (args != null  && args[0]!=null)
                                ((OutPutDeviceBase)Program.matrix.getDeviceWrapper(args[0].ToString())).output();

                            break;
                        case DbChangeNotifyConst.UnitRoadVDMapping:  //args 0:lineid,1:dir ,2: km
                            if (args == null || args.Length != 3)
                                throw new Exception("引數錯誤");
                            Program.matrix.line_mgr[args[0].ToString()][args[1].ToString(),System.Convert.ToInt32(args[2])].load_vd_travel_mapping_table();
                            System.Console.WriteLine(Program.matrix.line_mgr[args[0].ToString()][args[1].ToString(),System.Convert.ToInt32(args[2])].unitid+"VD 對應表改變!");
                            break;

                        case DbChangeNotifyConst.AVISampleInterval:
                            if(args==null || args.Length!=1)
                                throw new Exception("引數錯誤");

                            Program.matrix.avimgr[args[0].ToString()].LoadAVISectionEffective();
                            break;
                        case  DbChangeNotifyConst.ETC_IP_Change:
                            Program.matrix.etcmgr.loadETCIPs();
                            break;
                        case DbChangeNotifyConst.RediretRoute_Change:
                            Program.matrix.route_mgr.loadAllRoutSetting();
                            break;
                    }
            } catch(Exception ex)
            {
                throw new RemoteException(ex.Message+ex.StackTrace);
            }
        }