From af5f51928b2fbb44ccf12cfb8fb70e00843713f7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 15 Aug 2023 13:49:06 +0200 Subject: [PATCH] PLOC SUPV periodic HK --- CHANGELOG.md | 1 + linux/payload/PlocSupervisorHandler.cpp | 9 +++++++++ mission/system/EiveSystem.cpp | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9a41a7d..8a5aa945 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ will consitute of a breaking change warranting a new major release: ## Added +- The PLOC SUPV HK set is requested and downlinked periodically if the SUPV is on now. - SGP4 Propagator is now used for propagating the position of EIVE. It will only work once a TLE has been uploaded with the newly added action command for the ACS Controller. In return the actual GPS data will be ignored once SPG4 is running. However, by setting the diff --git a/linux/payload/PlocSupervisorHandler.cpp b/linux/payload/PlocSupervisorHandler.cpp index 682b8020..5bb68d9d 100644 --- a/linux/payload/PlocSupervisorHandler.cpp +++ b/linux/payload/PlocSupervisorHandler.cpp @@ -155,12 +155,15 @@ void PlocSupervisorHandler::doStartUp() { startupState = StartupState::ON; } if (startupState == StartupState::ON) { + hkset.setReportingEnabled(true); setMode(_MODE_TO_ON); } } void PlocSupervisorHandler::doShutDown() { setMode(_MODE_POWER_DOWN); + hkset.setReportingEnabled(false); + hkset.setValidity(false, true); shutdownCmdSent = false; packetInBuffer = false; nextReplyId = supv::NONE; @@ -170,6 +173,10 @@ void PlocSupervisorHandler::doShutDown() { } ReturnValue_t PlocSupervisorHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) { + if (not commandIsExecuting(GET_HK_REPORT)) { + *id = GET_HK_REPORT; + return OK; + } return NOTHING_TO_SEND; } @@ -790,6 +797,8 @@ ReturnValue_t PlocSupervisorHandler::initializeLocalDataPool(localpool::DataPool localDataPoolMap.emplace(supv::ADC_ENG_14, new PoolEntry({0})); localDataPoolMap.emplace(supv::ADC_ENG_15, new PoolEntry({0})); + poolManager.subscribeForRegularPeriodicPacket( + subdp::RegularHkPeriodicParams(hkset.getSid(), false, 10.0)); return returnvalue::OK; } diff --git a/mission/system/EiveSystem.cpp b/mission/system/EiveSystem.cpp index 84b4edf7..6519806e 100644 --- a/mission/system/EiveSystem.cpp +++ b/mission/system/EiveSystem.cpp @@ -134,7 +134,7 @@ void EiveSystem::handleEventMessages() { if (event.getParameter1() == pdec::FRAME_DIRTY_RETVAL) { frameDirtyErrorCounter++; // Check whether threshold was reached after 10 seconds. - if(frameDirtyErrorCounter == 1) { + if (frameDirtyErrorCounter == 1) { frameDirtyCheckCd.resetTimer(); } }