New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
NavigationController/NavigationController.h
- Committer:
- joe4465
- Date:
- 2015-05-08
- Revision:
- 4:9ffbf9101992
- Parent:
- 2:969dfa4f2436
File content as of revision 4:9ffbf9101992:
#ifndef NavigationController_H #define NavigationController_H #include "mbed.h" #include "Global.h" #include "Status.h" #include "rtos.h" #include "Rc.h" #include "Sensors.h" #include "AltitudeController.h" #include "ConfigFileWrapper.h" class NavigationController { public: NavigationController(Status& status, Sensors& sensors, Rc& rc, ConfigFileWrapper& configFileWrapper); ~NavigationController(); struct SetPoint { double yaw; double pitch; double roll; double throttle; double yawTarget; double yawDifference; double climbRate; double targetAltitude; }; SetPoint getSetPoint(); void updateYawTarget(); void updateAltitudeTarget(); PidWrapper::NavigationControllerPidParameters getPidParameters(); void setAltitudeRatePidParameters(PidWrapper::PidParameter pidParameters); void setAltitudeStabPidParameters(PidWrapper::PidParameter pidParameters); private: static void threadStarter(void const *p); void threadWorker(); double map(double input, double inputMin, double inputMax, double outputMin, double outputMax); Thread* _thread; Status& _status; Sensors& _sensors; Rc& _rc; ConfigFileWrapper& _configFileWrapper; void saveSettings(); SetPoint _setPoints; AltitudeController* _altitudeController; Status::State _state; Status::NavigationMode _navigationMode; Rc::MappedRc _mappedRc; Imu::Angle _angle; Sensors::Altitude _altitude; double _altitudeHoldPidOutput; }; #endif