From 33d3e7686cc56b4940cc355aeb7878fcbde73dba Mon Sep 17 00:00:00 2001 From: meggert Date: Tue, 10 Oct 2023 10:06:10 +0200 Subject: [PATCH] right we need dummies ... --- dummies/PlPcduDummy.cpp | 15 +++++++++++++++ dummies/PlPcduDummy.h | 6 ++++++ dummies/PlocMpsocDummy.cpp | 15 +++++++++++++++ dummies/PlocMpsocDummy.h | 5 +++++ dummies/PlocSupervisorDummy.cpp | 16 ++++++++++++++++ dummies/PlocSupervisorDummy.h | 5 +++++ 6 files changed, 62 insertions(+) diff --git a/dummies/PlPcduDummy.cpp b/dummies/PlPcduDummy.cpp index 7dfa4464..589fb075 100644 --- a/dummies/PlPcduDummy.cpp +++ b/dummies/PlPcduDummy.cpp @@ -43,3 +43,18 @@ ReturnValue_t PlPcduDummy::initializeLocalDataPool(localpool::DataPool &localDat localDataPoolMap.emplace(plpcdu::PlPcduPoolIds::TEMP, new PoolEntry({0.0}, true)); return returnvalue::OK; } + +ReturnValue_t PlPcduDummy::checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode, + uint32_t *msToReachTheMode) { + if (commandedMode != MODE_OFF) { + PoolReadGuard pg(&enablePl); + if (pg.getReadResult() == returnvalue::OK) { + if (enablePl.plUseAllowed.isValid() and enablePl.plUseAllowed.value) { + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, + msToReachTheMode); + } + } + return NON_OP_STATE_OF_CHARGE; + } + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode); +} diff --git a/dummies/PlPcduDummy.h b/dummies/PlPcduDummy.h index 8bf7f0c2..70ee5c46 100644 --- a/dummies/PlPcduDummy.h +++ b/dummies/PlPcduDummy.h @@ -1,7 +1,9 @@ #ifndef DUMMIES_PLPCDUDUMMY_H_ #define DUMMIES_PLPCDUDUMMY_H_ +#include #include +#include #include class PlPcduDummy : public DeviceHandlerBase { @@ -29,6 +31,10 @@ class PlPcduDummy : public DeviceHandlerBase { uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override; ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) override; + + ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode, + uint32_t *msToReachTheMode) override; + pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER); }; #endif /* DUMMIES_PLPCDUDUMMY_H_ */ diff --git a/dummies/PlocMpsocDummy.cpp b/dummies/PlocMpsocDummy.cpp index e1410ba1..47af8513 100644 --- a/dummies/PlocMpsocDummy.cpp +++ b/dummies/PlocMpsocDummy.cpp @@ -23,6 +23,21 @@ ReturnValue_t PlocMpsocDummy::buildCommandFromCommand(DeviceCommandId_t deviceCo return returnvalue::OK; } +ReturnValue_t PlocMpsocDummy::checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode, + uint32_t *msToReachTheMode) { + if (commandedMode != MODE_OFF) { + PoolReadGuard pg(&enablePl); + if (pg.getReadResult() == returnvalue::OK) { + if (enablePl.plUseAllowed.isValid() and enablePl.plUseAllowed.value) { + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, + msToReachTheMode); + } + } + return NON_OP_STATE_OF_CHARGE; + } + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode); +} + ReturnValue_t PlocMpsocDummy::scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) { return returnvalue::OK; diff --git a/dummies/PlocMpsocDummy.h b/dummies/PlocMpsocDummy.h index cc09e45e..28960fe3 100644 --- a/dummies/PlocMpsocDummy.h +++ b/dummies/PlocMpsocDummy.h @@ -1,6 +1,8 @@ #pragma once +#include #include +#include #include "mission/power/defs.h" @@ -24,6 +26,9 @@ class PlocMpsocDummy : public DeviceHandlerBase { size_t commandDataLen) override; ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) override; + ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode, + uint32_t *msToReachTheMode) override; + pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER); ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; void fillCommandAndReplyMap() override; uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override; diff --git a/dummies/PlocSupervisorDummy.cpp b/dummies/PlocSupervisorDummy.cpp index b9b1948f..f37bb328 100644 --- a/dummies/PlocSupervisorDummy.cpp +++ b/dummies/PlocSupervisorDummy.cpp @@ -51,3 +51,19 @@ ReturnValue_t PlocSupervisorDummy::getSwitches(const uint8_t **switches, *switches = reinterpret_cast(&switchId); return returnvalue::OK; } + +ReturnValue_t PlocSupervisorDummy::checkModeCommand(Mode_t commandedMode, + Submode_t commandedSubmode, + uint32_t *msToReachTheMode) { + if (commandedMode != MODE_OFF) { + PoolReadGuard pg(&enablePl); + if (pg.getReadResult() == returnvalue::OK) { + if (enablePl.plUseAllowed.isValid() and enablePl.plUseAllowed.value) { + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, + msToReachTheMode); + } + } + return NON_OP_STATE_OF_CHARGE; + } + return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode); +} diff --git a/dummies/PlocSupervisorDummy.h b/dummies/PlocSupervisorDummy.h index 33951cb7..c5334e56 100644 --- a/dummies/PlocSupervisorDummy.h +++ b/dummies/PlocSupervisorDummy.h @@ -1,6 +1,8 @@ #pragma once +#include #include +#include #include class PlocSupervisorDummy : public DeviceHandlerBase { @@ -32,4 +34,7 @@ class PlocSupervisorDummy : public DeviceHandlerBase { ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap, LocalDataPoolManager &poolManager) override; ReturnValue_t getSwitches(const uint8_t **switches, uint8_t *numberOfSwitches) override; + ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode, + uint32_t *msToReachTheMode) override; + pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER); };