diff --git a/CHANGELOG.md b/CHANGELOG.md index 67fea724..784ec061 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,15 +16,21 @@ will consitute of a breaking change warranting a new major release: # [unreleased] -# [v8.0.1] +# [v8.1.0] 2024-05-29 ## Fixed - Small fix for transition failure handling of the MPSoC when the `START_MPSOC` action command to the supervisor fails. - Fixed inits of arrays within the `MEKF` not being zeros. +- Important bugfix for PLOC SUPV: The SUPV previously was able to steal packets from the special + communication helper, for example during software updates. - Corrected sigma of STR for `MEKF`. +## Added + +- Added new command to cancel the PLOC SUPV special communication helper. + # [v8.0.0] 2024-05-13 - `eive-tmtc` v7.0.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index ba7dd618..bd79693d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ cmake_minimum_required(VERSION 3.13) set(OBSW_VERSION_MAJOR 8) -set(OBSW_VERSION_MINOR 0) +set(OBSW_VERSION_MINOR 1) set(OBSW_VERSION_REVISION 0) # set(CMAKE_VERBOSE TRUE) diff --git a/linux/payload/FreshSupvHandler.cpp b/linux/payload/FreshSupvHandler.cpp index 1252f9d8..ef980bb4 100644 --- a/linux/payload/FreshSupvHandler.cpp +++ b/linux/payload/FreshSupvHandler.cpp @@ -241,6 +241,10 @@ ReturnValue_t FreshSupvHandler::executeAction(ActionId_t actionId, MessageQueueI uartManager->initiateUpdateContinuation(); return EXECUTION_FINISHED; } + case ABORT_LONGER_REQUEST: { + uartManager->stop(); + return EXECUTION_FINISHED; + } case MEMORY_CHECK_WITH_FILE: { UpdateParams params; result = extractBaseParams(&data, size, params); @@ -849,6 +853,10 @@ ReturnValue_t FreshSupvHandler::prepareWipeMramCmd(const uint8_t* commandData, s ReturnValue_t FreshSupvHandler::parseTmPackets() { uint8_t* receivedData = nullptr; size_t receivedSize = 0; + // We do not want to steal packets from the long request handler. + if (uartManager->longerRequestActive()) { + return returnvalue::OK; + } while (true) { ReturnValue_t result = uartManager->readReceivedMessage(comCookie, &receivedData, &receivedSize); diff --git a/linux/payload/plocSupvDefs.h b/linux/payload/plocSupvDefs.h index 349c29ad..e6536713 100644 --- a/linux/payload/plocSupvDefs.h +++ b/linux/payload/plocSupvDefs.h @@ -159,6 +159,7 @@ static const DeviceCommandId_t ENABLE_NVMS = 59; static const DeviceCommandId_t CONTINUE_UPDATE = 60; static const DeviceCommandId_t MEMORY_CHECK_WITH_FILE = 61; static constexpr DeviceCommandId_t MEMORY_CHECK = 62; +static constexpr DeviceCommandId_t ABORT_LONGER_REQUEST = 63; /** Reply IDs */ enum ReplyId : DeviceCommandId_t {