public PedDelaySignal(string signalID, DateTime startDate, DateTime endDate) { _SignalID = signalID; _StartDate = startDate; _EndDate = endDate; try { _Plans = new PlansBase(signalID, startDate, endDate); var pedPhaseNumbers = ControllerEventLogs.GetPedPhases(signalID, startDate, endDate); ConcurrentBag <PedPhase> pedPhases = new ConcurrentBag <PedPhase>(); Parallel.ForEach(pedPhaseNumbers, currentPhase => //foreach(int currentPhase in pedPhaseNumbers) { var pedPhase = new PedPhase(currentPhase, signalID, startDate, endDate, _Plans); pedPhases.Add(pedPhase); }); _PedPhases = pedPhases.OrderBy(x => x.PhaseNumber).ToList(); } catch (Exception e) { var errorLog = ApplicationEventRepositoryFactory.Create(); errorLog.QuickAdd(System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString(), this.GetType().DisplayName(), e.TargetSite.ToString(), ApplicationEvent.SeverityLevels.High, e.Message); } }
public PedPhase(int phaseNumber, string signalID, DateTime startDate, DateTime endDate, PlansBase plansData) : base(signalID, startDate, endDate, phaseNumber, new List <int> { 21, 22, 45 }) { _SignalID = signalID; _StartDate = startDate; _EndDate = endDate; _PhaseNumber = phaseNumber; for (int i = 0; i < plansData.Events.Count; i++) { //if this is the last plan then we want the end of the plan //to cooincide with the end of the graph if (plansData.Events.Count - 1 == i) { PedPlan plan = new PedPlan(signalID, phaseNumber, plansData.Events[i].Timestamp, endDate, plansData.Events[i].EventParam); _Plans.Add(plan); } //else we add the plan with the next plans' time stamp as the end of the plan else { PedPlan plan = new PedPlan(signalID, phaseNumber, plansData.Events[i].Timestamp, plansData.Events[i + 1].Timestamp, plansData.Events[i].EventParam); _Plans.Add(plan); } } GetCycles(); AddCyclesToPlans(); SetHourlyTotals(); }
public Signal(string signalID, DateTime startDate, DateTime endDate, List <int> eventCodes, int startOfCycle) { _SignalID = signalID; _StartDate = startDate; _EndDate = endDate; _EventCodes = eventCodes; MOE.Common.Models.Repositories.ISignalsRepository repository = MOE.Common.Models.Repositories.SignalsRepositoryFactory.Create(); SignalModel = repository.GetSignalBySignalID(signalID); _Detectors = SignalModel.GetDetectorsForSignal(); _Plans = new PlansBase(signalID, startDate, endDate); GetPhases(startOfCycle); }
public Signal(string signalID, DateTime startDate, DateTime endDate, List <int> eventCodes, int startOfCycle) { SignalID = signalID; StartDate = startDate; EndDate = endDate; EventCodes = eventCodes; var repository = SignalsRepositoryFactory.Create(); SignalModel = repository.GetLatestVersionOfSignalBySignalID(signalID); Detectors = SignalModel.GetDetectorsForSignal(); Plans = new PlansBase(signalID, startDate, endDate); GetPhases(startOfCycle); }
public PedDelaySignal(string signalID, DateTime startDate, DateTime endDate) { _SignalID = signalID; _StartDate = startDate; _EndDate = endDate; _Plans = new PlansBase(signalID, startDate, endDate); var pedPhaseNumbers = ControllerEventLogs.GetPedPhases(signalID, startDate, endDate); Parallel.ForEach(pedPhaseNumbers, currentPhase => //foreach(int currentPhase in pedPhaseNumbers) { _PedPhases.Add(new PedPhase(currentPhase, signalID, startDate, endDate, _Plans)); } ); _PedPhases = _PedPhases.OrderBy(x => x.PhaseNumber).ToList(); }
public PedDelaySignal(string signalID, DateTime startDate, DateTime endDate) { _SignalID = signalID; _StartDate = startDate; _EndDate = endDate; _Plans = new PlansBase(signalID, startDate, endDate); List <int> pedPhaseNumbers = ControllerEventLogs.GetPedPhases(signalID, startDate, endDate); Parallel.ForEach(pedPhaseNumbers, currentPhase => //foreach(int currentPhase in pedPhaseNumbers) { _PedPhases.Add(new PedPhase(currentPhase, signalID, startDate, endDate, _Plans)); } ); _PedPhases.Sort((x, y) => x.PhaseNumber.CompareTo(y.PhaseNumber)); }
public PedPhase(int phaseNumber, Models.Signal signal, DateTime startDate, DateTime endDate, PlansBase plansData) : base(signal.SignalID, startDate, endDate, phaseNumber, new List <int> { 21, 22, 45, 90 }) { SignalID = signal.SignalID; StartDate = startDate; EndDate = endDate; PhaseNumber = phaseNumber; StartDate = startDate; EndDate = endDate; Plans = new List <PedPlan>(); Cycles = new List <PedCycle>(); HourlyTotals = new List <PedHourlyTotal>(); for (var i = 0; i < plansData.Events.Count; i++) { //if this is the last plan then we want the end of the plan //to cooincide with the end of the graph if (plansData.Events.Count - 1 == i) { var plan = new PedPlan(SignalID, phaseNumber, plansData.Events[i].Timestamp, endDate, plansData.Events[i].EventParam); Plans.Add(plan); } //else we add the plan with the next plans' time stamp as the end of the plan else { var plan = new PedPlan(SignalID, phaseNumber, plansData.Events[i].Timestamp, plansData.Events[i + 1].Timestamp, plansData.Events[i].EventParam); Plans.Add(plan); } } GetCycles(signal); AddCyclesToPlans(); SetHourlyTotals(); }
private void ShowPlans(string signalID, DateTime startDate, DateTime endDate, int chartIndex) { var plansBase = new PlansBase(signalID, startDate, endDate); var plans = new List <Plan>(); for (var i = 0; i < plansBase.Events.Count; i++) { //if this is the last plan then we want the end of the plan //to cooincide with the end of the graph if (plansBase.Events.Count - 1 == i) { var plan = new Plan(plansBase.Events[i].Timestamp, endDate, plansBase.Events[i].EventParam); plans.Add(plan); } //else we add the plan with the next plans' time stamp as the end of the plan else { var plan = new Plan(plansBase.Events[i].Timestamp, plansBase.Events[i + 1].Timestamp, plansBase.Events[i].EventParam); plans.Add(plan); } } var backGroundColor = 1; foreach (var plan in plans) { var stripline = new StripLine(); //Creates alternating backcolor to distinguish the plans if (backGroundColor % 2 == 0) { stripline.BackColor = Color.FromArgb(120, Color.LightGray); } else { stripline.BackColor = Color.FromArgb(120, Color.LightBlue); } //Set the stripline properties stripline.IntervalOffsetType = DateTimeIntervalType.Hours; stripline.Interval = 1; stripline.IntervalOffset = (plan.StartDate - startDate).TotalHours; stripline.StripWidth = (plan.EndDate - plan.StartDate).TotalHours; stripline.StripWidthType = DateTimeIntervalType.Hours; Charts[chartIndex].ChartAreas["ChartArea1"].AxisX.StripLines.Add(stripline); //Add a corrisponding custom label for each strip var Plannumberlabel = new CustomLabel(); Plannumberlabel.FromPosition = plan.StartDate.ToOADate(); Plannumberlabel.ToPosition = plan.EndDate.ToOADate(); switch (plan.PlanNumber) { case 254: Plannumberlabel.Text = "Free"; break; case 255: Plannumberlabel.Text = "Flash"; break; case 0: Plannumberlabel.Text = "Unknown"; break; default: Plannumberlabel.Text = "Plan " + plan.PlanNumber; break; } Plannumberlabel.ForeColor = Color.Black; Plannumberlabel.RowIndex = 1; Charts[chartIndex].ChartAreas["ChartArea1"].AxisX2.CustomLabels.Add(Plannumberlabel); } }