private void loadMainLineVD(DevcieManager devMgr)
        {
            foreach (DeviceBaseWrapper dev in devMgr.getDataDeviceEnum())
            {
                try
                {
                    if (dev is VDDeviceWrapper)
                    {
                        VDDeviceWrapper vddev = dev as VDDeviceWrapper;
                        if (dev.location == "F" || dev.location == "H" || dev.location == "T")
                        {
                            //  dictVD.Add(dev.deviceName,  vddev);
                            if (!CanTriggerCSLSEvent(vddev))
                                continue;
                            vddev.OnCSLSControlEvent += new CSLSControlEventHandler(vddev_OnCSLSControlEvent);

                        }
                    }
                }
                catch (Exception ex)
                {
                    ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace);
                }

            }
            ConsoleServer.WriteLine("速限管理啟動完成!");
        }
 public CSLSControlEventManager(DevcieManager devMgr)
 {
     loadMainLineVD(devMgr);
 }
示例#3
0
文件: Matrix.cs 项目: ufjl0683/Center
        public void PostInitial()
        {
            //I_MFCC_VD robj =(I_MFCC_VD) RemoteBuilder.GetRemoteObj(typeof(I_MFCC_VD),
               //    RemoteBuilder.getRemoteUri("192.168.22.89",(int) RemotingPortEnum.MFCC_VD1, "MFCC_VD"));

               //robj.setRealTime("VD231", 1, 0, 1);
               ConsoleServer.WriteLine("設備管理啟動中......!");
               device_mgr = new Host.TC.DevcieManager(mfcc_mgr);
               ConsoleServer.WriteLine("設備管理啟動完成!");
               line_mgr = new LineManager();
               output_device_fetch_mgr = new OutputDevicFetchManager(this.device_mgr);

               FiveMinTask = new FiveMinTask();

               OneMinTask = new OneMinTask();

               avimgr = new Host.AVI.AVIManager();
               etcmgr = new Host.ETC.ETC_Manager();

               tmr1min.Start();
               System.Threading.Thread.Sleep(10000);

               getinitVd5minData();

               event_mgr = new Host.Event.EventManager();

               moving_construct_mgr = new Host.Event.MovingConstruct.MovingConstructManager();
               jammgr = new Host.Event.Jam.JamManager(device_mgr);
               tem_mgr = new Host.Event.TEM.TemManager();
               route_mgr = new Host.Event.Redirect.RouteRedirectManager();

            #if DEBUG
               //    RemoteInterface.HC.FetchDeviceData[] d = output_device_fetch_mgr.Fetch(new string[] { "CMS" }, "N1",150000, 174200);
               //    jammgr.DoVD_InteropData("VD-N6-E-17.6", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));
               //  jammgr.DoVD_InteropData( "VD-N6-E-18.0", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));

            #endif

               weather_mgr = new Host.Event.Weather.WeatherManager();
               iid_mgr = new Host.Event.IID.IIDManager();
        }
