The first design of the Flight Control interface
FlightControl.h
/* Library that contains all functions to control the flight of the Quadrocopter */ //----------------------GETTER-------------------------------- //return the current Height of the Quadrocopter depending on ceiling height int getHeight(); //returns the current Direction of the Quadrocopter int getDirection(); //------------------Control-Functions------------------------- //stop the current movement of the Quadrocopter and return to balanced flight as soon as possible void stop(); //let the Quadcopter start flying upwards with given speed in cm/s void incHeight(int speed); //let the Quadcopter start flying upwards with given speed in cm/s for a given height gain. //ensures getHeight.old + height = getHeight.new void incHeight(int height, int speed); //decreases Height with given speed in cm/s void decHeight(int speed); //deacreases Height with given amount and given speed in cm/s //ensures getHeight.old - height = getHight.new void decHeight(int height, int speed); //let the quadrocopter fly forward for the given distance void flyForward(int distance); //let the quadrocopter fly forward for the given distance with given speed void flyForward(int distance, int speed); //let the quadrocopter fly right until something else is set void flyRight(); //let the quadrocopter fly right for the given distance void flyRight(int distance); //let the quadrocopter fly right for the given distance with given speed void flyRight(int distance, int speed); //let the quadrocopter fly left until something else is set void flyLeft(); //let the quadrocopter fly left for the given distance void flyLeft(int distance); //let the quadrocopter fly left for the given distance with given speed void flyLeft(int distance, int speed); //let the quadrocopter fly backwards until something else is set void flyBackward(); //let the quadrocopter fly backwards for the given distance void flyBackward(int distance); //let the quadrocopter fly backwards for the given distance with given speed void flyBackward(int distance, int speed); //let the quadrocopter turn right until something else is set void turnRight(); //let the quadrocopter turn right for given angle void turnRight(int angle); //let the quadrocopter turn right until given angle with given speed void turnRight(int angle; int speed); //let the quadrocopter turn left until something else is set void turnLeft(); //let the quadrocopter turn left for given angle void turnLeft(int angle); //let the quadrocopter turn left until given angle with given speed void turnLeft(int angle; int speed); //let the quadrocopter land at the current position void land();
fma suggested to just provide functions for given speed and with this to remove the baseSpeed. This will be a topic to discuss.