From eb84dd9b0b5aa792cd723344830e1e09a4b1b3f9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 6 Feb 2025 13:07:36 +0100 Subject: [PATCH] Add Battery Dummy --- CMakeLists.txt | 27 ++++++++-------- dummies/BatteryDummy.cpp | 22 +++++++++++++ dummies/BatteryDummy.h | 51 +++++++++++++++++++++++++++++++ dummies/CMakeLists.txt | 1 + mission/power/BpxBatteryHandler.h | 2 +- mission/power/bpxBattDefs.h | 1 + tmtc | 2 +- 7 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 dummies/BatteryDummy.cpp create mode 100644 dummies/BatteryDummy.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ca77c1d1..193d8edb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,13 +70,13 @@ if(EIVE_Q7S_EM) set(OBSW_Q7S_EM 1 CACHE STRING "Q7S EM configuration") - set(INIT_VAL 0) + set(OBSW_Q7S_FM 0) set(OBSW_STAR_TRACKER_GROUND_CONFIG 1) else() set(OBSW_Q7S_EM 0 CACHE STRING "Q7S EM configuration") - set(INIT_VAL 1) + set(OBSW_Q7S_FM 1) set(OBSW_STAR_TRACKER_GROUND_CONFIG 0) endif() @@ -87,7 +87,7 @@ set(OBSW_ADD_TMTC_UDP_SERVER 0 CACHE STRING "Add UDP TMTC Server") set(OBSW_ADD_MGT - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add MGT module") set(OBSW_ADD_BPX_BATTERY_HANDLER 1 @@ -96,10 +96,10 @@ set(OBSW_ADD_STAR_TRACKER 1 CACHE STRING "Add Startracker module") set(OBSW_ADD_SUN_SENSORS - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add sun sensor module") set(OBSW_ADD_SUS_BOARD_ASS - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add sun sensor board assembly") set(OBSW_ADD_THERMAL_TEMP_INSERTER ${OBSW_Q7S_EM} @@ -108,7 +108,7 @@ set(OBSW_ADD_ACS_BOARD 1 CACHE STRING "Add ACS board module") set(OBSW_ADD_GPS_CTRL - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add GPS controllers") set(OBSW_ADD_CCSDS_IP_CORES 1 @@ -129,26 +129,29 @@ set(OBSW_ADD_PLOC_SUPERVISOR 1 CACHE STRING "Add PLOC supervisor handler") set(OBSW_ADD_SA_DEPL - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add SA deployment handler") set(OBSW_ADD_PLOC_MPSOC 1 CACHE STRING "Add MPSoC handler") set(OBSW_ADD_ACS_CTRL - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add ACS controller") set(OBSW_ADD_RTD_DEVICES - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add RTD devices") set(OBSW_ADD_RAD_SENSORS - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add Rad Sensor module") set(OBSW_ADD_PL_PCDU 1 CACHE STRING "Add Payload PCDU modukle") set(OBSW_ADD_SYRLINKS - 1 + ${OBSW_Q7S_FM} CACHE STRING "Add Syrlinks module") +set(OBSW_ADD_BATTERY + ${OBSW_Q7S_FM} + CACHE STRING "Add BPX battery module") set(OBSW_ADD_TMP_DEVICES 1 CACHE STRING "Add TMP devices") @@ -159,7 +162,7 @@ set(OBSW_ADD_GOMSPACE_ACU ${INIT_VAL} CACHE STRING "Add GomSpace ACU submodule") set(OBSW_ADD_RW - ${INIT_VAL} + ${OBSW_Q7S_FM} CACHE STRING "Add RW modules") set(OBSW_ADD_SCEX_DEVICE 1 diff --git a/dummies/BatteryDummy.cpp b/dummies/BatteryDummy.cpp new file mode 100644 index 00000000..b74262cd --- /dev/null +++ b/dummies/BatteryDummy.cpp @@ -0,0 +1,22 @@ +#include "BatteryDummy.h" + +BatteryDummy::BatteryDummy(DhbConfig cfg) : FreshDeviceHandlerBase(cfg), cfgSet(this) {} + +void BatteryDummy::performDeviceOperation(uint8_t opCode) {} + +LocalPoolDataSetBase* BatteryDummy::getDataSetHandle(sid_t sid) { return nullptr; } + +ReturnValue_t BatteryDummy::initializeLocalDataPool(localpool::DataPool& localDataPoolMap, + LocalDataPoolManager& poolManager) { + return returnvalue::OK; +} + +ReturnValue_t BatteryDummy::checkModeCommand(Mode_t mode, Submode_t submode, + uint32_t* msToReachTheMode) { + return returnvalue::OK; +} + +ReturnValue_t BatteryDummy::executeAction(ActionId_t actionId, MessageQueueId_t commandedBy, + const uint8_t* data, size_t size) { + return returnvalue::OK; +} diff --git a/dummies/BatteryDummy.h b/dummies/BatteryDummy.h new file mode 100644 index 00000000..a0cb1be4 --- /dev/null +++ b/dummies/BatteryDummy.h @@ -0,0 +1,51 @@ +#pragma once + +#include "fsfw/devicehandlers/FreshDeviceHandlerBase.h" +#include "mission/power/bpxBattDefs.h" + +/// @brief +class BatteryDummy : public FreshDeviceHandlerBase { + public: + BatteryDummy(DhbConfig cfg); + + private: + /** + * Periodic helper executed function, implemented by child class. + */ + void performDeviceOperation(uint8_t opCode) override; + + /** + * Implemented by child class. Handle all command messages which are + * not health, mode, action or housekeeping messages. + * @param message + * @return + */ + ReturnValue_t handleCommandMessage(CommandMessage* message) override; + + // HK manager abstract functions. + LocalPoolDataSetBase* getDataSetHandle(sid_t sid) override; + ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap, + LocalDataPoolManager& poolManager) override; + + // Mode abstract functions + ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode, + uint32_t* msToReachTheMode) override; + // Action override. Forward to user. + ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy, + const uint8_t* data, size_t size) override; + + BpxBatteryCfg cfgSet; + PoolEntry chargeCurrent = PoolEntry({0}); + PoolEntry dischargeCurrent = PoolEntry({0}); + PoolEntry heaterCurrent = PoolEntry({0}); + PoolEntry battVolt = PoolEntry({0}); + PoolEntry battTemp1 = PoolEntry({0}); + PoolEntry battTemp2 = PoolEntry({0}); + PoolEntry battTemp3 = PoolEntry({0}); + PoolEntry battTemp4 = PoolEntry({0}); + PoolEntry rebootCounter = PoolEntry({0}); + PoolEntry bootCause = PoolEntry({0}); + PoolEntry battheatMode = PoolEntry({0}); + PoolEntry battheatLow = PoolEntry({0}); + PoolEntry battheatHigh = PoolEntry({0}); +}; \ No newline at end of file diff --git a/dummies/CMakeLists.txt b/dummies/CMakeLists.txt index bc8ab837..ed1b198b 100644 --- a/dummies/CMakeLists.txt +++ b/dummies/CMakeLists.txt @@ -29,4 +29,5 @@ target_sources( PlocSupervisorDummy.cpp helperFactory.cpp MgmRm3100Dummy.cpp + BatteryDummy.cpp Tmp1075Dummy.cpp) diff --git a/mission/power/BpxBatteryHandler.h b/mission/power/BpxBatteryHandler.h index d01691a9..ef8390ee 100644 --- a/mission/power/BpxBatteryHandler.h +++ b/mission/power/BpxBatteryHandler.h @@ -32,8 +32,8 @@ class BpxBatteryHandler : public DeviceHandlerBase { BpxBatteryHk hkSet; DeviceCommandId_t lastCmd = DeviceHandlerIF::NO_COMMAND_ID; - BpxBatteryCfg cfgSet; std::array cmdBuf = {}; + BpxBatteryCfg cfgSet; PoolEntry chargeCurrent = PoolEntry({0}); PoolEntry dischargeCurrent = PoolEntry({0}); PoolEntry heaterCurrent = PoolEntry({0}); diff --git a/mission/power/bpxBattDefs.h b/mission/power/bpxBattDefs.h index 0e167f07..b00afd3c 100644 --- a/mission/power/bpxBattDefs.h +++ b/mission/power/bpxBattDefs.h @@ -238,6 +238,7 @@ class BpxBatteryCfg : public StaticLocalDataSet { private: friend class BpxBatteryHandler; + friend class BatteryDummy; /** * Constructor for data creator * @param hkOwner diff --git a/tmtc b/tmtc index 9a06c64d..82b388e2 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 9a06c64dfac3f4283c2d5af72a9c095f4726480b +Subproject commit 82b388e23e8745c8671b8dfb1a55e443f59bf274