positive x axis self test, untested
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
|
||||
IMTQHandler::IMTQHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie) :
|
||||
DeviceHandlerBase(objectId, comIF, comCookie), engHkDataset(this), calMtmMeasurementSet(
|
||||
this), rawMtmMeasurementSet(this), selfTestDataset(this) {
|
||||
this), rawMtmMeasurementSet(this), posXselfTestDataset(this) {
|
||||
if (comCookie == NULL) {
|
||||
sif::error << "IMTQHandler: Invalid com cookie" << std::endl;
|
||||
}
|
||||
@ -18,14 +18,11 @@ IMTQHandler::~IMTQHandler() {
|
||||
|
||||
|
||||
void IMTQHandler::doStartUp(){
|
||||
if(selfTestPerformed == true){
|
||||
#if OBSW_SWITCH_TO_NORMAL_MODE_AFTER_STARTUP == 1
|
||||
setMode(MODE_NORMAL);
|
||||
#else
|
||||
setMode(_MODE_TO_ON);
|
||||
#endif
|
||||
selfTestPerformed = false;
|
||||
}
|
||||
}
|
||||
|
||||
void IMTQHandler::doShutDown(){
|
||||
@ -61,31 +58,16 @@ ReturnValue_t IMTQHandler::buildNormalDeviceCommand(
|
||||
|
||||
ReturnValue_t IMTQHandler::buildTransitionDeviceCommand(
|
||||
DeviceCommandId_t * id){
|
||||
if (mode == _MODE_START_UP) {
|
||||
switch (startupStep) {
|
||||
case StartupStep::COMMAND_SELF_TEST:
|
||||
*id = IMTQ::SELF_TEST_CMD;
|
||||
startupStep = StartupStep::GET_SELF_TEST_RESULT;
|
||||
break;
|
||||
case StartupStep::GET_SELF_TEST_RESULT:
|
||||
*id = IMTQ::GET_SELF_TEST_RESULT;
|
||||
startupStep = StartupStep::NONE;
|
||||
break;
|
||||
default:
|
||||
sif::debug << "IMTQHandler::buildTransitionDeviceCommand: Unknown startup step"
|
||||
<< std::endl;
|
||||
}
|
||||
}
|
||||
return buildCommandFromCommand(*id, nullptr, 0);;
|
||||
return RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t IMTQHandler::buildCommandFromCommand(
|
||||
DeviceCommandId_t deviceCommand, const uint8_t * commandData,
|
||||
size_t commandDataLen) {
|
||||
switch(deviceCommand) {
|
||||
case(IMTQ::SELF_TEST_CMD): {
|
||||
case(IMTQ::POS_X_SELF_TEST): {
|
||||
commandBuffer[0] = IMTQ::CC::SELF_TEST_CMD;
|
||||
commandBuffer[1] = IMTQ::SELF_TEST_AXIS::ALL;
|
||||
commandBuffer[1] = IMTQ::SELF_TEST_AXIS::X_POSITIVE;
|
||||
rawPacket = commandBuffer;
|
||||
rawPacketLen = 2;
|
||||
return RETURN_OK;
|
||||
@ -148,7 +130,17 @@ ReturnValue_t IMTQHandler::buildCommandFromCommand(
|
||||
}
|
||||
|
||||
void IMTQHandler::fillCommandAndReplyMap() {
|
||||
this->insertInCommandAndReplyMap(IMTQ::SELF_TEST_CMD, 1, nullptr,
|
||||
this->insertInCommandAndReplyMap(IMTQ::POS_X_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::NEG_X_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::POS_Y_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::NEG_Y_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::POS_Z_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::NEG_Z_SELF_TEST, 1, nullptr,
|
||||
IMTQ::SIZE_STATUS_REPLY);
|
||||
this->insertInCommandAndReplyMap(IMTQ::GET_SELF_TEST_RESULT, 1, nullptr,
|
||||
IMTQ::SIZE_SELF_TEST_RESULTS);
|
||||
@ -198,8 +190,8 @@ ReturnValue_t IMTQHandler::scanForReply(const uint8_t *start,
|
||||
break;
|
||||
case(IMTQ::CC::SELF_TEST_CMD):
|
||||
*foundLen = IMTQ::SIZE_STATUS_REPLY;
|
||||
*foundId = IMTQ::SELF_TEST_CMD;
|
||||
break;
|
||||
result = getSelfTestCommandId(foundId);
|
||||
break;
|
||||
case(IMTQ::CC::GET_SELF_TEST_RESULT):
|
||||
*foundLen = IMTQ::SIZE_SELF_TEST_RESULTS;
|
||||
*foundId = IMTQ::GET_SELF_TEST_RESULT;
|
||||
@ -225,7 +217,12 @@ ReturnValue_t IMTQHandler::interpretDeviceReply(DeviceCommandId_t id,
|
||||
}
|
||||
|
||||
switch (id) {
|
||||
case (IMTQ::SELF_TEST_CMD):
|
||||
case (IMTQ::POS_X_SELF_TEST):
|
||||
case (IMTQ::NEG_X_SELF_TEST):
|
||||
case (IMTQ::POS_Y_SELF_TEST):
|
||||
case (IMTQ::NEG_Y_SELF_TEST):
|
||||
case (IMTQ::POS_Z_SELF_TEST):
|
||||
case (IMTQ::NEG_Z_SELF_TEST):
|
||||
case (IMTQ::START_ACTUATION_DIPOLE):
|
||||
case (IMTQ::START_MTM_MEASUREMENT):
|
||||
/* Replies only the status byte which is already handled with parseStatusByte */
|
||||
@ -290,20 +287,20 @@ ReturnValue_t IMTQHandler::initializeLocalDataPool(localpool::DataPool& localDat
|
||||
localDataPoolMap.emplace(IMTQ::MTM_RAW_Z, new PoolEntry<float>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::ACTUATION_RAW_STATUS, new PoolEntry<uint8_t>( { 0 }));
|
||||
|
||||
/** Entries of dataset for self test results */
|
||||
localDataPoolMap.emplace(IMTQ::INIT_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_RAW_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_RAW_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_CAL_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_CAL_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_CAL_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_X_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_Y_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_Z_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_X_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
/** Entries of dataset for self test results of positive X axis test */
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_RAW_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_RAW_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_CAL_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_CAL_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_CAL_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_X_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_Y_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_Z_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_X_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
|
||||
localDataPoolMap.emplace(IMTQ::POS_X_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::POS_X_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
@ -319,6 +316,20 @@ ReturnValue_t IMTQHandler::initializeLocalDataPool(localpool::DataPool& localDat
|
||||
localDataPoolMap.emplace(IMTQ::POS_X_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::POS_X_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
|
||||
localDataPoolMap.emplace(IMTQ::INIT_POS_X_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_RAW_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_RAW_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_CAL_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_CAL_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_CAL_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_X_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_Y_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_Z_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_X_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_POS_X_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
|
||||
localDataPoolMap.emplace(IMTQ::NEG_X_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::NEG_X_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::NEG_X_RAW_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
@ -389,23 +400,28 @@ ReturnValue_t IMTQHandler::initializeLocalDataPool(localpool::DataPool& localDat
|
||||
localDataPoolMap.emplace(IMTQ::NEG_Z_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::NEG_Z_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
|
||||
localDataPoolMap.emplace(IMTQ::FINA_ERR, new PoolEntry<uint8_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_RAW_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_RAW_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_RAW_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_CAL_MAG_X, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_CAL_MAG_Y, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_CAL_MAG_Z, new PoolEntry<uint32_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_X_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_Y_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_Z_CURRENT, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_X_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_Y_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
localDataPoolMap.emplace(IMTQ::FINA_COIL_Z_TEMPERATURE, new PoolEntry<uint16_t>( { 0 }));
|
||||
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t IMTQHandler::getSelfTestCommandId(DeviceCommandId_t* id) {
|
||||
DeviceCommandId_t commandId = getPendingCommand();
|
||||
switch(commandId) {
|
||||
case IMTQ::POS_X_SELF_TEST:
|
||||
case IMTQ::NEG_X_SELF_TEST:
|
||||
case IMTQ::POS_Y_SELF_TEST:
|
||||
case IMTQ::NEG_Y_SELF_TEST:
|
||||
case IMTQ::POS_Z_SELF_TEST:
|
||||
case IMTQ::NEG_Z_SELF_TEST:
|
||||
*id = commandId;
|
||||
break;
|
||||
default:
|
||||
sif::error << "IMTQHandler::getSelfTestCommandId: Reply does not match to pending "
|
||||
<< "command" << std::endl;
|
||||
return UNEXPECTED_SELF_TEST_REPLY;
|
||||
}
|
||||
return RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t IMTQHandler::parseStatusByte(const uint8_t* packet) {
|
||||
uint8_t cmdErrorField = *(packet + 1) & 0xF;
|
||||
switch (cmdErrorField) {
|
||||
@ -575,506 +591,209 @@ void IMTQHandler::fillRawMtmDataset(const uint8_t* packet) {
|
||||
}
|
||||
|
||||
void IMTQHandler::handleSelfTestReply(const uint8_t* packet) {
|
||||
PoolReadGuard rg(&selfTestDataset);
|
||||
|
||||
/** Init measurements */
|
||||
int8_t offset = 2;
|
||||
uint16_t offset = 2;
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
selfTestDataset.initErr = *(packet + offset);
|
||||
|
||||
switch(*(packet + IMTQ::MAIN_STEP_OFFSET)) {
|
||||
case IMTQ::SELF_TEST_STEPS::X_POSITIVE: {
|
||||
handlePositiveXSelfTestReply(packet);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void IMTQHandler::handlePositiveXSelfTestReply(const uint8_t* packet) {
|
||||
PoolReadGuard rg(&posXselfTestDataset);
|
||||
|
||||
uint16_t offset = 2;
|
||||
/** Init measurements */
|
||||
posXselfTestDataset.initErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.initRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.initCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.initCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.initCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.initCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.initCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.initCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.initCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.initCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** +X measurements */
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
selfTestDataset.posXErr = *(packet + offset);
|
||||
posXselfTestDataset.err = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.posXRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.rawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.rawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.rawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.calMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.calMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.calMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posXCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posXCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posXCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posXCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posXCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posXCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
|
||||
/** -X measurements */
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
selfTestDataset.negXErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.negXRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negXCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negXCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negXCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negXCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negXCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negXCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** +Y measurements */
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
selfTestDataset.posYErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.posYRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posYCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posYCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posYCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posYCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posYCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posYCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** -Y measurements */
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
selfTestDataset.negYErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.negYRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negYCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negYCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negYCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negYCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negYCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negYCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** +Z measurements */
|
||||
selfTestDataset.posZErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.posZRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.posZCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posZCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posZCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posZCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posZCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.posZCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** -Z measurements */
|
||||
selfTestDataset.negZErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.negZRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.negZCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negZCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negZCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negZCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negZCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.negZCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.coilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
/** FINA measurements */
|
||||
selfTestDataset.finaErr = *(packet + offset);
|
||||
checkErrorByte(*(packet + offset), *(packet + offset + 1));
|
||||
posXselfTestDataset.finaErr = *(packet + offset);
|
||||
offset += 2; // STEP byte will not be stored
|
||||
selfTestDataset.finaRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaRawMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaRawMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaRawMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaCalMagX = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaCalMagY = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
posXselfTestDataset.finaCalMagZ = *(packet + offset + 3) << 24 | *(packet + offset + 2) << 16
|
||||
| *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
selfTestDataset.finaCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilXCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.finaCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilYCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.finaCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilZCurrent = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.finaCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilXTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.finaCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilYTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 2;
|
||||
selfTestDataset.finaCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
posXselfTestDataset.finaCoilZTemperature = *(packet + offset + 1) << 8 | *(packet + offset);
|
||||
offset += 4;
|
||||
|
||||
#if OBSW_VERBOSE_LEVEL >= 1 && IMTQ_DEBUG == 1
|
||||
sif::info << "IMTQ self test (INIT) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.initErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field X: " << selfTestDataset.initRawMagX
|
||||
<< static_cast<unsigned int>(posXselfTestDataset.initErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field X: " << posXselfTestDataset.initRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field Y: " << selfTestDataset.initRawMagY
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field Y: " << posXselfTestDataset.initRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field Z: " << selfTestDataset.initRawMagZ
|
||||
sif::info << "IMTQ self test (INIT) raw magnetic field Z: " << posXselfTestDataset.initRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field X: " << selfTestDataset.initCalMagX
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field X: " << posXselfTestDataset.initCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field Y: " << selfTestDataset.initCalMagY
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field Y: " << posXselfTestDataset.initCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field Z: " << selfTestDataset.initCalMagZ
|
||||
sif::info << "IMTQ self test (INIT) calibrated magnetic field Z: " << posXselfTestDataset.initCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil X current: " << selfTestDataset.initCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Y current: " << selfTestDataset.initCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Z current: " << selfTestDataset.initCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil X current: " << posXselfTestDataset.initCoilXCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Y current: " << posXselfTestDataset.initCoilYCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Z current: " << posXselfTestDataset.initCoilZCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil X temperature: "
|
||||
<< selfTestDataset.initCoilXTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.initCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Y temperature: "
|
||||
<< selfTestDataset.initCoilYTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.initCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (INIT) coil Z temperature: "
|
||||
<< selfTestDataset.initCoilZTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.initCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (+X) err: " <<
|
||||
static_cast<unsigned int>(selfTestDataset.posXErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field X: " << selfTestDataset.posXRawMagX
|
||||
static_cast<unsigned int>(posXselfTestDataset.err.value) << std::endl;
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field X: " << posXselfTestDataset.rawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field Y: " << selfTestDataset.posXRawMagY
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field Y: " << posXselfTestDataset.rawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field Z: " << selfTestDataset.posXRawMagZ
|
||||
sif::info << "IMTQ self test (+X) raw magnetic field Z: " << posXselfTestDataset.rawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field X: " << selfTestDataset.posXCalMagX
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field X: " << posXselfTestDataset.calMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field Y: " << selfTestDataset.posXCalMagY
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field Y: " << posXselfTestDataset.calMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field Z: " << selfTestDataset.posXCalMagZ
|
||||
sif::info << "IMTQ self test (+X) calibrated magnetic field Z: " << posXselfTestDataset.calMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil X current: " << selfTestDataset.posXCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Y current: " << selfTestDataset.posXCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Z current: " << selfTestDataset.initCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil X current: " << posXselfTestDataset.coilXCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Y current: " << posXselfTestDataset.coilYCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Z current: " << posXselfTestDataset.coilZCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil X temperature: "
|
||||
<< selfTestDataset.posXCoilXTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.coilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Y temperature: "
|
||||
<< selfTestDataset.posXCoilYTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.coilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+X) coil Z temperature: "
|
||||
<< selfTestDataset.posXCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (-X) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.negXErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (-X) raw magnetic field X: " << selfTestDataset.negXRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) raw magnetic field Y: " << selfTestDataset.negXRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) raw magnetic field Z: " << selfTestDataset.negXRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) calibrated magnetic field X: " << selfTestDataset.negXCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) calibrated magnetic field Y: " << selfTestDataset.negXCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) calibrated magnetic field Z: " << selfTestDataset.negXCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil X current: " << selfTestDataset.negXCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil Y current: " << selfTestDataset.negXCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil Z current: " << selfTestDataset.negXCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil X temperature: "
|
||||
<< selfTestDataset.negXCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil Y temperature: "
|
||||
<< selfTestDataset.negXCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-X) coil Z temperature: "
|
||||
<< selfTestDataset.negXCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (+Y) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.posYErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) raw magnetic field X: " << selfTestDataset.posYRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) raw magnetic field Y: " << selfTestDataset.posYRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) raw magnetic field Z: " << selfTestDataset.posYRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) calibrated magnetic field X: " << selfTestDataset.posYCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) calibrated magnetic field Y: " << selfTestDataset.posYCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) calibrated magnetic field Z: " << selfTestDataset.posYCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil X current: " << selfTestDataset.posYCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil Y current: " << selfTestDataset.posYCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil Z current: " << selfTestDataset.posYCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil X temperature: "
|
||||
<< selfTestDataset.posYCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil Y temperature: "
|
||||
<< selfTestDataset.posYCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+Y) coil Z temperature: "
|
||||
<< selfTestDataset.posYCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (-Y) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.negYErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) raw magnetic field X: " << selfTestDataset.negYRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) raw magnetic field Y: " << selfTestDataset.negYRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) raw magnetic field Z: " << selfTestDataset.negYRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) calibrated magnetic field X: " << selfTestDataset.negYCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) calibrated magnetic field Y: " << selfTestDataset.negYCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) calibrated magnetic field Z: " << selfTestDataset.negYCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil X current: " << selfTestDataset.negYCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil Y current: " << selfTestDataset.negYCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil Z current: " << selfTestDataset.negYCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil X temperature: "
|
||||
<< selfTestDataset.negYCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil Y temperature: "
|
||||
<< selfTestDataset.negYCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-Y) coil Z temperature: "
|
||||
<< selfTestDataset.negYCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (+Z) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.posZErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) raw magnetic field X: " << selfTestDataset.posZRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) raw magnetic field Y: " << selfTestDataset.posZRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) raw magnetic field Z: " << selfTestDataset.posZRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) calibrated magnetic field X: " << selfTestDataset.posZCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) calibrated magnetic field Y: " << selfTestDataset.posZCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) calibrated magnetic field Z: " << selfTestDataset.posZCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil X current: " << selfTestDataset.posZCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil Y current: " << selfTestDataset.posZCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil Z current: " << selfTestDataset.posZCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil X temperature: "
|
||||
<< selfTestDataset.posZCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil Y temperature: "
|
||||
<< selfTestDataset.posZCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (+Z) coil Z temperature: "
|
||||
<< selfTestDataset.posZCoilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (-Z) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.negZErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) raw magnetic field X: " << selfTestDataset.negZRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) raw magnetic field Y: " << selfTestDataset.negZRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) raw magnetic field Z: " << selfTestDataset.negZRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) calibrated magnetic field X: " << selfTestDataset.negZCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) calibrated magnetic field Y: " << selfTestDataset.negZCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) calibrated magnetic field Z: " << selfTestDataset.negZCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil X current: " << selfTestDataset.negZCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil Y current: " << selfTestDataset.negZCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil Z current: " << selfTestDataset.negZCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil X temperature: "
|
||||
<< selfTestDataset.negZCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil Y temperature: "
|
||||
<< selfTestDataset.negZCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (-Z) coil Z temperature: "
|
||||
<< selfTestDataset.negZCoilZTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.coilZTemperature << " °C" << std::endl;
|
||||
|
||||
sif::info << "IMTQ self test (FINA) err: "
|
||||
<< static_cast<unsigned int>(selfTestDataset.finaErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field X: " << selfTestDataset.finaRawMagX
|
||||
<< static_cast<unsigned int>(posXselfTestDataset.finaErr.value) << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field X: " << posXselfTestDataset.finaRawMagX
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field Y: " << selfTestDataset.finaRawMagY
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field Y: " << posXselfTestDataset.finaRawMagY
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field Z: " << selfTestDataset.finaRawMagZ
|
||||
sif::info << "IMTQ self test (FINA) raw magnetic field Z: " << posXselfTestDataset.finaRawMagZ
|
||||
<< " 7.5 * 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field X: " << selfTestDataset.finaCalMagX
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field X: " << posXselfTestDataset.finaCalMagX
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field Y: " << selfTestDataset.finaCalMagY
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field Y: " << posXselfTestDataset.finaCalMagY
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field Z: " << selfTestDataset.finaCalMagZ
|
||||
sif::info << "IMTQ self test (FINA) calibrated magnetic field Z: " << posXselfTestDataset.finaCalMagZ
|
||||
<< " 10^-9 T" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil X current: " << selfTestDataset.finaCoilXCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Y current: " << selfTestDataset.finaCoilYCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Z current: " << selfTestDataset.finaCoilZCurrent
|
||||
<< " 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil X current: " << posXselfTestDataset.finaCoilXCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Y current: " << posXselfTestDataset.finaCoilYCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Z current: " << posXselfTestDataset.finaCoilZCurrent
|
||||
<< " * 10^-4 A" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil X temperature: "
|
||||
<< selfTestDataset.finaCoilXTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.finaCoilXTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Y temperature: "
|
||||
<< selfTestDataset.finaCoilYTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.finaCoilYTemperature << " °C" << std::endl;
|
||||
sif::info << "IMTQ self test (FINA) coil Z temperature: "
|
||||
<< selfTestDataset.finaCoilZTemperature << " °C" << std::endl;
|
||||
<< posXselfTestDataset.finaCoilZTemperature << " °C" << std::endl;
|
||||
#endif
|
||||
if (mode == _MODE_START_UP) {
|
||||
selfTestPerformed = true;
|
||||
}
|
||||
}
|
||||
|
||||
void IMTQHandler::checkErrorByte(const uint8_t errorByte, const uint8_t step) {
|
||||
@ -1088,6 +807,10 @@ void IMTQHandler::checkErrorByte(const uint8_t errorByte, const uint8_t step) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (errorByte == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (errorByte & IMTQ::I2C_FAILURE_MASK) {
|
||||
triggerEvent(SELF_TEST_I2C_FAILURE, step);
|
||||
sif::error << "IMTQHandler::checkErrorByte: Self test I2C failure for step " << stepString
|
||||
@ -1123,6 +846,12 @@ void IMTQHandler::checkErrorByte(const uint8_t errorByte, const uint8_t step) {
|
||||
sif::error << "IMTQHandler::checkErrorByte: Self test coil current outside of expected "
|
||||
"range for step " << stepString << std::endl;
|
||||
}
|
||||
|
||||
if (errorByte & IMTQ::INVALID_ERROR_BYTE) {
|
||||
triggerEvent(INVALID_ERROR_BYTE, step);
|
||||
sif::error << "IMTQHandler::checkErrorByte: Self test result of step " << stepString
|
||||
<< " has invalid error byte" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
std::string IMTQHandler::makeStepString(const uint8_t step) {
|
||||
|
Reference in New Issue
Block a user