Пример #1
0
        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);
                }
            }
        }
Пример #3
0
 public TrackStep(TrackEntiy entiy, TrackStateMachine machine)
 {
     this.entiy   = entiy;
     this.machine = machine;
 }
Пример #4
0
 public virtual void OnExit(TrackStateMachine stateMachine)
 {
     stopwatch.Stop();
 }
Пример #5
0
 public override void OnExit(TrackStateMachine stateMachine)
 {
     base.OnExit(stateMachine);
     stateMachine.CurStep = new TrackOutputStep(TrackManager.Instance.TrackEntiy[stateMachine.Track], this.machine);
 }
Пример #6
0
 public TrackInputStep(TrackEntiy entiy, TrackStateMachine machine)
     : base(entiy, machine)
 {
 }