private void SetYAxisLabels(TimingAndActuationsOptions options) { var yMaximum = Math.Round(_yValue += 0.8, 0); var height = (25.0 * yMaximum + 180.0); if (height < 200) { height = 300; } Chart.Height = (Unit)height; Chart.ChartAreas[0].AxisY.Interval = 1; var bottomOffset = 0; var topOffset = bottomOffset + 1; var timingAxisLabel = new CustomLabel(bottomOffset, topOffset, " ", 1, LabelMarkStyle.None); foreach (var t in Chart.Series) { bottomOffset = (int)t.Points[0].YValues[0]; topOffset = bottomOffset + 1; timingAxisLabel = new CustomLabel(bottomOffset, topOffset, t.Name, 0, LabelMarkStyle.None); Chart.ChartAreas[0].AxisY.CustomLabels.Add(timingAxisLabel); } bottomOffset++; topOffset = bottomOffset + 1; var vehicleTimingAxisLabel = new CustomLabel(bottomOffset, topOffset, "Vehicle Signal Display .", 0, LabelMarkStyle.None); Chart.ChartAreas[0].AxisY.CustomLabels.Add(vehicleTimingAxisLabel); }
public GlobalGetDataTimingAndActuations(string signalId, TimingAndActuationsOptions options) { if (options.GlobalEventCodesList != null && options.GlobalEventParamsList != null && options.GlobalEventCodesList.Any() && options.GlobalEventCodesList.Count > 0 && options.GlobalEventParamsList.Any() && options.GlobalEventParamsList.Count > 0) { GlobalCustomEvents = new Dictionary <string, List <Controller_Event_Log> >(); foreach (var globalEventCode in options.GlobalEventCodesList) { foreach (var globalEventParam in options.GlobalEventParamsList) { options.GlobalEventCounter = 1; var controllerEventLogRepository = Models.Repositories.ControllerEventLogRepositoryFactory.Create(); var globalCustomEvents = controllerEventLogRepository.GetEventsByEventCodesParam (signalId, options.StartDate, options.EndDate, new List <int> { globalEventCode }, globalEventParam); if (globalCustomEvents.Count > 0) { GlobalCustomEvents.Add("Global Events: Code: " + globalEventCode + " Param: " + globalEventParam, // globalEventParam + " Counter: " + options.GlobalEventCounter++, globalCustomEvents); } } } } }
private void SetChartTitle(TimingAndActuationsOptions options) { Chart.ChartAreas[0].AxisY.Title = ""; Chart.ChartAreas[0].AxisY2.Enabled = AxisEnabled.False; Chart.ChartAreas[0].AxisY2.Title = ""; Chart.Titles.Add(ChartTitleFactory.GetChartName(options.MetricTypeID)); Chart.Titles.Add(ChartTitleFactory.GetSignalLocationAndDateRange( options.SignalID, options.StartDate, options.EndDate)); }
public TimingAndActuationsForPhase(int phaseNumber, bool phaseOrOverlap, TimingAndActuationsOptions options) { PhaseNumber = phaseNumber; Options = options; PhaseOrOverlap = phaseOrOverlap; GetAllRawCycleData(options.StartDate, options.EndDate, PhaseOrOverlap); if (Options.ShowPedestrianIntervals) { GetPedestrianIntervals(PhaseOrOverlap); } }
public TimingAndActuationsForPhase(Approach approach, TimingAndActuationsOptions options, bool getPermissivePhase) { GetPermissivePhase = getPermissivePhase; Approach = approach; Options = options; PhaseNumber = GetPermissivePhase ? Approach.PermissivePhaseNumber.Value : Approach.ProtectedPhaseNumber; if (Options.ShowVehicleSignalDisplay) { GetAllCycleData(Options.StartDate, Options.EndDate, approach, getPermissivePhase); } if (Options.ShowStopBarPresence) { GetStopBarPresenceEvents(); } if (Options.ShowPedestrianActuation && !GetPermissivePhase) { GetPedestrianEvents(); } if (Options.ShowPedestrianIntervals && !GetPermissivePhase) { var getPhaseOrOverlapEvents = !(approach.IsProtectedPhaseOverlap || approach.IsPermissivePhaseOverlap); GetPedestrianIntervals(getPhaseOrOverlapEvents); } if (Options.ShowLaneByLaneCount) { GetLaneByLaneEvents(); } if (Options.ShowAdvancedDilemmaZone) { GetAdvancePresenceEvents(); } if (Options.ShowAdvancedCount) { GetAdvanceCountEvents(); } if (Options.PhaseEventCodesList != null) { GetPhaseCustomEvents(); } }
public TimingAndActuationsForPhase(int phaseNumber, bool phaseOrOverlap, TimingAndActuationsOptions options) { PhaseNumber = phaseNumber; Options = options; PhaseOrOverlap = phaseOrOverlap; GetAllRawCycleData(options.StartDate, options.EndDate, PhaseOrOverlap); if (Options.ShowPedestrianIntervals) { GetPedestrianIntervals(PhaseOrOverlap); } if (Options.ShowPedestrianActuation) { GetPedestrianEvents(); } if (Options.PhaseEventCodesList != null) { var optionsSignalID = Options.SignalID; GetRawCustomEvents(optionsSignalID, PhaseNumber, options.StartDate, options.EndDate); } }
private void SetGlobalEvents(GlobalGetDataTimingAndActuations globalGetDataTimingAndActuations, TimingAndActuationsOptions options) { _yValue = 0.5; _dotSize = 1; if (options.DotAndBarSize > 0) { _dotSize = options.DotAndBarSize; } foreach (var globalCustomEventElement in globalGetDataTimingAndActuations.GlobalCustomEvents) { var globalEventsSeries = new Series { ChartType = SeriesChartType.Point, XValueType = ChartValueType.DateTime }; var globalCustomEvents = globalCustomEventElement.Value; if (globalCustomEvents.Count <= 0) { continue; } for (int i = 0; i < globalCustomEvents.Count; i++) { var p0 = globalEventsSeries.Points.AddXY(globalCustomEvents[i].Timestamp.ToOADate(), _yValue); globalEventsSeries.Points[p0].Color = Color.Transparent; globalEventsSeries.Points[p0].MarkerStyle = MarkerStyle.Triangle; globalEventsSeries.Points[p0].MarkerColor = Color.Black; globalEventsSeries.Points[p0].MarkerSize = _dotSize; } if (globalEventsSeries.Points.Count <= 0) { return; } globalEventsSeries.Name = globalCustomEventElement.Key; Chart.Series.Add(globalEventsSeries); _yValue += 1.0; } }
public ChartForGlobalEventsTimingAndActuations(GlobalGetDataTimingAndActuations globalGetDataTimingAndActuations, TimingAndActuationsOptions options) { var GlobalDataTimingAndActuations = globalGetDataTimingAndActuations; var Options = options; var orginalEndDate = Options.EndDate; var reportTimespan = Options.EndDate - Options.StartDate; var totalMinutesRounded = Math.Round(reportTimespan.TotalMinutes); if (totalMinutesRounded <= 121) // remove extra minute to timefrom defaults { Options.EndDate = Options.EndDate.AddMinutes(-1); } Chart = ChartFactory.CreateDefaultChart(Options); SetChartTitle(Options); SetGlobalEvents(GlobalDataTimingAndActuations, Options); SetYAxisLabels(Options); Options.EndDate = orginalEndDate; }