/// <summary>
        /// Fires when the grind has simulated and the appropriate time has elapsed
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _Grindtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            _GrindTimer.Stop();
            _GrindTimer.Enabled = false;

            // Grind has ground !
            GrindStatus = Model_GrindStation.GrindStatus.HALT;

            // Notify top level state machine of success
            RaiseEventOnTopLevel(OnGrindUpdateEvent, new object[] { this, true, string.Format("\nAt {0}: Ground Input Vial ID{1}", e.SignalTime, _GrindingID) });
        }
        private void BeginGrind(int timeForGrind)
        {
            // Should only get here with a positive time and the _Grindimer not running
            if ((timeForGrind >= 0) &&
                (Model_GrindStation.GrindStatus.HALT == GrindStatus) &&
                (false == _GrindTimer.Enabled))
            {
                GrindStatus = Model_GrindStation.GrindStatus.GRINDING;

                _GrindTimer.Interval = timeForGrind;
                _GrindTimer.Enabled  = true;
                _GrindTimer.Start();

                // Notify top level state machine of success
                RaiseEventOnTopLevel(OnGrindUpdateEvent, new object[] { this, false, string.Format(". Begin grind of Input Vial ID{0}", _GrindingID) });
            }
        }
 private void SetRest()
 {
     _GrindingID = 0;
     GrindStatus = Model_GrindStation.GrindStatus.HALT;
 }