diff --git a/CHANGELOG.md b/CHANGELOG.md index 41b80a3d..6c2d0b21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,11 @@ will consitute of a breaking change warranting a new major release: # [unreleased] +## Fixed + +- PLOC SUPV latchup report could not be handled previously. +- Bugfix in PLOC SUPV latchup report parsing. + # [v7.6.1] 2024-02-05 ## Changed diff --git a/linux/payload/FreshSupvHandler.cpp b/linux/payload/FreshSupvHandler.cpp index a51934d6..346cd8f2 100644 --- a/linux/payload/FreshSupvHandler.cpp +++ b/linux/payload/FreshSupvHandler.cpp @@ -900,6 +900,14 @@ ReturnValue_t FreshSupvHandler::parseTmPackets() { } break; } + case(Apid::LATCHUP_MON): { + if (tmReader.getServiceId() == + static_cast(supv::tm::LatchupMonId::LATCHUP_STATUS_REPORT)) { + handleLatchupStatusReport(receivedData); + continue; + } + break; + } case (Apid::ADC_MON): { if (tmReader.getServiceId() == static_cast(supv::tm::AdcMonId::ADC_REPORT)) { genericHandleTm("ADC", receivedData, adcReport, supv::Apid::ADC_MON, @@ -1486,10 +1494,10 @@ ReturnValue_t FreshSupvHandler::handleLatchupStatusReport(const uint8_t* data) { offset += 2; latchupStatusReport.cnt5 = *(payloadData + offset) << 8 | *(payloadData + offset + 1); offset += 2; - latchupStatusReport.cnt6 = *(payloadData + offset) << 8 | *(data + offset + 1); + latchupStatusReport.cnt6 = *(payloadData + offset) << 8 | *(payloadData + offset + 1); offset += 2; uint16_t msec = *(payloadData + offset) << 8 | *(payloadData + offset + 1); - latchupStatusReport.isSet = msec >> supv::LatchupStatusReport::IS_SET_BIT_POS; + latchupStatusReport.isSynced = msec >> supv::LatchupStatusReport::IS_SET_BIT_POS; latchupStatusReport.timeMsec = msec & (~(1 << latchupStatusReport.IS_SET_BIT_POS)); offset += 2; latchupStatusReport.timeSec = *(payloadData + offset); diff --git a/linux/payload/plocSupvDefs.h b/linux/payload/plocSupvDefs.h index c3c042e3..349c29ad 100644 --- a/linux/payload/plocSupvDefs.h +++ b/linux/payload/plocSupvDefs.h @@ -1805,7 +1805,7 @@ class LatchupStatusReport : public StaticLocalDataSet { lp_var_t timeMon = lp_var_t(sid.objectId, PoolIds::LATCHUP_RPT_TIME_MON, this); lp_var_t timeYear = lp_var_t(sid.objectId, PoolIds::LATCHUP_RPT_TIME_YEAR, this); - lp_var_t isSet = lp_var_t(sid.objectId, PoolIds::LATCHUP_RPT_IS_SET, this); + lp_var_t isSynced = lp_var_t(sid.objectId, PoolIds::LATCHUP_RPT_IS_SET, this); static const uint8_t IS_SET_BIT_POS = 15; }; diff --git a/tmtc b/tmtc index d33013ed..a5ebac62 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit d33013ed58131a69d09145af4f3c7a71766cebd3 +Subproject commit a5ebac626682e86b45f991c919a3ce9a9b7fcfcc