2022-08-15 10:50:19 +02:00
|
|
|
#ifndef MISSION_CONTROLLER_CONTROLLERDEFINITIONS_ACSCTRLDEFINITIONS_H_
|
|
|
|
#define MISSION_CONTROLLER_CONTROLLERDEFINITIONS_ACSCTRLDEFINITIONS_H_
|
|
|
|
|
|
|
|
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
2022-08-15 17:25:16 +02:00
|
|
|
#include <fsfw/datapoollocal/localPoolDefinitions.h>
|
|
|
|
|
2022-08-15 10:50:19 +02:00
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
namespace acsctrl {
|
|
|
|
|
2022-08-19 15:49:22 +02:00
|
|
|
enum SetIds : uint32_t { MGM_SENSOR_DATA, SUS_SENSOR_DATA };
|
2022-08-15 10:50:19 +02:00
|
|
|
|
|
|
|
enum PoolIds : lp_id_t {
|
|
|
|
MGM_0_LIS3_UT,
|
|
|
|
MGM_1_RM3100_UT,
|
|
|
|
MGM_2_LIS3_UT,
|
|
|
|
MGM_3_RM3100_UT,
|
|
|
|
MGM_IMTQ_CAL_NT,
|
2022-08-17 09:27:19 +02:00
|
|
|
MGM_IMTQ_CAL_ACT_STATUS,
|
|
|
|
|
|
|
|
SUS_0_N_LOC_XFYFZM_PT_XF,
|
|
|
|
SUS_6_R_LOC_XFYBZM_PT_XF,
|
|
|
|
|
|
|
|
SUS_1_N_LOC_XBYFZM_PT_XB,
|
|
|
|
SUS_7_R_LOC_XBYBZM_PT_XB,
|
|
|
|
|
|
|
|
SUS_2_N_LOC_XFYBZB_PT_YB,
|
|
|
|
SUS_8_R_LOC_XBYBZB_PT_YB,
|
|
|
|
|
|
|
|
SUS_3_N_LOC_XFYBZF_PT_YF,
|
|
|
|
SUS_9_R_LOC_XBYBZB_PT_YF,
|
|
|
|
|
|
|
|
SUS_4_N_LOC_XMYFZF_PT_ZF,
|
|
|
|
SUS_10_N_LOC_XMYBZF_PT_ZF,
|
|
|
|
|
|
|
|
SUS_5_N_LOC_XFYMZB_PT_ZB,
|
|
|
|
SUS_11_R_LOC_XBYMZB_PT_ZB,
|
2022-08-15 10:50:19 +02:00
|
|
|
};
|
|
|
|
|
2022-08-16 11:27:16 +02:00
|
|
|
static constexpr uint8_t MGM_SET_ENTRIES = 10;
|
2022-08-17 09:27:19 +02:00
|
|
|
static constexpr uint8_t SUS_SET_ENTRIES = 12;
|
2022-08-15 10:50:19 +02:00
|
|
|
|
|
|
|
/**
|
2022-09-15 17:46:41 +02:00
|
|
|
* @brief Raw MGM sensor data. Includes the IMTQ sensor data and actuator status.
|
2022-08-15 10:50:19 +02:00
|
|
|
*/
|
2022-09-15 17:46:41 +02:00
|
|
|
class MgmDataRaw : public StaticLocalDataSet<MGM_SET_ENTRIES> {
|
2022-08-15 17:25:16 +02:00
|
|
|
public:
|
2022-09-15 17:46:41 +02:00
|
|
|
MgmDataRaw(HasLocalDataPoolIF* hkOwner) : StaticLocalDataSet(hkOwner, MGM_SENSOR_DATA) {}
|
2022-08-15 10:50:19 +02:00
|
|
|
|
|
|
|
// The ACS board measurement are in floating point uT
|
|
|
|
lp_vec_t<float, 3> mgm0Lis3 = lp_vec_t<float, 3>(sid.objectId, MGM_0_LIS3_UT, this);
|
|
|
|
lp_vec_t<float, 3> mgm1Rm3100 = lp_vec_t<float, 3>(sid.objectId, MGM_1_RM3100_UT, this);
|
|
|
|
lp_vec_t<float, 3> mgm2Lis3 = lp_vec_t<float, 3>(sid.objectId, MGM_2_LIS3_UT, this);
|
|
|
|
lp_vec_t<float, 3> mgm3Rm3100 = lp_vec_t<float, 3>(sid.objectId, MGM_3_RM3100_UT, this);
|
|
|
|
// The IMTQ measurements are in integer nT
|
2022-08-18 17:27:39 +02:00
|
|
|
lp_vec_t<float, 3> imtqRaw = lp_vec_t<float, 3>(sid.objectId, MGM_IMTQ_CAL_NT, this);
|
2022-08-15 17:25:16 +02:00
|
|
|
lp_var_t<uint8_t> actuationCalStatus =
|
|
|
|
lp_var_t<uint8_t>(sid.objectId, MGM_IMTQ_CAL_ACT_STATUS, this);
|
2022-08-15 10:50:19 +02:00
|
|
|
|
2022-08-15 17:25:16 +02:00
|
|
|
private:
|
2022-08-15 10:50:19 +02:00
|
|
|
};
|
|
|
|
|
2022-09-28 15:27:51 +02:00
|
|
|
class SusDataRaw : public StaticLocalDataSet<SUS_SET_ENTRIES> {
|
2022-08-19 15:49:22 +02:00
|
|
|
public:
|
2022-09-28 15:27:51 +02:00
|
|
|
SusDataRaw(HasLocalDataPoolIF* hkOwner) : StaticLocalDataSet(hkOwner, SUS_SENSOR_DATA) {}
|
|
|
|
|
|
|
|
lp_vec_t<uint16_t, 6> sus0 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_0_N_LOC_XFYFZM_PT_XF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus1 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_1_N_LOC_XBYFZM_PT_XB, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus2 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_2_N_LOC_XFYBZB_PT_YB, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus3 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_3_N_LOC_XFYBZF_PT_YF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus4 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_4_N_LOC_XMYFZF_PT_ZF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus5 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_5_N_LOC_XFYMZB_PT_ZB, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus6 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_6_R_LOC_XFYBZM_PT_XF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus7 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_7_R_LOC_XBYBZM_PT_XB, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus8 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_8_R_LOC_XBYBZB_PT_YB, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus9 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_9_R_LOC_XBYBZB_PT_YF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus10 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_10_N_LOC_XMYBZF_PT_ZF, this);
|
|
|
|
lp_vec_t<uint16_t, 6> sus11 = lp_vec_t<uint16_t, 6>(sid.objectId, SUS_11_R_LOC_XBYMZB_PT_ZB, this);
|
2022-08-19 15:49:22 +02:00
|
|
|
|
|
|
|
private:
|
2022-08-17 09:27:19 +02:00
|
|
|
};
|
|
|
|
|
2022-08-15 17:25:16 +02:00
|
|
|
} // namespace acsctrl
|
2022-08-15 10:50:19 +02:00
|
|
|
|
|
|
|
#endif /* MISSION_CONTROLLER_CONTROLLERDEFINITIONS_ACSCTRLDEFINITIONS_H_ */
|