/// <summary> /// Get the Series associated with a timer /// </summary> /// <param name="timer"> The timer associated with the series </param> /// <returns> The timer's series </returns> private Series GetSeries(AbstractTimer timer) { foreach (var series in OutputChart.Series) { if (series.Name == timer.Name) { return(series); } } return(null); }
/// <summary> /// Handle tick events /// </summary> /// <param name="sender"> The timer which sent the event </param> /// <param name="tickEventArgs"> Event args </param> private void TimerOnTick(object sender, TickEventArgs tickEventArgs) { AbstractTimer timer = (AbstractTimer)sender; const int roundTo = 1; double dateElapsedSeconds = Math.Round(tickEventArgs.ElapsedTime.TotalSeconds, roundTo); double dateElapsedMinutes = tickEventArgs.ElapsedTime.TotalSeconds / 60; double timerElapsedSeconds = Math.Round(tickEventArgs.TimerElapsedSeconds, roundTo); double driftMsPerHour = Math.Round(tickEventArgs.DriftMsPerHour, roundTo); double driftMsPerInterval = Math.Round(tickEventArgs.DriftMsPerInterval, roundTo); // Plot Timer Data Series series = GetSeries(timer); series.Points.AddXY(dateElapsedMinutes, driftMsPerHour); // Set Up Strings for Output Textbox string dateElapsedSecondsString = dateElapsedSeconds.ToString(); if (!dateElapsedSecondsString.Contains(".")) { dateElapsedSecondsString += ".0"; } string timerElapsedSecondsString = timerElapsedSeconds.ToString(); if (!timerElapsedSecondsString.Contains(".")) { timerElapsedSecondsString += ".0"; } string driftMsPerHourString = driftMsPerHour.ToString(); if (!driftMsPerHourString.Contains(".")) { driftMsPerHourString += ".0"; } string driftMsPerIntervalString = driftMsPerInterval.ToString(); if (!driftMsPerIntervalString.Contains(".")) { driftMsPerIntervalString += ".0"; } string name = timer.Name.PadRight(20, ' ') + " - "; OutputTextBox.AppendText(name); OutputTextBox.AppendText("Interval: " + tickEventArgs.TimerIntervalsElapsed); OutputTextBox.AppendText(" - Timer Elapsed: " + timerElapsedSecondsString); OutputTextBox.AppendText(" - DateTime Elapsed: " + dateElapsedSecondsString); OutputTextBox.AppendText(" - Ms Drift Per Hour: " + driftMsPerHourString); OutputTextBox.AppendText(" - Ms Drift Per Interval: " + driftMsPerIntervalString); OutputTextBox.AppendText(Environment.NewLine); }
public AbstractSlider() { InitializeComponent(); DataContext = new AbstractSliderViewModel(); Timer = new AbstractTimer(OnTimerExecute, tempo: AbstractTimer.TEMPO_SECOND * 5); }