New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
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
Generated on Fri Jul 15 2022 00:21:58 by 1.7.2