/// <summary>
 /// Event handler called when a timer event occurs.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="TimerMessageEventArgs"/> instance containing the event data.</param>
 public void Timer(object sender, TimerMessageEventArgs e)
 {
     // Determine if this timer message is the one we are interested in.  If so, send specified FSM event.
     if (!String.IsNullOrEmpty(timerName) && e.Name == timerName && e.Action == "tick")
     {
         ticks.Value = e.Ticks;
         Fsm.Event(sendEvent);
     }
 }
    /// <summary>
    /// Event handler called when a timer event occurs.
    /// </summary>
    /// <param name="sender">The sender.</param>
    /// <param name="e">The <see cref="TimerMessageEventArgs"/> instance containing the event data.</param>
    public void Timer(object sender, TimerMessageEventArgs e)
    {
        // Determine if this timer message is the one we are interested in.  If so, send specified FSM event.
        if (!String.IsNullOrEmpty(timerName) && e.Name == timerName && e.Action == "time_subtracted")
        {
            ticks.Value = e.Ticks;

            // Attempt to retrieve the "ticks_subtracted" parameter and store it in a FSM variable
            if (!ticksSubtracted.IsNone && !String.IsNullOrEmpty(e.BcpMessage.Parameters["ticks_subtracted"]))
            {
                int subtracted;
                if (int.TryParse(e.BcpMessage.Parameters["ticks_subtracted"], out subtracted))
                    ticksSubtracted.Value = subtracted;
            }

            Fsm.Event(sendEvent);
        }
    }