using FSM.Machines; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FSM.States { class IdleState : IEquipmentState { public void Enter() { Console.WriteLine("Entering IdleState"); } public void Exit() { Console.WriteLine("Exiting IdleState"); } public bool HandleEvent(EquipmentEvent equipmentEvent, Machines.EquipmentStateMachine machine) { switch (equipmentEvent) { case EquipmentEvent.Start: machine.SetState(new RunningState()); return true; case EquipmentEvent.EmergencyStop: machine.SetState(new EmergencyStoppedState()); return true; default: return false; } } } }