#ifndef NAVIGATION_H_ #define NAVIGATION_H_ #include <fsfw/coordinates/Sgp4Propagator.h> #include <mission/acs/defs.h> #include <mission/controller/acs/AcsParameters.h> #include <mission/controller/acs/MultiplicativeKalmanFilter.h> #include <mission/controller/acs/SensorProcessing.h> #include <mission/controller/acs/SensorValues.h> #include <mission/controller/controllerdefinitions/AcsCtrlDefinitions.h> class Navigation { public: Navigation(); virtual ~Navigation(); ReturnValue_t useMekf(ACS::SensorValues *sensorValues, acsctrl::GyrDataProcessed *gyrDataProcessed, acsctrl::MgmDataProcessed *mgmDataProcessed, acsctrl::SusDataProcessed *susDataProcessed, acsctrl::MekfData *mekfData, AcsParameters *acsParameters); void resetMekf(acsctrl::MekfData *mekfData); ReturnValue_t useSpg4(timeval now, acsctrl::GpsDataProcessed *gpsDataProcessed); ReturnValue_t updateTle(const uint8_t *line1, const uint8_t *line2); protected: private: MultiplicativeKalmanFilter multiplicativeKalmanFilter; ReturnValue_t mekfStatus = MultiplicativeKalmanFilter::MEKF_UNINITIALIZED; Sgp4Propagator sgp4Propagator; }; #endif /* ACS_NAVIGATION_H_ */