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 StabController.h Source File

StabController.h

00001 #include "mbed.h"
00002 #include "Global.h"
00003 #include "PidWrapper.h"
00004 #include "ConfigFileWrapper.h"
00005 #include "NavigationController.h"
00006 
00007 #ifndef StabController_H
00008 #define StabController_H
00009 
00010 class StabController               
00011 {
00012   public:                  
00013     StabController(Sensors& sensors, NavigationController& navigationController, ConfigFileWrapper& configFileWrapper); 
00014     ~StabController();
00015     
00016     PidWrapper::PidOutput compute();
00017     PidWrapper::FlightControllerPidParameters getPidParameters();
00018     void reset();
00019     void setYawStabPidParameters(PidWrapper::PidParameter pidParameters);
00020     void setPitchStabPidParameters(PidWrapper::PidParameter pidParameters);
00021     void setRollStabPidParameters(PidWrapper::PidParameter pidParameters);
00022     void setYawRatePidParameters(PidWrapper::PidParameter pidParameters);
00023     void setPitchRatePidParameters(PidWrapper::PidParameter pidParameters);
00024     void setRollRatePidParameters(PidWrapper::PidParameter pidParameters);
00025     PidWrapper::StabPidState getStabPidState();
00026     
00027   private:
00028     Sensors& _sensors;
00029     NavigationController& _navigationController;
00030     ConfigFileWrapper& _configFileWrapper;
00031     PidWrapper _yawRatePidController;
00032     PidWrapper _pitchRatePidController;
00033     PidWrapper _rollRatePidController;
00034     PidWrapper _yawStabPidController;
00035     PidWrapper _pitchStabPidController;
00036     PidWrapper _rollStabPidController;
00037     NavigationController::SetPoint _setPoints;
00038     Imu::Rate _rate;
00039     Imu::Angle _angle;
00040     PidWrapper::PidOutput _stabPidOutputs;
00041     PidWrapper::PidOutput _ratePidOutputs;
00042 };
00043 
00044 #endif