positive x axis self test, untested

This commit is contained in:
2021-06-11 11:53:43 +02:00
parent 95a3882fa1
commit b84a81556f
3 changed files with 425 additions and 644 deletions

View File

@ -49,6 +49,8 @@ private:
static const ReturnValue_t INTERNAL_PROCESSING_ERROR = MAKE_RETURN_CODE(0xA4);
static const ReturnValue_t REJECTED_WITHOUT_REASON = MAKE_RETURN_CODE(0xA5);
static const ReturnValue_t CMD_ERR_UNKNOWN = MAKE_RETURN_CODE(0xA6);
//! [EXPORT] : [COMMENT] The status reply to a self test command was received but no self test command has been sent. This should normally never happen.
static const ReturnValue_t UNEXPECTED_SELF_TEST_REPLY = MAKE_RETURN_CODE(0xA7);
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::IMTQ_HANDLER;
@ -73,11 +75,13 @@ private:
//! [EXPORT] : [COMMENT] Get self test result returns failure indicating that the coil current was outside of the expected range
//! P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA
static const Event SELF_TEST_COIL_CURRENT_FAILURE = MAKE_EVENT(7, severity::LOW);
//! [EXPORT] : [COMMENT] Received invalid error byte. This indicates an error of the communication link between IMTQ and OBC.
static const Event INVALID_ERROR_BYTE = MAKE_EVENT(8, severity::LOW);
IMTQ::EngHkDataset engHkDataset;
IMTQ::CalibratedMtmMeasurementSet calMtmMeasurementSet;
IMTQ::RawMtmMeasurementSet rawMtmMeasurementSet;
IMTQ::SelfTestDataset selfTestDataset;
IMTQ::PosXselfTestSet posXselfTestDataset;
uint8_t commandBuffer[IMTQ::MAX_COMMAND_SIZE];
@ -100,6 +104,12 @@ private:
bool selfTestPerformed = false;
/**
* @brief In case of a status reply to a single axis self test command, this function
* searches for the actual pending command.
*/
ReturnValue_t getSelfTestCommandId(DeviceCommandId_t* id);
/**
* @brief Each reply contains a status byte giving information about a request. This function
* parses this byte and returns the associated failure message.
@ -149,12 +159,17 @@ private:
void fillRawMtmDataset(const uint8_t* packet);
/**
* @brief This function fills the self test dataset and parses error bytes by means of the
* self test reply data.
* @param packet Pointer to the reply data holding the self test results.
* @brief This function handles all self test results. This comprises parsing the error byte
* and step byte and calling the function to fill the respective dataset.
*/
void handleSelfTestReply(const uint8_t* packet);
/**
* @brief The following functions fill the respective dataset of the single axis self tests.
* @param packet Pointer to the reply data holding the self test result.
*/
void handlePositiveXSelfTestReply(const uint8_t* packet);
/**
* @brief This function checks the error byte of a self test measurement.
*