Beispiel #1
0
 public override void OnLeaveXianEvent(object sender, SignalEventArgs e)
 {
     base.OnLeaveXianEvent(sender, e);
     switch (e.Number)
     {
     case 6:
         carStateMgr.HasLeaveLine2 = (CurrentMonData.GetSignal(SignalType.XIAN, 1) != 0);
         ChangeState(carStateMgr.YK782);
         break;
     }
 }
Beispiel #2
0
 public override void OnStateTimeOutEvent(object sender, TimeOutEventArgs e)
 {
     base.OnStateTimeOutEvent(sender, e);
     if (CurrentMonData.GetSignal(SignalType.XIAN, 1) == 0)
     {
         OnFailure(new ExamResultMsg(ResultType.Xian, 1));
     }
     else
     {
         ChangeState(carStateMgr.DK48);
     }
 }
Beispiel #3
0
        public override void OnBlockXianEvent(object sender, SignalEventArgs e)
        {
            base.OnBlockXianEvent(sender, e);
            switch (e.Number)
            {
            case 3:
                if (CurrentMonData.GetSignal(SignalType.XIAN, 6) == 1)
                {
                    ChangeState(carStateMgr.DK74);
                }
                else
                {
                    ChangeState(carStateMgr.DK77);
                }
                break;

            case 2:
                if (carStateMgr.DKLineNum == 3)
                {
                    if (MinDelayReached(carStateMgr.DKL3Time, settings.StateDelayConfig.Delay8))
                    {
                        OnFailure(new ExamResultMsg(ResultType.Xian, e.Number));
                    }
                }
                else
                {
                    OnFailure(new ExamResultMsg(ResultType.Xian, e.Number));
                }
                break;

            case 1:
                if (carStateMgr.DKLineNum == 2)
                {
                    if (MinDelayReached(carStateMgr.DKL2Time, settings.StateDelayConfig.Delay7))
                    {
                        OnFailure(new ExamResultMsg(ResultType.Xian, e.Number));
                    }
                }
                else
                {
                    OnFailure(new ExamResultMsg(ResultType.Xian, e.Number));
                }
                break;

            case 5:
                OnFailure(new ExamResultMsg(ResultType.Xian, e.Number));
                break;
            }
        }