protected void ChangePhase(AMSPhase newPhase) { currentPhase = newPhase; if (currentPhase == null) { currentPhase = phaseNone; } currentPhase.Init(); }
protected AMSPhase AddPhase(string name, Func <bool> fcntRun, Func <bool> beforeFirstRun = null) { AMSPhase phase = new AMSPhase(name, fcntRun) { BeforeFirstRun = beforeFirstRun }; this.listPhase.Add(phase); return(phase); }
public AbstractAMS(P parameters) { this.Params = parameters; logger = new Logger(GetProgram()); this.isRunning = false; phaseNone = AddPhase(PHASE_NONE, RunPhaseNone); phaseLaunch = AddPhase(PHASE_LAUNCH, ResetPosition, BeforeFirstRunResetPosition); phaseEnding = AddPhase(PHASE_ENDING, ResetPosition, BeforeFirstRunResetPosition); phaseEnd = AddPhase(PHASE_END, RunPhaseEnd); phaseEnding.NextPhase = phaseEnd; this.currentPhase = phaseNone; }
public AutomaticMiningSystem(AutomaticMiningSystemParams parameters) : base(parameters) { this.lastAngle = Params.MinRotorAngle; AMSPhase phase1 = this.AddPhase(PHASE_EXTENDING_DRILL, RunPhaseExtendingPistonMiningDirection); AMSPhase phase2 = this.AddPhase(PHASE_RETRACTING_LG, RunPhaseRetractingPistionOppositeMiningDirection); AMSPhase phase3 = this.AddPhase(PHASE_MOVING_MOTOR, RunPhaseRotating); // Set worflow phaseLaunch.NextPhase = phase1; phase1.NextPhase = phase2; phase2.NextPhase = phase3; phase3.NextPhase = phaseEnding; }
public PlateformeForage(PlateformeForageParams parameters) : base(parameters) { AMSPhase phase1 = this.AddPhase(PHASE_EXTENDING_PISTON, RunPhaseExtendingPistons); AMSPhase phase2 = this.AddPhase(PHASE_RETRACTING_HINGE, RunPhaseRetractingHinge, BeforeFirstRunPhaseRetractingHinge); AMSPhase phase3 = this.AddPhase(PHASE_RETRACTING_PISTON, RunPhaseRetractingPistons); AMSPhase phase4 = this.AddPhase(PHASE_MOVING_HINGE, RunPhaseInclinate, BeforeFirstRunPhaseInclinate); // set worflow AfterLaunch(phase1); phase1.NextPhase = phase2; phase2.NextPhase = phase3; phase3.NextPhase = phase4; phase4.NextPhase = phase1; }
/** Manual Commande Start */ protected virtual void Start() { logger.Info("==> Start"); bool wasRunning = isRunning; isRunning = true; this.LoadBlocks(); // If off, start from the beginning = launch // else continue the currentPhase if (currentPhase.Name == PHASE_NONE) { currentPhase = phaseLaunch; } if (!wasRunning) { currentPhase.Init(); } }
protected void AfterLaunch(AMSPhase phase) { this.phaseLaunch.NextPhase = phase; }