From 85ed8420fd12ff610e20c704f14ae0ca562159fe Mon Sep 17 00:00:00 2001 From: meggert Date: Tue, 5 Mar 2024 11:51:02 +0100 Subject: [PATCH] act cmd --- bsp_q7s/core/CoreController.cpp | 17 ++++++++++++++--- bsp_q7s/core/CoreController.h | 2 +- tmtc | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/bsp_q7s/core/CoreController.cpp b/bsp_q7s/core/CoreController.cpp index f8bdb416..426f8989 100644 --- a/bsp_q7s/core/CoreController.cpp +++ b/bsp_q7s/core/CoreController.cpp @@ -481,7 +481,10 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_ return returnvalue::OK; } case (UPDATE_LEAP_SECONDS): { - ReturnValue_t result = actionUpdateLeapSeconds(); + if (size != 2) { + return HasActionsIF::INVALID_PARAMETERS; + } + ReturnValue_t result = actionUpdateLeapSeconds(data); if (result != returnvalue::OK) { return result; } @@ -2101,7 +2104,7 @@ ReturnValue_t CoreController::initLeapSecondsFromFile() { uint16_t leapSeconds = 0; size_t checkPtr; leapSeconds = std::stoi(nextWord.c_str(), &checkPtr, 10); - if (iss.bad() or *checkPtr) { + if (iss.bad() or checkPtr) { return returnvalue::FAILED; } Clock::setLeapSeconds(leapSeconds); @@ -2121,7 +2124,15 @@ ReturnValue_t CoreController::writeLeapSecondsToFile(const uint16_t leapSeconds) return returnvalue::FAILED; }; -ReturnValue_t CoreController::actionUpdateLeapSeconds() { ; } +ReturnValue_t CoreController::actionUpdateLeapSeconds(const uint8_t *data) { + uint16_t leapSeconds = data[1] | (data[0] << 8); + ReturnValue_t result = writeLeapSecondsToFile(leapSeconds); + if (result != returnvalue::OK) { + return result; + } + Clock::setLeapSeconds(leapSeconds); + return returnvalue::OK; +} ReturnValue_t CoreController::initClockFromTimeFile() { using namespace GpsHyperion; diff --git a/bsp_q7s/core/CoreController.h b/bsp_q7s/core/CoreController.h index 0aa2a690..4864a2ec 100644 --- a/bsp_q7s/core/CoreController.h +++ b/bsp_q7s/core/CoreController.h @@ -340,7 +340,7 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe void initLeapSeconds(); ReturnValue_t initLeapSecondsFromFile(); ReturnValue_t initClockFromTimeFile(); - ReturnValue_t actionUpdateLeapSeconds(); + ReturnValue_t actionUpdateLeapSeconds(const uint8_t* data); ReturnValue_t writeLeapSecondsToFile(const uint16_t leapSeconds); ReturnValue_t performSdCardCheck(); ReturnValue_t backupTimeFileHandler(); diff --git a/tmtc b/tmtc index 73a4260f..811786fd 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 73a4260f337aa39475baef999466b200c9123e62 +Subproject commit 811786fd78d5953956a8abba1c10c18c6e494422