IMTQ positive x dipole test
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_IMTQDEFINITIONS_H_
|
||||
#define MISSION_DEVICES_DEVICEDEFINITIONS_IMTQDEFINITIONS_H_
|
||||
|
||||
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
|
||||
|
||||
namespace IMTQ {
|
||||
|
||||
static const DeviceCommandId_t NONE = 0x0;
|
||||
@ -16,18 +18,23 @@ namespace IMTQ {
|
||||
static const DeviceCommandId_t POS_X_SELF_TEST = 0x7;
|
||||
static const DeviceCommandId_t NEG_X_SELF_TEST = 0x8;
|
||||
static const DeviceCommandId_t POS_Y_SELF_TEST = 0x9;
|
||||
static const DeviceCommandId_t NEG_Y_SELF_TEST = 0x10;
|
||||
static const DeviceCommandId_t POS_Z_SELF_TEST = 0x11;
|
||||
static const DeviceCommandId_t NEG_Z_SELF_TEST = 0x12;
|
||||
static const DeviceCommandId_t GET_SELF_TEST_RESULT = 0x13;
|
||||
static const DeviceCommandId_t NEG_Y_SELF_TEST = 0xA;
|
||||
static const DeviceCommandId_t POS_Z_SELF_TEST = 0xB;
|
||||
static const DeviceCommandId_t NEG_Z_SELF_TEST = 0xC;
|
||||
static const DeviceCommandId_t GET_SELF_TEST_RESULT = 0xD;
|
||||
|
||||
static const uint8_t GET_TEMP_REPLY_SIZE = 2;
|
||||
static const uint8_t CFGR_CMD_SIZE = 3;
|
||||
static const uint8_t POINTER_REG_SIZE = 1;
|
||||
|
||||
static const uint32_t ENG_HK_DATA_SET_ID = GET_ENG_HK_DATA;
|
||||
static const uint32_t CAL_MTM_SET = GET_CAL_MTM_MEASUREMENT;
|
||||
static const uint32_t SELF_TEST_DATA_SET = GET_SELF_TEST_RESULT;
|
||||
static const uint32_t ENG_HK_DATA_SET_ID = 1;
|
||||
static const uint32_t CAL_MTM_SET = 2;
|
||||
static const uint32_t POS_X_TEST_DATASET = 3;
|
||||
static const uint32_t NEG_X_TEST_DATASET = 4;
|
||||
static const uint32_t POS_Y_TEST_DATASET = 5;
|
||||
static const uint32_t NEG_Y_TEST_DATASET = 6;
|
||||
static const uint32_t POS_Z_TEST_DATASET = 7;
|
||||
static const uint32_t NEG_Z_TEST_DATASET = 8;
|
||||
|
||||
static const uint8_t SIZE_ENG_HK_COMMAND = 1;
|
||||
static const uint8_t SIZE_STATUS_REPLY = 2;
|
||||
@ -35,7 +42,7 @@ namespace IMTQ {
|
||||
static const uint8_t SIZE_GET_COMMANDED_DIPOLE_REPLY = 8;
|
||||
static const uint8_t SIZE_GET_CAL_MTM_MEASUREMENT = 15;
|
||||
static const uint8_t SIZE_GET_RAW_MTM_MEASUREMENT = 15;
|
||||
static const uint16_t SIZE_SELF_TEST_RESULTS = 320;
|
||||
static const uint16_t SIZE_SELF_TEST_RESULTS = 120;
|
||||
|
||||
static const uint16_t MAX_REPLY_SIZE = SIZE_SELF_TEST_RESULTS;
|
||||
static const uint8_t MAX_COMMAND_SIZE = 9;
|
||||
@ -447,9 +454,9 @@ public:
|
||||
* @brief This dataset can be used to store the self test results of the positve X axis test.
|
||||
*
|
||||
* @details Units of measurements:
|
||||
* Currents: [10^-4 A]
|
||||
* Raw MTM data: [7.5 * 10^-9 T]
|
||||
* Calibrated MTM data: [10^-9 T]
|
||||
* Raw magnetic field: [nT]
|
||||
* Calibrated magnetic field: [nT]
|
||||
* Coil currents: [mA]
|
||||
* Temperature: [<5B>C]
|
||||
* The self test generates for each axis the positive and negative dipole and measures
|
||||
* the magnetic field with the built-in MTM. The procedure of the test is as follows:
|
||||
@ -461,26 +468,26 @@ class PosXselfTestSet: public StaticLocalDataSet<SELF_TEST_DATASET_ENTRIES> {
|
||||
public:
|
||||
|
||||
PosXselfTestSet(HasLocalDataPoolIF* owner) :
|
||||
StaticLocalDataSet(owner, SELF_TEST_DATA_SET) {
|
||||
StaticLocalDataSet(owner, POS_X_TEST_DATASET) {
|
||||
}
|
||||
|
||||
PosXselfTestSet(object_id_t objectId) :
|
||||
StaticLocalDataSet(sid_t(objectId, SELF_TEST_DATA_SET)) {
|
||||
StaticLocalDataSet(sid_t(objectId, POS_X_TEST_DATASET)) {
|
||||
}
|
||||
|
||||
/** INIT block */
|
||||
lp_var_t<uint8_t> initErr = lp_var_t<uint8_t>(sid.objectId, INIT_POS_X_ERR, this);
|
||||
lp_var_t<uint32_t> initRawMagX = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<uint32_t> initRawMagY = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<uint32_t> initRawMagZ = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<uint32_t> initCalMagX = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<uint32_t> initCalMagY = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<uint32_t> initCalMagZ = lp_var_t<uint32_t>(sid.objectId, INIT_POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<uint16_t> initCoilXCurrent = lp_var_t<uint16_t>(sid.objectId, INIT_POS_X_COIL_X_CURRENT,
|
||||
lp_var_t<float> initRawMagX = lp_var_t<float>(sid.objectId, INIT_POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<float> initRawMagY = lp_var_t<float>(sid.objectId, INIT_POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<float> initRawMagZ = lp_var_t<float>(sid.objectId, INIT_POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<float> initCalMagX = lp_var_t<float>(sid.objectId, INIT_POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<float> initCalMagY = lp_var_t<float>(sid.objectId, INIT_POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<float> initCalMagZ = lp_var_t<float>(sid.objectId, INIT_POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<float> initCoilXCurrent = lp_var_t<float>(sid.objectId, INIT_POS_X_COIL_X_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> initCoilYCurrent = lp_var_t<uint16_t>(sid.objectId, INIT_POS_X_COIL_Y_CURRENT,
|
||||
lp_var_t<float> initCoilYCurrent = lp_var_t<float>(sid.objectId, INIT_POS_X_COIL_Y_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> initCoilZCurrent = lp_var_t<uint16_t>(sid.objectId, INIT_POS_X_COIL_Z_CURRENT,
|
||||
lp_var_t<float> initCoilZCurrent = lp_var_t<float>(sid.objectId, INIT_POS_X_COIL_Z_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> initCoilXTemperature = lp_var_t<uint16_t>(sid.objectId,
|
||||
INIT_POS_X_COIL_X_TEMPERATURE, this);
|
||||
@ -491,17 +498,17 @@ public:
|
||||
|
||||
/** +X block */
|
||||
lp_var_t<uint8_t> err = lp_var_t<uint8_t>(sid.objectId, POS_X_ERR, this);
|
||||
lp_var_t<uint32_t> rawMagX = lp_var_t<uint32_t>(sid.objectId, POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<uint32_t> rawMagY = lp_var_t<uint32_t>(sid.objectId, POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<uint32_t> rawMagZ = lp_var_t<uint32_t>(sid.objectId, POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<uint32_t> calMagX = lp_var_t<uint32_t>(sid.objectId, POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<uint32_t> calMagY = lp_var_t<uint32_t>(sid.objectId, POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<uint32_t> calMagZ = lp_var_t<uint32_t>(sid.objectId, POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<uint16_t> coilXCurrent = lp_var_t<uint16_t>(sid.objectId, POS_X_COIL_X_CURRENT,
|
||||
lp_var_t<float> rawMagX = lp_var_t<float>(sid.objectId, POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<float> rawMagY = lp_var_t<float>(sid.objectId, POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<float> rawMagZ = lp_var_t<float>(sid.objectId, POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<float> calMagX = lp_var_t<float>(sid.objectId, POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<float> calMagY = lp_var_t<float>(sid.objectId, POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<float> calMagZ = lp_var_t<float>(sid.objectId, POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<float> coilXCurrent = lp_var_t<float>(sid.objectId, POS_X_COIL_X_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> coilYCurrent = lp_var_t<uint16_t>(sid.objectId, POS_X_COIL_Y_CURRENT,
|
||||
lp_var_t<float> coilYCurrent = lp_var_t<float>(sid.objectId, POS_X_COIL_Y_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> coilZCurrent = lp_var_t<uint16_t>(sid.objectId, POS_X_COIL_Z_CURRENT,
|
||||
lp_var_t<float> coilZCurrent = lp_var_t<float>(sid.objectId, POS_X_COIL_Z_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> coilXTemperature = lp_var_t<uint16_t>(sid.objectId,
|
||||
POS_X_COIL_X_TEMPERATURE, this);
|
||||
@ -512,17 +519,17 @@ public:
|
||||
|
||||
/** FINA block */
|
||||
lp_var_t<uint8_t> finaErr = lp_var_t<uint8_t>(sid.objectId, FINA_POS_X_ERR, this);
|
||||
lp_var_t<uint32_t> finaRawMagX = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<uint32_t> finaRawMagY = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<uint32_t> finaRawMagZ = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<uint32_t> finaCalMagX = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<uint32_t> finaCalMagY = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<uint32_t> finaCalMagZ = lp_var_t<uint32_t>(sid.objectId, FINA_POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<uint16_t> finaCoilXCurrent = lp_var_t<uint16_t>(sid.objectId, FINA_POS_X_COIL_X_CURRENT,
|
||||
lp_var_t<float> finaRawMagX = lp_var_t<float>(sid.objectId, FINA_POS_X_RAW_MAG_X, this);
|
||||
lp_var_t<float> finaRawMagY = lp_var_t<float>(sid.objectId, FINA_POS_X_RAW_MAG_Y, this);
|
||||
lp_var_t<float> finaRawMagZ = lp_var_t<float>(sid.objectId, FINA_POS_X_RAW_MAG_Z, this);
|
||||
lp_var_t<float> finaCalMagX = lp_var_t<float>(sid.objectId, FINA_POS_X_CAL_MAG_X, this);
|
||||
lp_var_t<float> finaCalMagY = lp_var_t<float>(sid.objectId, FINA_POS_X_CAL_MAG_Y, this);
|
||||
lp_var_t<float> finaCalMagZ = lp_var_t<float>(sid.objectId, FINA_POS_X_CAL_MAG_Z, this);
|
||||
lp_var_t<float> finaCoilXCurrent = lp_var_t<float>(sid.objectId, FINA_POS_X_COIL_X_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> finaCoilYCurrent = lp_var_t<uint16_t>(sid.objectId, FINA_POS_X_COIL_Y_CURRENT,
|
||||
lp_var_t<float> finaCoilYCurrent = lp_var_t<float>(sid.objectId, FINA_POS_X_COIL_Y_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> finaCoilZCurrent = lp_var_t<uint16_t>(sid.objectId, FINA_POS_X_COIL_Z_CURRENT,
|
||||
lp_var_t<float> finaCoilZCurrent = lp_var_t<float>(sid.objectId, FINA_POS_X_COIL_Z_CURRENT,
|
||||
this);
|
||||
lp_var_t<uint16_t> finaCoilXTemperature = lp_var_t<uint16_t>(sid.objectId,
|
||||
FINA_POS_X_COIL_X_TEMPERATURE, this);
|
||||
|
Reference in New Issue
Block a user