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; } }
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); } }
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; } }