diff --git a/bsp_q7s/em/emObjectFactory.cpp b/bsp_q7s/em/emObjectFactory.cpp index 9b106dd2..94e10784 100644 --- a/bsp_q7s/em/emObjectFactory.cpp +++ b/bsp_q7s/em/emObjectFactory.cpp @@ -178,7 +178,7 @@ void ObjectFactory::produce(void* args) { power::Switches::PDU1_CH5_SOLAR_CELL_EXP_5V); #endif createAcsController(true, enableHkSets); - createPowerController(enableHkSets); + createPowerController(true, enableHkSets); HeaterHandler* heaterHandler; createHeaterComponents(gpioComIF, pwrSwitcher, healthTable, heaterHandler); createThermalController(*heaterHandler, true); diff --git a/bsp_q7s/fmObjectFactory.cpp b/bsp_q7s/fmObjectFactory.cpp index 8e1672a8..c6dc1d28 100644 --- a/bsp_q7s/fmObjectFactory.cpp +++ b/bsp_q7s/fmObjectFactory.cpp @@ -132,6 +132,6 @@ void ObjectFactory::produce(void* args) { createMiscComponents(); createThermalController(*heaterHandler, false); createAcsController(true, enableHkSets); - createPowerController(enableHkSets); + createPowerController(true, enableHkSets); satsystem::init(false); } diff --git a/linux/ObjectFactory.cpp b/linux/ObjectFactory.cpp index b74057c1..cb3e043b 100644 --- a/linux/ObjectFactory.cpp +++ b/linux/ObjectFactory.cpp @@ -28,6 +28,7 @@ #include "devices/gpioIds.h" #include "eive/definitions.h" #include "mission/system/acs/acsModeTree.h" +#include "mission/system/power/epsModeTree.h" #include "mission/system/tcs/tcsModeTree.h" #include "mission/system/tree/payloadModeTree.h" #include "mission/tcs/defs.h" @@ -338,8 +339,11 @@ AcsController* ObjectFactory::createAcsController(bool connectSubsystem, bool en return acsCtrl; } -PowerController* ObjectFactory::createPowerController(bool enableHkSets) { +PowerController* ObjectFactory::createPowerController(bool connectSubsystem, bool enableHkSets) { auto pwrCtrl = new PowerController(objects::POWER_CONTROLLER, enableHkSets); + if (connectSubsystem) { + pwrCtrl->connectModeTreeParent(satsystem::eps::EPS_SUBSYSTEM); + } return pwrCtrl; } diff --git a/linux/ObjectFactory.h b/linux/ObjectFactory.h index d8605f48..46baa685 100644 --- a/linux/ObjectFactory.h +++ b/linux/ObjectFactory.h @@ -32,6 +32,6 @@ void createScexComponents(std::string uartDev, PowerSwitchIF* pwrSwitcher, void gpioChecker(ReturnValue_t result, std::string output); AcsController* createAcsController(bool connectSubsystem, bool enableHkSets); -PowerController* createPowerController(bool enableHkSets); +PowerController* createPowerController(bool connectSubsystem, bool enableHkSets); } // namespace ObjectFactory diff --git a/mission/system/power/epsModeTree.cpp b/mission/system/power/epsModeTree.cpp index c28669f9..7c81b38f 100644 --- a/mission/system/power/epsModeTree.cpp +++ b/mission/system/power/epsModeTree.cpp @@ -5,7 +5,7 @@ #include "fsfw/subsystem/Subsystem.h" #include "mission/system/treeUtil.h" -EpsSubsystem satsystem::eps::SUBSYSTEM(objects::EPS_SUBSYSTEM, 12, 24); +EpsSubsystem satsystem::eps::EPS_SUBSYSTEM(objects::EPS_SUBSYSTEM, 12, 24); namespace { // Alias for checker function @@ -27,10 +27,10 @@ auto EPS_TABLE_NORMAL_TRANS_0 = std::make_pair((NML << 24) | 2, FixedArrayList