51 lines
2.0 KiB
C++
51 lines
2.0 KiB
C++
#ifndef MISSION_CONTROLLER_ACS_SUSCONVERTER_H_
|
|
#define MISSION_CONTROLLER_ACS_SUSCONVERTER_H_
|
|
|
|
#include <fsfw/datapoollocal/LocalPoolVector.h>
|
|
#include <stdint.h>
|
|
|
|
#include "AcsParameters.h"
|
|
|
|
class SusConverter {
|
|
public:
|
|
SusConverter() {}
|
|
|
|
bool checkSunSensorData(const uint16_t susChannel[6]);
|
|
|
|
void calcAngle(const uint16_t susChannel[6]);
|
|
void calibration(const float coeffAlpha[9][10], const float coeffBeta[9][10]);
|
|
float* calculateSunVector();
|
|
|
|
float* getSunVectorSensorFrame(const uint16_t susChannel[6], const float coeffAlpha[9][10],
|
|
const float coeffBeta[9][10]);
|
|
|
|
private:
|
|
float alphaBetaRaw[2]; //[°]
|
|
float alphaBetaCalibrated[2]; //[°]
|
|
float sunVectorSensorFrame[3]; //[-]
|
|
|
|
bool validFlag[12] = {returnvalue::OK, returnvalue::OK, returnvalue::OK, returnvalue::OK,
|
|
returnvalue::OK, returnvalue::OK, returnvalue::OK, returnvalue::OK,
|
|
returnvalue::OK, returnvalue::OK, returnvalue::OK, returnvalue::OK};
|
|
|
|
static const uint8_t GNDREF = 4;
|
|
// =2^12[Bit]high borderline for the channel values of one sun sensor for validity Check
|
|
static constexpr uint16_t SUS_CHANNEL_VALUE_HIGH = 4096;
|
|
// [Bit]low borderline for the channel values of one sun sensor for validity Check
|
|
static constexpr uint8_t SUS_CHANNEL_VALUE_LOW = 0;
|
|
// 4096[Bit]high borderline for check if the sun sensor is illuminated by the sun or by the
|
|
// reflection of sunlight from the moon/earth
|
|
static constexpr uint16_t SUS_CHANNEL_SUM_HIGH = 100;
|
|
// [Bit]low borderline for check if the sun sensor is illuminated by the sun or by the reflection
|
|
// of sunlight from the moon/earth
|
|
static constexpr uint8_t SUS_CHANNEL_SUM_LOW = 0;
|
|
// [°] Width of the calibration cells --> necessary for checking in
|
|
// which cell a data point should be
|
|
static const uint8_t completeCellWidth = 140, halfCellWidth = 70;
|
|
uint16_t susChannelValueSum = 0;
|
|
|
|
AcsParameters acsParameters;
|
|
};
|
|
|
|
#endif /* MISSION_CONTROLLER_ACS_SUSCONVERTER_H_ */
|