New version of quadcopter software written to OO principles

Dependencies:   mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RateController.h Source File

RateController.h

00001 #include "mbed.h"
00002 #include "Global.h"
00003 #include "PidWrapper.h"
00004 #include "ConfigFileWrapper.h"
00005 #include "NavigationController.h"
00006 
00007 #ifndef RateController_H
00008 #define RateController_H
00009 
00010 class RateController               
00011 {
00012   public:                  
00013     RateController(Sensors& sensors, NavigationController& navigationController, ConfigFileWrapper& configFileWrapper); 
00014     ~RateController();
00015     
00016     PidWrapper::PidOutput compute();
00017     void reset();
00018     void setYawRatePidParameters(PidWrapper::PidParameter pidParameters);
00019     void setPitchRatePidParameters(PidWrapper::PidParameter pidParameters);
00020     void setRollRatePidParameters(PidWrapper::PidParameter pidParameters);
00021     PidWrapper::RatePidState getRatePidState();
00022     
00023   private:
00024     Sensors& _sensors;
00025     NavigationController& _navigationController;
00026     ConfigFileWrapper& _configFileWrapper;
00027     PidWrapper _yawRatePidController;
00028     PidWrapper _pitchRatePidController;
00029     PidWrapper _rollRatePidController;
00030     NavigationController::SetPoint _setPoints;
00031     Imu::Rate _rate;
00032     Imu::Angle _angle;
00033     PidWrapper::PidOutput _pidOutputs;
00034 };
00035 
00036 #endif