/// <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);
        }
Example #3
0
 public AbstractSlider()
 {
     InitializeComponent();
     DataContext = new AbstractSliderViewModel();
     Timer       = new AbstractTimer(OnTimerExecute, tempo: AbstractTimer.TEMPO_SECOND * 5);
 }