public void StatesShouldChangeInCorrectOrderWithCorrectTimings()
        {
            new TestScheduler().With(
                scheduler =>
                {
                    scheduler.Start();

                    var trafficController = new TrafficController(scheduler);

                    trafficController.NextTrafficState.Should().Be(TrafficState.RedRed);

                    scheduler.AdvanceBy(TimeSpan.FromSeconds(1).Ticks);
                    trafficController.NextTrafficState.Should().Be(TrafficState.RedGreen);
                    scheduler.AdvanceBy(TimeSpan.FromSeconds(270).Ticks);

                    trafficController.NextTrafficState.Should().Be(TrafficState.RedYellow);
                    scheduler.AdvanceBy(TimeSpan.FromSeconds(30).Ticks);

                    trafficController.NextTrafficState.Should().Be(TrafficState.GreenRed);
                    scheduler.AdvanceBy(TimeSpan.FromSeconds(270).Ticks);

                    trafficController.NextTrafficState.Should().Be(TrafficState.YellowRed);
                    scheduler.AdvanceBy(TimeSpan.FromSeconds(30).Ticks);

                    trafficController.NextTrafficState.Should().Be(TrafficState.RedRed);
                });
        }
Example #2
0
        private static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .WriteTo.ColoredConsole()
                .WriteTo.RollingFile("TrafficController-{Date}.log")
                .CreateLogger();

            var trafficController = new TrafficController(Scheduler.Default);

            var intersection = new TrafficIntersection(trafficController);
            intersection.NorthLight.Subscribe(x => Log.Information("North is now {x}", x));
            intersection.SouthLight.Subscribe(x => Log.Information("South is now {x}", x));
            intersection.WestLight.Subscribe(x => Log.Information("West is now {x}", x));
            intersection.EastLight.Subscribe(x => Log.Information("East is now {x}", x));

            while (true)
            {
                Thread.Sleep(TimeSpan.FromSeconds(1));
            }
        }
Example #3
0
        public void CallToGetTrafficDataReturnsSuccess()
        {
            modelBuilder.Setup(s => s.GetTrafficAsync()).ReturnsAsync(TestHelper.GetTrafficModelData());
            var controller = new TrafficController(modelBuilder.Object);

            Assert.NotNull(controller);

            var response = controller.GetTraffic().Result;

            Assert.IsType <OkObjectResult>(response);
            modelBuilder.Verify(x => x.GetTrafficAsync(), Times.Once);

            var result = response as OkObjectResult;

            Assert.NotNull(result);
            var trafficData = result.Value as IList <TrafficModel>;

            Assert.NotNull(trafficData);
            Assert.Equal(3, trafficData.Count);
            Assert.Equal("Aurora", trafficData[0].City);
        }
Example #4
0
        /// <summary>
        /// Wpisz na formatkę otrzymaną wiadomość i uruchom popUpForm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="msgNow"></param>
        private void TrafficController_OnMessageReceived(TrafficController sender, Message msgNow)
        {
            if (Int32.Parse(nr) == msgNow.Number)
            {
                TypeText(trafficController.FindName(msgNow.Number.ToString()), msgNow.Text, msgNow.DateTime);


                if (CheckOpened(Text))
                {
                    //MessageBox.Show("OTWARTE OKNO");
                }
                else
                {
                    //MessageBox.Show("NIE OTWARTE OKNO");
                    //timer1.Enabled = true;
                    popUpForm.labelWho.Text  = trafficController.FindName(msgNow.Number.ToString());
                    popUpForm.labelWhat.Text = msgNow.Text;
                    popUpForm.ShowDialog();
                }
            }
        }
Example #5
0
        private static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.ColoredConsole()
                         .WriteTo.RollingFile("TrafficController-{Date}.log")
                         .CreateLogger();

            var trafficController = new TrafficController(Scheduler.Default);

            var intersection = new TrafficIntersection(trafficController);

            intersection.NorthLight.Subscribe(x => Log.Information("North is now {x}", x));
            intersection.SouthLight.Subscribe(x => Log.Information("South is now {x}", x));
            intersection.WestLight.Subscribe(x => Log.Information("West is now {x}", x));
            intersection.EastLight.Subscribe(x => Log.Information("East is now {x}", x));

            while (true)
            {
                Thread.Sleep(TimeSpan.FromSeconds(1));
            }
        }
