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 with the given speed in cm/s void flyForward(int distance); //let the quadrocopter fly forward for the given distance in cm with given speed in cm/s void flyForward(int distance, int speed); //let the quadrocopter fly right with the given speed in cm/s void flyRight(int speed); //let the quadrocopter fly right for the given distance in cm with given speed in cm/s void flyRight(int distance, int speed); //let the quadrocopter fly left with the given speed in cm/s void flyLeft(int speed); //let the quadrocopter fly left for the given distance in cm with given speed in cm/s void flyLeft(int distance, int speed); //let the quadrocopter fly backwards with the given speed in cm/s void flyBackward(int speed); //let the quadrocopter fly backwards for the given distance in cm with given speed in cm/s void flyBackward(int distance, int speed); //let the quadrocopter turn right with given speed in ° per second void turnRight(int speed); //let the quadrocopter turn right for given angle in ° with given speed in ° per second void turnRight(int angle; int speed); //let the quadrocopter turn left with given speed in ° per second void turnLeft(int speed); //let the quadrocopter turn left for given angle in ° with given speed in ° per second 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.