public void Handler(TrackStateMachine stateMachine) { Thread.Sleep(5); switch (CurState) { case State.Enter: this.OnEntiy(); break; case State.DoAction: this.DoAction(); break; case State.WaitFinished: this.WaitFinished(); break; case State.Finished: this.Finished(); break; case State.Exit: this.OnExit(stateMachine); break; } }
/// <summary> /// 轨道初始化 /// </summary> public void TrackInit() { if (TrackEntiy.Count == 0) { foreach (Config.Track track in Enum.GetValues(typeof(Config.Track))) { TrackEntiy.Add(track, new TrackEntiy(SystemConfig.Instance.Tracks[track], IODefine.Instance.TrackIO[track])); } } if (TrackMachine.Count == 0) { foreach (Config.Track track in Enum.GetValues(typeof(Config.Track))) { var machine = new TrackStateMachine(track); machine.Init(); TrackMachine.Add(track, machine); } } }
public TrackStep(TrackEntiy entiy, TrackStateMachine machine) { this.entiy = entiy; this.machine = machine; }
public virtual void OnExit(TrackStateMachine stateMachine) { stopwatch.Stop(); }
public override void OnExit(TrackStateMachine stateMachine) { base.OnExit(stateMachine); stateMachine.CurStep = new TrackOutputStep(TrackManager.Instance.TrackEntiy[stateMachine.Track], this.machine); }
public TrackInputStep(TrackEntiy entiy, TrackStateMachine machine) : base(entiy, machine) { }