public override async Task<bool> EmergencyStop(RobotStateArgs args) { await base.EmergencyStop(args); await args.Context.Controller.StopMotorsAll(); return await args.Context.NextState(new ReadyState()); }
public override async Task<bool> Disconnect(RobotStateArgs args) { try { args.Context.Controller.Disconnect(); } catch(Exception ex) { Debug.WriteLine("Disconnect Exception: " + ex.Message); } finally { await args.Context.NextState(new OfflineState()); } return true; }
public override async Task<bool> HandleRobotDataChange(RobotStateArgs args) { await base.HandleRobotDataChange(args); if (args.Context.Data.ActiveButton > 0) { RemoteButton button = (RemoteButton)args.Context.Data.ActiveButton; switch (button) { case RemoteButton.RedTop: //Emergency stop button { return await EmergencyStop(args); } } } return true; }
public virtual Task<bool> StartCleaning(RobotStateArgs args) { return Task.FromResult(true);; }
public virtual Task<bool> TurnCleanerStop(RobotStateArgs args) { return Task.FromResult(true);; }
public virtual Task<bool> TurnHeadDownStart(RobotStateArgs args) { return Task.FromResult(true);; }
public virtual Task<bool> DriveStop(RobotStateArgs args) { return Task.FromResult(true);; }
public virtual Task<bool> DriveBackwardStart(RobotStateArgs args) { return Task.FromResult(true);; }
public override async Task<bool> TurnHeadDownStart(RobotStateArgs args) { await args.Context.Controller.TurnHeadDownStart(); return true; }
public virtual Task<bool> HandleUltraSonicDataChange(RobotStateArgs args) { return Task.FromResult(true); }
public virtual Task<bool> HandleAngleChange(RobotStateArgs args) { return Task.FromResult(true); }
public virtual Task<bool> Disconnect(RobotStateArgs args) { return Task.FromResult(true); }
public virtual Task<bool> InitState(RobotStateArgs args) { return Task.FromResult(true); }
public override async Task<bool> HandleRobotDataChange(RobotStateArgs args) { await base.HandleRobotDataChange(args); if (args.Context.Data.ActiveButton > 0) { RemoteButton button = (RemoteButton)args.Context.Data.ActiveButton; switch (button) { case RemoteButton.BlueTop: { return await StartCleaning(args); } } } return true; }
public override async Task<bool> StartCleaning(RobotStateArgs args) { return await args.Context.NextState(new DriveForwardState(DriveForwardState.Mode.NextTurnRight)); }
public override async Task<bool> TurnCleanerStop(RobotStateArgs args) { await args.Context.Controller.TurnCleanerStop(); return true; }
public virtual Task<bool> EmergencyStop(RobotStateArgs args) { return Task.FromResult(true); }
public override async Task<bool> DriveStop(RobotStateArgs args) { await args.Context.Controller.DriveStop(); return true; }