New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
FlightController.h
00001 #include "mbed.h" 00002 #include "Global.h" 00003 #include "rtos.h" 00004 #include "Status.h" 00005 #include "MotorMixer.h" 00006 #include "PidWrapper.h" 00007 #include "RateController.h" 00008 #include "StabController.h" 00009 #include "ConfigFileWrapper.h" 00010 00011 #ifndef FlightController_H 00012 #define FlightController_H 00013 00014 class FlightController 00015 { 00016 public: 00017 FlightController(Status& status, Sensors& sensors, NavigationController& navigationController, ConfigFileWrapper& configFileWrapper, PinName motor1, PinName motor2, PinName motor3, PinName motor4); 00018 ~FlightController(); 00019 00020 MotorMixer::MotorPower getMotorPower(); 00021 PidWrapper::PidOutput getPidOutputs(); 00022 PidWrapper::FlightControllerPidParameters getPidParameters(); 00023 void setYawStabPidParameters(PidWrapper::PidParameter pidParameters); 00024 void setPitchStabPidParameters(PidWrapper::PidParameter pidParameters); 00025 void setRollStabPidParameters(PidWrapper::PidParameter pidParameters); 00026 void setYawRatePidParameters(PidWrapper::PidParameter pidParameters); 00027 void setPitchRatePidParameters(PidWrapper::PidParameter pidParameters); 00028 void setRollRatePidParameters(PidWrapper::PidParameter pidParameters); 00029 PidWrapper::RatePidState getRatePidState(); 00030 PidWrapper::StabPidState getStabPidState(); 00031 00032 private: 00033 static void threadStarter(void const *p); 00034 void threadWorker(); 00035 RtosTimer* _rtosTimer; 00036 RateController* _rateController; 00037 StabController* _stabController; 00038 void saveSettings(); 00039 Status& _status; 00040 Sensors& _sensors; 00041 NavigationController& _navigationController; 00042 ConfigFileWrapper& _configFileWrapper; 00043 MotorMixer* _motorMixer; 00044 00045 PidWrapper::PidOutput _pidOutputs; 00046 }; 00047 00048 #endif
Generated on Fri Jul 15 2022 00:21:58 by 1.7.2