#ifndef NAVIGATION_H_ #define NAVIGATION_H_ #include #include #include #include #include #include class Navigation { public: Navigation(AcsParameters *acsParameters); virtual ~Navigation(); ReturnValue_t useMekf(const ACS::SensorValues *sensorValues, const acsctrl::GyrDataProcessed *gyrDataProcessed, const acsctrl::MgmDataProcessed *mgmDataProcessed, const acsctrl::SusDataProcessed *susDataProcessed, const double timeDelta, acsctrl::AttitudeEstimationData *attitudeEstimationData, const bool allowStr); void resetMekf(acsctrl::AttitudeEstimationData *mekfData); ReturnValue_t useSpg4(timeval now, acsctrl::GpsDataProcessed *gpsDataProcessed); ReturnValue_t updateTle(const uint8_t *line1, const uint8_t *line2); void updateMekfStandardDeviations(const AcsParameters *acsParameters); protected: private: MultiplicativeKalmanFilter multiplicativeKalmanFilter; ReturnValue_t mekfStatus = MultiplicativeKalmanFilter::MEKF_UNINITIALIZED; Sgp4Propagator sgp4Propagator; }; #endif /* ACS_NAVIGATION_H_ */