示例#4
0
        private void loadRampVD(DevcieManager devMg)
        {
            OdbcConnection cn = new OdbcConnection(Global.Db2ConnectionString);
            #if !DEBUG
               OdbcCommand cmd =new OdbcCommand( "select degree_vd,location_r,direction,lineid,divisionid,divisionname,mileage,degree_lane,g_code_id,RGSDeviceName from vwrampDegree where location_r='O'  or location_r='I' ");
            #else
               OdbcCommand cmd = new OdbcCommand("select degree_vd,location_r,direction,lineid,divisionid,divisionname,mileage,degree_lane,g_code_id,RGSDeviceName from vwrampDegree where location_r='O' ");

            #endif

               try
               {
               cn.Open();
               cmd.Connection = cn;
               OdbcDataReader rd = cmd.ExecuteReader();
               while (rd.Read())
               {
                   try
                   {
                       string devname, location_r, lineid, divisionid, divisionname, divisiontype, direction,rgs_devicename;
                       int mile_m,laneid,g_code_id;
                       devname = rd[0].ToString();
                       location_r = rd[1].ToString();
                       direction = rd[2].ToString();
                       lineid = rd[3].ToString();
                       divisionid = rd[4].ToString();
                       divisionname = rd[5].ToString();
                     //  divisiontype = rd[6].ToString();
                       mile_m = System.Convert.ToInt32(rd[6]);
                       laneid = System.Convert.ToInt32(rd[7]);

                       if (!rd.IsDBNull(8))
                           g_code_id = System.Convert.ToInt32(rd[8]);  // for MetroNetwork
                       else
                           g_code_id = -1;

                       if (!rd.IsDBNull(9))
                           rgs_devicename = rd[9].ToString();
                       else
                           rgs_devicename = null;

                       RampVDData rvddata = new RampVDData(devname, lineid, direction, divisionid, divisionname, location_r,devMg[devname] as TC.VDDeviceWrapper,mile_m,laneid,g_code_id,rgs_devicename);

                       this.rampVDDataList.Add(rvddata);

                       rvddata.OnEvent += new EventHandler(rvddata_OnEvent);

                   }
                   catch (Exception ex1)
                   {
                       ConsoleServer.WriteLine(ex1.Message + "," + ex1.StackTrace);
                   }

               }
               }
               catch (Exception ex)
               {
               ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace);
               }
               finally
               {
               cn.Close();
               }
        }
示例#5
0
        private void loadMainLineVD(DevcieManager devMgr)
        {
            foreach (DeviceBaseWrapper dev in devMgr.getDataDeviceEnum())
               {
               if (dev is VDDeviceWrapper)
               {
                   if (!lines.Contains(dev.lineid + "-" + dev.direction))
                   {
                       lines.Add(dev.lineid + "-" + dev.direction, ArrayList.Synchronized(new System.Collections.ArrayList()));
                       lineJamRanges.Add(dev.lineid + "-" + dev.direction, ArrayList.Synchronized(new System.Collections.ArrayList()));
                       lineDegree2and1JamRanges.Add(dev.lineid + "-" + dev.direction, ArrayList.Synchronized(new System.Collections.ArrayList()));
                   }

                   if (dev.location == "F" || dev.location == "H" || dev.location == "T")
                   {
                       htVDDevices.Add(dev.deviceName, dev);
                        ((ArrayList)lines[dev.lineid + "-" + dev.direction]).Add(dev);
                   }

               }
               }

               IDictionaryEnumerator ie = lines.GetEnumerator();  //取得所有的路線
               while (ie.MoveNext())
               {
               ((ArrayList)ie.Value).Sort();   //排序所有的車輛偵測器

               ArrayList vdlist = (ArrayList)ie.Value;
               if (vdlist.Count == 1)
                   (vdlist[0] as DeviceBaseWrapper).AryInx = 0;

               // 填上前後車輛偵測器鏈結
               if (vdlist.Count > 1)
                   for (int i = 0; i < vdlist.Count; i++)
                   {
                       ((DeviceBaseWrapper)vdlist[i]).AryInx = i;

                       if (i == 0)
                           ((DeviceBaseWrapper)vdlist[i]).NextDevice = vdlist[i + 1] as DeviceBaseWrapper;
                       else if (i == vdlist.Count - 1)
                           ((DeviceBaseWrapper)vdlist[i]).PreDevice = vdlist[i - 1] as DeviceBaseWrapper;
                       else
                       {
                           ((DeviceBaseWrapper)vdlist[i]).PreDevice = vdlist[i - 1] as DeviceBaseWrapper;
                           ((DeviceBaseWrapper)vdlist[i]).NextDevice = vdlist[i + 1] as DeviceBaseWrapper;
                       }

                   }

               }

               // oneMinTmr.Elapsed += new System.Timers.ElapsedEventHandler(oneMinTmr_Elapsed);
               // oneMinTmr.Start();
               oneMinTmr = new System.Threading.Timer(new System.Threading.TimerCallback(oneMinTmr_Elapsed));
               oneMinTmr.Change(0, 60 * 1000);

               ConsoleServer.WriteLine("壅塞管理啟動完成!");
        }
