2022-09-19 15:37:05 +02:00
|
|
|
#ifndef SENSORVALUES_H_
|
|
|
|
#define SENSORVALUES_H_
|
|
|
|
|
2022-10-10 16:02:57 +02:00
|
|
|
|
|
|
|
#include <commonObjects.h>
|
|
|
|
#include "mission/devices/devicedefinitions/SusDefinitions.h"
|
|
|
|
#include "fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h"
|
|
|
|
#include "fsfw_hal/devicehandlers/MgmRM3100Handler.h"
|
|
|
|
#include "mission/devices/devicedefinitions/IMTQHandlerDefinitions.h"
|
2022-09-19 15:37:05 +02:00
|
|
|
|
|
|
|
namespace ACS {
|
|
|
|
|
2022-09-20 15:45:49 +02:00
|
|
|
class SensorValues{
|
2022-10-10 16:02:57 +02:00
|
|
|
public:
|
|
|
|
SensorValues();
|
|
|
|
virtual ~SensorValues();
|
|
|
|
|
|
|
|
ReturnValue_t update();
|
|
|
|
ReturnValue_t updateMgm();
|
|
|
|
ReturnValue_t updateSus();
|
|
|
|
|
|
|
|
MGMLIS3MDL::MgmPrimaryDataset mgm0Lis3Set =
|
|
|
|
MGMLIS3MDL::MgmPrimaryDataset(objects::MGM_0_LIS3_HANDLER);
|
|
|
|
RM3100::Rm3100PrimaryDataset mgm1Rm3100Set =
|
|
|
|
RM3100::Rm3100PrimaryDataset(objects::MGM_1_RM3100_HANDLER);
|
|
|
|
MGMLIS3MDL::MgmPrimaryDataset mgm2Lis3Set =
|
|
|
|
MGMLIS3MDL::MgmPrimaryDataset(objects::MGM_2_LIS3_HANDLER);
|
|
|
|
RM3100::Rm3100PrimaryDataset mgm3Rm3100Set =
|
|
|
|
RM3100::Rm3100PrimaryDataset(objects::MGM_3_RM3100_HANDLER);
|
|
|
|
IMTQ::RawMtmMeasurementSet imtqMgmSet = IMTQ::RawMtmMeasurementSet(objects::IMTQ_HANDLER);
|
|
|
|
|
|
|
|
std::array<SUS::SusDataset, 12> susSets{
|
|
|
|
SUS::SusDataset(objects::SUS_0_N_LOC_XFYFZM_PT_XF),
|
|
|
|
SUS::SusDataset(objects::SUS_1_N_LOC_XBYFZM_PT_XB),
|
|
|
|
SUS::SusDataset(objects::SUS_2_N_LOC_XFYBZB_PT_YB),
|
|
|
|
SUS::SusDataset(objects::SUS_3_N_LOC_XFYBZF_PT_YF),
|
|
|
|
SUS::SusDataset(objects::SUS_4_N_LOC_XMYFZF_PT_ZF),
|
|
|
|
SUS::SusDataset(objects::SUS_5_N_LOC_XFYMZB_PT_ZB),
|
|
|
|
SUS::SusDataset(objects::SUS_6_R_LOC_XFYBZM_PT_XF),
|
|
|
|
SUS::SusDataset(objects::SUS_7_R_LOC_XBYBZM_PT_XB),
|
|
|
|
SUS::SusDataset(objects::SUS_8_R_LOC_XBYBZB_PT_YB),
|
|
|
|
SUS::SusDataset(objects::SUS_9_R_LOC_XBYBZB_PT_YF),
|
|
|
|
SUS::SusDataset(objects::SUS_10_N_LOC_XMYBZF_PT_ZF),
|
|
|
|
SUS::SusDataset(objects::SUS_11_R_LOC_XBYMZB_PT_ZB),
|
|
|
|
};
|
|
|
|
|
|
|
|
double rmu0[3];
|
|
|
|
double rmu1[3];
|
|
|
|
double rmu2[3];
|
|
|
|
|
|
|
|
bool rmu0Valid;
|
|
|
|
bool rmu1Valid;
|
|
|
|
bool rmu2Valid;
|
|
|
|
|
|
|
|
double quatJB[4]; // output star tracker. quaternion or dcm ? refrence to which KOS?
|
|
|
|
bool quatJBValid;
|
|
|
|
int strIntTime[2];
|
|
|
|
|
|
|
|
double gps0latitude; // Reference is WGS84, so this one will probably be geodetic
|
|
|
|
double gps0longitude; // Should be geocentric for IGRF
|
|
|
|
double gps0altitude;
|
|
|
|
double gps0Velocity[3]; // speed over ground = ??
|
|
|
|
double gps0Time; // utc
|
|
|
|
|
|
|
|
// valid ids for gps values !
|
|
|
|
int gps0TimeYear;
|
|
|
|
int gps0TimeMonth;
|
|
|
|
int gps0TimeHour; // should be double
|
|
|
|
bool gps0Valid;
|
|
|
|
|
|
|
|
bool mgt0valid;
|
|
|
|
|
|
|
|
// Reaction wheel measurements
|
|
|
|
double speedRw0; // RPM [1/min]
|
|
|
|
double speedRw1; // RPM [1/min]
|
|
|
|
double speedRw2; // RPM [1/min]
|
|
|
|
double speedRw3; // RPM [1/min]
|
|
|
|
bool validRw0;
|
|
|
|
bool validRw1;
|
|
|
|
bool validRw2;
|
|
|
|
bool validRw3;
|
2022-09-19 15:37:05 +02:00
|
|
|
};
|
|
|
|
} /* namespace ACS */
|
|
|
|
|
2022-09-26 13:23:20 +02:00
|
|
|
#endif /*ENSORVALUES_H_*/
|