Example #6
0
        public void TrafficLightsShouldChangeToExpected()
        {
            new TestScheduler().With(
                scheduler =>
            {
                scheduler.Start();

                var trafficController = new TrafficController(scheduler);

                // progress by one second past RedRed state to the RedGreen state.
                scheduler.AdvanceBy(TimeSpan.FromSeconds(1).Ticks);

                trafficController.NorthLight.Subscribe(state => { state.Should().Be(Light.Red); });

                trafficController.SouthLight.Subscribe(state => { state.Should().Be(Light.Red); });

                trafficController.WestLight.Subscribe(state => { state.Should().Be(Light.Green); });

                trafficController.EastLight.Subscribe(state => { state.Should().Be(Light.Green); });
            });
        }
        public void TrafficLightsShouldChangeToExpected()
        {
            new TestScheduler().With(
                scheduler =>
                {
                    scheduler.Start();

                    var trafficController = new TrafficController(scheduler);

                    // progress by one second past RedRed state to the RedGreen state.
                    scheduler.AdvanceBy(TimeSpan.FromSeconds(1).Ticks);

                    trafficController.NorthLight.Subscribe(state => { state.Should().Be(Light.Red); });

                    trafficController.SouthLight.Subscribe(state => { state.Should().Be(Light.Red); });

                    trafficController.WestLight.Subscribe(state => { state.Should().Be(Light.Green); });

                    trafficController.EastLight.Subscribe(state => { state.Should().Be(Light.Green); });
                });
        }
Example #8
0
        /// <summary>
        /// Wpisz na formatkę otrzymaną wiadomość i uruchom popUpForm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="msgNow"></param>
        private void TrafficController_OnMessageReceived(TrafficController sender, Message msgNow)
        {
            if (nr == msgNow.Number)
            {
                TypeText(trafficController.FindName(msgNow.Number.ToString()), msgNow.Text, msgNow.DateTime);

                //MessageBox.Show(msgNow.Text);

                /*if (CheckOpened(Text))
                 * {
                 *  //MessageBox.Show("OTWARTE OKNO");
                 * }
                 * else
                 * {
                 *  MessageBox.Show("NIE OTWARTE OKNO");
                 *  //timer1.Enabled = true;
                 *  popUpForm.labelWho.Text = trafficController.FindName(msgNow.Number.ToString());
                 *  popUpForm.labelWhat.Text = msgNow.Text;
                 *  popUpForm.ShowDialog();
                 * }*/
            }
        }
Example #9
0
    void Start()
    {
        AudioListener.volume = AudioVolume;
        GameTime.Instance.m_timeMultiplier = PlaybackSpeed;

        m_trafficController = FindObjectOfType <TrafficController>();
        m_roadGenerator     = FindObjectOfType <RoadGenerator>();
        m_controller        = FindObjectOfType <SplineFollowControl>();
        m_uiController      = FindObjectOfType <UIController>();

        m_roadGenerator.Regenerate();

        m_trafficController.Begin();
        m_controller.ControlBegin();

        // Spawn riders
        for (int riderIndex = 0; riderIndex < NumRiders; ++riderIndex)
        {
            Rider newRider = Instantiate(RiderPrefab.gameObject).GetComponent <Rider>();
            newRider.TeamId = 0;
            newRider.RiderStart();
            m_riders.Add(newRider);
            m_trafficController.RegisterFocalObject(newRider.gameObject);

            m_uiController.RegisterPlayerRider(newRider, false);
        }

        for (int riderIndex = 0; riderIndex < NumEnemyRiders; ++riderIndex)
        {
            Rider newRider = Instantiate(EnemyRiderPrefab.gameObject).GetComponent <Rider>();
            newRider.TeamId = 1;
            newRider.RiderStart();
            m_enemyRiders.Add(newRider);
            m_trafficController.RegisterFocalObject(newRider.gameObject);

            m_uiController.RegisterPlayerRider(newRider, true);
        }
    }
