New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
Sensors/Sensors.h
- Committer:
- joe4465
- Date:
- 2015-04-01
- Revision:
- 2:969dfa4f2436
- Parent:
- 0:c6a85bb2a827
- Child:
- 3:4823d6750629
File content as of revision 2:969dfa4f2436:
#include "mbed.h" #include "Global.h" #include "rtos.h" #include "Gps.h" #include "Imu.h" #include "Status.h" #include "LidarLitePwm.h" #include "Kalman.h" #ifndef Sensors_H #define Sensors_H #define PI 3.14159265 class Sensors { public: Sensors(Status& status, ConfigFileWrapper& configFileWrapper, PinName gpsPinTx, PinName gpsPinRx, PinName i2cSda, PinName i2cScl, PinName lidarInterrupt); ~Sensors(); struct Position { double accelX; double accelY; double accelZ; double latitude; double longitude; double computedX; double computedY; }; struct Altitude { double lidar; double barometer; double gps; double computed; }; void update(); Imu::Rate getRate(); Imu::Angle getAngle(); Gps::Value getGpsValues(); double getZVelocity(); Sensors::Altitude getAltitude(); Sensors::Position getPosition(); void enable(bool enable); void zeroBarometer(); void updateImu(); void zeroAccel(); private: void zeroGyro(); void updateGpsValues(); void updateAltitude(); void updateVelocity(); void updatePosition(); int getLidarAltitude(); Status& _status; Imu::Rate _rate; Imu::Angle _angle; Position _position; Altitude _altitude; Gps::Value _gpsValues; Imu* _imu; Gps* _gps; LidarLitePwm* _lidar; Kalman* _altitudeKalmanFilter; }; #endif