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;
     }
 }
Exemple #2
0
 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;
     }
 }