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