using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Wayne.Lib.StateEngine; using Wayne.Lib.StateEngine.Generic; namespace SinochemInternetPlusApp.States.Shared { internal class WaitForPrinterIdle : TimeoutState { protected override void Enter(StateEntry stateEntry, ref Transition transition) { base.Enter(stateEntry, ref transition); //If printer is idle, go ahead to print the receipt if (Main.GetPrinter()) { transition = new Transition(this, TransitionType.Done); } } protected override void HandleNonTimeoutEvent(StateEngineEvent stateEngineEvent, ref Transition transition) { } protected override void Timeout(ref Transition transition) { transition = new Transition(this, TransitionType.Timeout); } //Time out set to 0.25s protected override int TimeoutInterval => 250; } }