示例#6
0
 public JamManager(DevcieManager devMgr)
 {
     loadMainLineVD( devMgr);
        loadRampVD( devMgr);
 }
示例#7
0
文件: Matrix.cs 项目: ufjl0683/Center
        public void PostInitial()
        {
            //I_MFCC_VD robj =(I_MFCC_VD) RemoteBuilder.GetRemoteObj(typeof(I_MFCC_VD),
               //    RemoteBuilder.getRemoteUri("192.168.22.89",(int) RemotingPortEnum.MFCC_VD1, "MFCC_VD"));

               //robj.setRealTime("VD231", 1, 0, 1);
               ConsoleServer.WriteLine("設備管理啟動中......!");
               device_mgr = new Host.TC.DevcieManager(mfcc_mgr);
               ConsoleServer.WriteLine("設備管理啟動完成!");

               vd5minavg_mgr = new FiveMinVDAVGDataManager();
            #if DEBUG
               //new HC_FWIS_Robj().RGS_setManualGenericDisplay("RGS-N6-W-0.4",
               // new RGS_GenericDisplay_Data(2, 0, new RGS_Generic_ICON_Data[0],
               //     new RGS_Generic_Message_Data[]{new  RGS_Generic_Message_Data("系統測試",
               //       new System.Drawing.Color[]{System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red},new System.Drawing.Color[]{System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black},0,0)}
               //     , new RGS_Generic_Section_Data[0]),false);
               //(this.device_mgr["RGS-N6-W-0.4"].getRemoteObj() as I_MFCC_RGS).setGenericDisplay("RGS-N6-W-0.4",
               // new RGS_GenericDisplay_Data(2, 0, new RGS_Generic_ICON_Data[0],
               //     new RGS_Generic_Message_Data[]{new  RGS_Generic_Message_Data("系統測試",
               //       new System.Drawing.Color[]{System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red},new System.Drawing.Color[]{System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black},0,0)}
               //     , new RGS_Generic_Section_Data[0]));
               //    RemoteInterface.HC.FetchDeviceData[] d = output_device_fetch_mgr.Fetch(new string[] { "CMS" }, "N1",150000, 174200);
               //    jammgr.DoVD_InteropData("VD-N6-E-17.6", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));
               //  jammgr.DoVD_InteropData( "VD-N6-E-18.0", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));
            #endif
               this.rgs_polygon_section_mapping = new RGS_PolygonSectionMapping();
               line_mgr = new LineManager();

               output_device_fetch_mgr = new OutputDevicFetchManager(this.device_mgr);

               //    output_device_fetch_mgr.Fetch(new string[] { "RMS" }, "N6" , "W", 35000, 1, 0, false);

            #if !DEBUG
               FiveMinTask = new FiveMinTask();

               //    OneMinTask = new OneMinTask();
              // avimgr = new Host.AVI.AVIManager();
             //  etcmgr = new Host.ETC.ETC_Manager();  //2014-5-14 停用
            #endif
               etcmgr = new Host.ETC.ETC_Manager();
            OneMinTask = new OneMinTask();
               avimgr = new Host.AVI.AVIManager();
               tmr1min.Start();
               System.Threading.Thread.Sleep(10000);

            #if DEBUG
               //{
               //    string ret = "";
               //    try
               //    {
               //        ret = "FiveMinQueueCnt:" + Program.matrix.vd5minavg_mgr.VDFiveMinQueueCnt;
               //        foreach (DeviceBaseWrapper dev in Program.matrix.device_mgr.getDataDeviceEnum())
               //        {
               //            if (dev is VDDeviceWrapper)
               //            {
               //                VDDeviceWrapper vddev = dev as VDDeviceWrapper;
               //                ret += vddev.ToString() + "\r\n";

               //            }
               //        }

               //     Console.WriteLine(ret);
               //    }
               //    catch (Exception ex)
               //    {
               //        throw new RemoteException(ex.Message + "," + ex.StackTrace);
               //    }
               //}
               //int vol=0,spd=0,occ=0,level=0,ttime=0,lttime=0,httime=0;
               //this.line_mgr["N3"].getAllTrafficData("N", 224700, 231400, ref vol, ref spd, ref occ, ref level, ref ttime, ref lttime, ref httime);
            #endif
               event_mgr = new Host.Event.EventManager();

            #if DEBUG

            #else
               cctvmgr = new CCTV.CCTV_Manager();

               moving_construct_mgr = new Host.Event.MovingConstruct.MovingConstructManager();
              // moving_construct_mgr.setEvent(1,"test",DateTime.Now,"N1","S",15000,16000,16,"0001","TEST","Y" );
               //moving_construct_mgr.setEvent(1, "test", DateTime.Now, "N1", "S", 16000, 17000, 16, "0001", "TEST", "Y");
             //  moving_construct_mgr.CloseMovingConstructEvent(1);
            #endif
               jammgr = new Host.Event.Jam.JamManager(device_mgr);
            #if DEBUG
               //Program.initRemoteInterface();
               //Console.ReadKey();
               route_mgr74 = new Host.Event.Redirect74.RouteRedirectManagerT74();
               route_mgr = new Host.Event.Redirect.RouteRedirectManager();
               metro_network_mgr = new Event.MetroNetwork.MetroNetworkManager();
            #endif
            #if !DEBUG
               tem_mgr = new Host.Event.TEM.TemManager();

               rampctl_mgr = new Event.RampControl.RampControl_Manager();
               metro_network_mgr = new Event.MetroNetwork.MetroNetworkManager();
               route_mgr74 = new Host.Event.Redirect74.RouteRedirectManagerT74();
               route_mgr = new Host.Event.Redirect.RouteRedirectManager();
               ltr_mgr = new Event.LTR.LTR_Manager();

               weather_mgr = new Host.Event.Weather.WeatherManager();

               iid_mgr = new Host.Event.IID.IIDManager();
               svcarea_mgr = new Event.ServiceArea.ServiceAreaManager();
               csls_mgr = new Event.CSLSControl.CSLSControlEventManager(device_mgr);
            #endif
               Program.initRemoteInterface();
               try
               {
               WebService.SendSMS("0988163835", "host is online!");
               }
               catch(Exception ex) {

               Console.WriteLine(ex.Message + "," + ex.StackTrace);
               ;}
            #if !DEBUG
               try
               {
               WebService.SendSMS("0932500190", "host is online!");
               }
               catch { ;}
               try
               {
               WebService.SendSMS("0919712057", "host is online!");
               }
               catch { ;}
            #endif

            #if DEBUG
               //RemoteInterface.HC.I_HC_Comm rrobj = (RemoteInterface.HC.I_HC_Comm)RemoteInterface.RemoteBuilder.GetRemoteObj(typeof(RemoteInterface.HC.I_HC_Comm),
               //    RemoteInterface.RemoteBuilder.getRemoteUri("10.21.50.224", (int)RemoteInterface.RemotingPortEnum.HOST_FIWS, "Comm"));
               //int pr = 0;
               // rrobj.GetCurrentOutput("CMS-N3-N-123.6", ref pr);
               //(this.device_mgr["RGS-N6-W-0.4"].getRemoteObj() as I_MFCC_RGS).setGenericDisplay("RGS-N6-W-0.4",
               // new RGS_GenericDisplay_Data(2, 0, new RGS_Generic_ICON_Data[0],
               //     new RGS_Generic_Message_Data[]{new  RGS_Generic_Message_Data("系統測試",
               //       new System.Drawing.Color[]{System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red,System.Drawing.Color.Red},new System.Drawing.Color[]{System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black,System.Drawing.Color.Black},0,0)}
               //     , new RGS_Generic_Section_Data[0]));
               //    RemoteInterface.HC.FetchDeviceData[] d = output_device_fetch_mgr.Fetch(new string[] { "CMS" }, "N1",150000, 174200);
               //    jammgr.DoVD_InteropData("VD-N6-E-17.6", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));
               //  jammgr.DoVD_InteropData( "VD-N6-E-18.0", System.DateTime.Now.AddSeconds(-System.DateTime.Now.Second));
            #else
               apid_mgr = new Event.APID.APIDManager();
            #endif
        }