#ifndef ACS_CONTROL_DETUMBLE_H_
#define ACS_CONTROL_DETUMBLE_H_

#include <fsfw/returnvalues/returnvalue.h>
#include <mission/acs/defs.h>
#include <stdio.h>
#include <string.h>

class Detumble {
 public:
  Detumble();
  virtual ~Detumble();

  uint8_t detumbleStrategy(const bool magFieldValid, const bool satRotRateValid,
                           const bool magFieldRateValid, const bool useFullDetumbleLaw);

  void bDotLawFull(const double *satRotRateB, const double *magFieldB, double *magMomB,
                   double gain);

  void bDotLaw(const double *magRateB, const double *magFieldB, double *magMomB, double gain);

 private:
};

#endif /*ACS_CONTROL_DETUMBLE_H_*/