/* * Detumble.h * * Created on: 17 Aug 2022 * Author: Robin Marquardt */ #ifndef ACS_CONTROL_DETUMBLE_H_ #define ACS_CONTROL_DETUMBLE_H_ #include "../SensorValues.h" #include "../OutputValues.h" #include "../AcsParameters.h" #include "../config/classIds.h" #include #include #include #include class Detumble{ public: Detumble(AcsParameters *acsParameters_); virtual ~Detumble(); static const uint8_t INTERFACE_ID = CLASS_ID::DETUMBLE; static const ReturnValue_t DETUMBLE_NO_SENSORDATA = MAKE_RETURN_CODE(0x01); /* @brief: Load AcsParameters für this class * @param: acsParameters_ Pointer to object which defines the ACS configuration parameters */ void loadAcsParameters(AcsParameters *acsParameters_); ReturnValue_t bDotLaw(const double *magRate, const bool *magRateValid, const double *magField, const bool *magFieldValid, double *magMom); ReturnValue_t bangbangLaw(const double *magRate, const bool *magRateValid, double *magMom); private: AcsParameters::DetumbleCtrlParameters* detumbleCtrlParameters; AcsParameters::MagnetorquesParameter* magnetorquesParameter; }; #endif /*ACS_CONTROL_DETUMBLE_H_*/