Idle.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Wayne.ForecourtControl.Fusion.StatusStateMachine.States;
  2. using Wayne.Lib.StateEngine;
  3. using Wayne.Lib.StateEngine.Generic;
  4. namespace Wayne.ForecourtControl.Fusion.ReadDeviceStatus.States
  5. {
  6. [StateDescription(StateDescriptionType.Summary, "Idle state")]
  7. [EventDescription(EventType.ReadDeviceStatus, BasicTransitionType.Done)]
  8. [EventDescription(EventType.GetConfiguration, TransitionType.ReadConfiguration)]
  9. class Idle : State<ReadDeviceStatusController>
  10. {
  11. #region Overrides of State
  12. /// <summary>
  13. /// Override to receive incoming events. If the event is handled, the
  14. /// application must set the event.Handled = true.
  15. /// </summary>
  16. /// <param name="stateEngineEvent">The event object that should be handled.</param>
  17. /// <param name="transition">Out parameter that should be set to either the reference to a transition object or null.</param>
  18. protected override void HandleEvent(StateEngineEvent stateEngineEvent, ref Transition transition)
  19. {
  20. base.HandleEvent(stateEngineEvent, ref transition);
  21. if (stateEngineEvent.Type.Equals(EventType.ReadDeviceStatus))
  22. {
  23. stateEngineEvent.Handled = true;
  24. transition = new Transition(this, BasicTransitionType.Done);
  25. }
  26. if (stateEngineEvent.Type.Equals(EventType.GetConfiguration))
  27. {
  28. stateEngineEvent.Handled = true;
  29. Main.Configuration = new ConfigurationSet();
  30. transition = new Transition(this, TransitionType.ReadConfiguration);
  31. }
  32. else
  33. {
  34. stateEngineEvent.Handled = true;
  35. DebugLog("Unhandled event set to handled !");
  36. }
  37. }
  38. #endregion
  39. }
  40. }