public static void Main() { //setting the error reporting level DebugUtils.debugLevel = DebugLevel.INFO; DebugUtils.Print(DebugLevel.INFO, "Starting Webserver class..."); Webserver webserver = new Webserver(); }
public CommunicationController(NanoDrone drone) { this.drone = drone; webserver = new Webserver.Webserver(666); new MotorRoutes(webserver, this.drone); new OrientationRoutes(webserver, this.drone); new FlightRoutes(webserver, this.drone); }
public MotorRoutes(Webserver.Webserver server, Controllers.NanoDrone drone) : base(server) { AddRoute(new Route("motors/:side/speed", (Request request) => { string side = request.path[1]; var motors = drone.MotorController.motorsBySide; if (motors.TryGetValue(side, out Motor motor)) { return(motor.Speed.ToString()); } return("Motor not found"); })); AddRoute(new Route("motors/test", (Request request) => { Task.Run(() => { foreach (KeyValuePair <string, Motor> kvPair in drone.MotorController.motorsBySide) { kvPair.Value.Test(); } }); return(""); })); AddRoute(new Route("motors/:side/test", (Request request) => { string side = request.path[1]; var motors = drone.MotorController.motorsBySide; if (motors.TryGetValue(side, out Motor motor)) { Task.Run(() => { motor.Test(); }); return("Test ran"); } return("Motor not found"); })); AddRoute(new Route("motors/:side/arm", (Request request) => { string side = request.path[1]; var motors = drone.MotorController.motorsBySide; if (motors.TryGetValue(side, out Motor motor)) { Task.Run(() => { motor.Arm(); }); return("Armed"); } return("Motor not found"); })); }
public FlightRoutes(Webserver.Webserver server, Controllers.NanoDrone drone) : base(server) { AddRoute(new Route("flight/test/:speed", (Request request) => { Task.Run(() => { string speed = request.path[2]; double numericSpeed = double.Parse(speed); for (double i = 0; i < numericSpeed / 100; i += 0.005) { drone.MotorController.Throttle(i); Task.Delay(500).Wait(); } for (double i = numericSpeed / 100; i >= 0; i -= 0.005) { drone.MotorController.Throttle(i); Task.Delay(500).Wait(); } }); return(""); })); AddRoute(new Route("flight/shutdown", (Request request) => { drone.Stop(); return(""); })); AddRoute(new Route("flight/start", (Request request) => { drone.Start(); return(""); })); }
public OrientationRoutes(Webserver.Webserver server, Controllers.NanoDrone drone) : base(server) { /* Routes for getting the current orientation */ AddRoute(new Route("orientation/yaw", (Request request) => { return(drone.OrientationController.Yaw.ToString()); })); AddRoute(new Route("orientation/pitch", (Request request) => { return(drone.OrientationController.Pitch.ToString()); })); AddRoute(new Route("orientation/roll", (Request request) => { return(drone.OrientationController.Roll.ToString()); })); AddRoute(new Route("orientation/all", (Request request) => { return(string.Format("{0}|{1}|{2}", drone.OrientationController.Yaw, drone.OrientationController.Pitch, drone.OrientationController.Roll)); })); /* routes for enabling, disabling and getting auto mode */ AddRoute(new Route("orientation/auto/enable", (Request request) => { bool result = drone.OrientationController.Enable(); return(string.Format("Enabling orientation assist, result: {0}", result)); })); AddRoute(new Route("orientation/auto/disable", (Request request) => { bool result = drone.OrientationController.Disable(); return(string.Format("Disabling orientation assit, result: {0}", result)); })); AddRoute(new Route("orientation/auto", (Request request) => { return(drone.OrientationController.Running.ToString()); })); }
public RouteSet(Webserver.Webserver server) { this.server = server; this.routes = new List <Route>(); }