protected override void HandleEcFrame(SaiEcFrame ecFrame) { if (ecFrame.FrameType == SaiFrameType.EC_Start) { this.Context.RsspEP.DefenseTech = MessageDelayDefenseTech.EC; var strategy = new EcDefenseStrategy(this.Context.RsspEP.LocalID, this.Context.RsspEP.EcInterval); this.Context.DefenseStrategy = strategy; this.Context.CurrentState = new EcWaitingforStart1State(this.Context, strategy); this.Context.CurrentState.HandleFrame(ecFrame); } else { throw new Exception("SaiInvalideState状态时,收到的第一条帧不是ECStart。"); } }
public EcDisconnectedState(ISaiStateContext context, EcDefenseStrategy strategy) : base(context, strategy) { }
public EcWaitingforStart1State(ISaiStateContext context, EcDefenseStrategy strategy) : base(context, strategy) { }
protected EcState(ISaiStateContext context, EcDefenseStrategy strategy) : base(context) { this.DefenseStrategy = strategy; }