Example #10
0
        public void ConstructorSuccessful()
        {
            var controller = new TrafficController(modelBuilder.Object);

            Assert.NotNull(controller);
        }
Example #11
0
        public void ConstructorThrowsExceptionWhenNullModelBuilder()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => { _ = new TrafficController(null); });

            exception.Message.Contains("trafficModelBuilder");
        }
Example #12
0
        public bool Inital()
        {
            try
            {
                MoniCars.Clear();
                AllCar               = AGVClientDAccess.LoadAGVAchive();
                AllLands             = AGVClientDAccess.LoadLandByCondition("1=1");
                AllSegs              = AGVClientDAccess.LoadAllSegment();
                SimulatorVar.AllSegs = AllSegs;
                Stores               = AGVClientDAccess.LoadStorages();
                System               = AGVSimulationDAccess.LoadSystem();
                foreach (CarBaseStateInfo item in AllCar)
                {
                    CarMonitor moniCar = new CarMonitor();
                    moniCar.AgvID           = item.AgvID;
                    moniCar.CurrSite        = Convert.ToInt32(item.StandbyLandMark);
                    moniCar.StandbyLandMark = item.StandbyLandMark;
                    double ScalingRate    = 0;
                    string ScalingRateStr = System["ScalingRate"].ToString();
                    try
                    {
                        ScalingRate = Convert.ToDouble(ScalingRateStr);
                    }
                    catch
                    { }
                    if (ScalingRate > 0)
                    {
                        LandmarkInfo CurrLand = AllLands.FirstOrDefault(p => p.LandmarkCode == item.StandbyLandMark);
                        if (CurrLand != null)
                        {
                            moniCar.X = (float)(CurrLand.LandX * ScalingRate);
                            moniCar.Y = (float)(CurrLand.LandY * ScalingRate);
                        }
                    }
                    moniCar.ScalingRate = ScalingRate;
                    MoniCars.Add(moniCar);
                }
                if (Car_Ini != null)
                {
                    Car_Ini(MoniCars);
                }
                //Juncts.Clear();
                //IList<TrafficController> Traffics = AGVClientDAccess.GetTraffics();
                //foreach (TrafficController item in Traffics)
                //{
                //    JunctionInfo junct = new JunctionInfo();
                //    foreach (string s in item.EnterLandCode.Split(','))
                //    { junct.JunctionLandMarkCodes.Add(s); }
                //    junct.JunctionID = item.JunctionID;
                //    foreach (string s in item.JunctionLandMarkCodes.Split(','))
                //    { junct.JunctionLandMarkCodes.Add(s); }
                //    junct.RealseLandMarkCode = item.RealseLandMarkCode;
                //    Juncts.Add(junct);
                //}

                CountRoute = new RoutePlanData(AllSegs);
                Traffic    = new TrafficController(MoniCars, AllSegs, System, AllLands);
                timerStarBeStopedCar.Enabled   = true;
                timerStarBeStopedCar.AutoReset = true;
                timerStarBeStopedCar.Elapsed  += TimerStarBeStopedCar_Elapsed;
                timerFreshTask.Enabled         = true;
                timerFreshTask.AutoReset       = true;
                timerFreshTask.Elapsed        += TimerFreshTask_Elapsed;
                return(true);
            }
            catch (Exception ex)
            { return(false); throw ex; }
        }
