public void trigger(string command, string[] args) { if (command == "cruise") { _impl.Context.log("Cruise control enabled"); if (args.Length > 0) { _impl.Context._desiredSpeed = Math.Min(Math.Max(float.Parse(args[0]), 0), 100.0); _impl.Context.transition(new CruiseControlState()); } else { _impl.Context.transition(new InitializeDesiredSpeedState()); } } else if (command == "cancel_cruise") { _impl.Context.log("Cruise control disabled"); _impl.Context.transition(MyContext.Stopped); } else if (command == "debug") { CruiseDebug debug = (CruiseDebug)Enum.Parse(typeof(CruiseDebug), args[0]); if (_impl.Context._debug == debug) { // toggle debug = CruiseDebug.None; } _impl.Context._debug = debug; } }
public void trigger(string command, string[] args) { if (command == "cruise") { _impl.Context.log("Cruise control enabled"); double desiredSpeed = Math.Min(Math.Max(float.Parse(args[0]), 0), 100.0); double desiredRollSpeed_rpm = 0; if (args.Length > 1) { desiredRollSpeed_rpm = float.Parse(args[1]); } double desiredRollSpeed_radsPerSec = desiredRollSpeed_rpm / 60 * 2 * Math.PI; _impl.Context.setDesiredSpeed(desiredSpeed, desiredRollSpeed_radsPerSec); _impl.Context.transition(new CruiseControlState()); } else if (command == "reverse") { _impl.Context.log("Cruise control enabled"); if (args.Length > 0) { _impl.Context.setDesiredSpeed(-Math.Min(Math.Max(float.Parse(args[0]), 0), 100.0), 0); if (!(_impl.Context.State is CruiseControlState)) { _impl.Context.transition(new CruiseControlState()); } } } else if (command == "cancel_cruise") { _impl.Context.log("Cruise control disabled"); _impl.Context.transition(MyContext.Stopped); } else if (command == "debug") { CruiseDebug debug = (CruiseDebug)Enum.Parse(typeof(CruiseDebug), args[0]); if (_impl.Context._debug == debug) { // toggle debug = CruiseDebug.None; } _impl.Context._debug = debug; } }