Example #13
0
        public Dictionary <string, RealtimeModel> statistics()
        {
            List <getAllUser_Result> users = new List <getAllUser_Result>();
            digimarketEntities1      db    = new digimarketEntities1();

            using (var data = db.getAllUser())
            {
                users = data.ToList <getAllUser_Result>();
            }
            Dictionary <string, RealtimeModel> realtimeList = new Dictionary <string, RealtimeModel>();

            foreach (var user in users)
            {
                TrafficController trafficController = new TrafficController();
                //List < List < UserStats >> total_stats = new List<List<UserStats>>();

                RealtimeModel final = new RealtimeModel()
                {
                    total_traffic = 0, message = "BackEnd Task for" + user.fullname, country_stats = new List <CountryStat>()
                };

                List <get_user_traffic_Result> res = trafficController.get_all_sites(user.uid);
                foreach (var item in res)
                {
                    Authorization auth   = new Authorization(item.email);
                    var           result = auth.service.Data.Realtime.Get("ga:" + item.ga_id, "rt:activeUsers");
                    result.Dimensions = "rt:country";
                    result.Filters    = "ga:campaign=@" + user.username;
                    var response = result.Execute();
                    if (response.TotalResults != 0)
                    {
                        final.total_traffic = final.total_traffic + Int64.Parse(response.TotalsForAllResults["rt:activeUsers"]);
                        foreach (var row in response.Rows)
                        {
                            // UserStats temp = user_stats.Last<UserStats>();

                            CountryStat cStats = new CountryStat();

                            cStats = final.country_stats.FirstOrDefault(x => x.country == row[0]);


                            if (cStats == null)
                            {
                                cStats = new CountryStat()
                                {
                                    country = row[0], sessions = Int64.Parse(row[1])
                                };
                                final.country_stats.Add(cStats);
                            }
                            else
                            {
                                final.country_stats.Remove(cStats);
                                cStats.sessions = cStats.sessions + Int64.Parse(row[1]);
                                final.country_stats.Add(cStats);
                            }
                        }
                    }
                }
                realtimeList.Add(user.uid, final);
            }
            return(realtimeList);
        }
Example #14
0
        public void ShowAirplanes()
        {
            TrafficController trafficController = new TrafficController();

            trafficController.DoItall();
            while (true)
            {
                List <Airplane> Pista20Up   = trafficController.T1.AirplanesToUp;
                List <Airplane> Pista20Down = trafficController.T1.AirplanesToDown;

                List <Airplane> Pista15Up   = trafficController.T2.AirplanesToUp;
                List <Airplane> Pista15Down = trafficController.T2.AirplanesToDown;

                List <Airplane> Pista10Up   = trafficController.T3.AirplanesToUp;
                List <Airplane> Pista10Down = trafficController.T3.AirplanesToDown;

                List <Airplane> PistaPouso     = trafficController.PP.AirplanesToUp;
                List <Airplane> PistaDecolagem = trafficController.PD.AirplanesToUp;

                string airplanes20 = "", airplanes15 = "", airplanes10 = "", airplanesP = "", airplanesD = "";

                #region Pista 20
                foreach (var item in Pista20Up)
                {
                    airplanes20 += "(✈ " + item.Index.ToString() + " ↑)";
                }
                foreach (var item in Pista20Down)
                {
                    airplanes20 += "(✈ " + item.Index.ToString() + " ↓)"; //↓
                }
                #endregion

                #region pista 10
                foreach (var item in Pista10Up)
                {
                    airplanes10 += "(✈ " + item.Index.ToString() + " ↓)";
                }
                foreach (var item in Pista10Down)
                {
                    airplanes10 += "(✈ " + item.Index.ToString() + " ↑)";
                }
                #endregion

                #region Pista 15
                foreach (var item in Pista15Up)
                {
                    airplanes15 += "(✈ " + item.Index.ToString() + " ↓)";
                }
                foreach (var item in Pista15Down)
                {
                    airplanes15 += "(✈ " + item.Index.ToString() + " ↑)";
                }
                #endregion

                #region Pouso
                foreach (var item in PistaPouso)
                {
                    airplanesP += "(✈ " + item.Index.ToString() + " ↓)";
                }
                #endregion

                #region Decolagem
                foreach (var item in PistaDecolagem)
                {
                    airplanesD += "(✈ " + item.Index.ToString() + " ↑)";
                }
                #endregion

                UpdateText(label1, airplanes20);
                UpdateText(label2, airplanes15);
                UpdateText(label3, airplanes10);
                UpdateText(label4, airplanesP);
                UpdateText(label5, airplanesD);
                Thread.Sleep(1000);
            }
        }
Example #15
0
 public FlowGenerator(ref PrefabManager pmgr, ref TrafficController tcon)
 {
     pmgr_ = pmgr;
     tcon_ = tcon;
 }