From a72c2f7b7d2789a84db79ed7da9763e060422ac5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 13 Apr 2022 18:51:22 +0200 Subject: [PATCH 1/9] submodule and obj factory updates --- bsp_q7s/core/ObjectFactory.cpp | 16 +++++++++------- fsfw | 2 +- tmtc | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index c155e705..9ee96b37 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -187,8 +187,9 @@ void ObjectFactory::produce(void* args) { #if OBSW_ADD_STAR_TRACKER == 1 UartCookie* starTrackerCookie = - new UartCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, UartModes::NON_CANONICAL, - uart::STAR_TRACKER_BAUD, startracker::MAX_FRAME_SIZE * 2 + 2); + new UartCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, + uart::STAR_TRACKER_BAUD, startracker::MAX_FRAME_SIZE * 2 + 2, + UartModes::NON_CANONICAL); starTrackerCookie->setNoFixedSizeReply(); StrHelper* strHelper = new StrHelper(objects::STR_HELPER); new StarTrackerHandler(objects::STAR_TRACKER, objects::UART_COM_IF, starTrackerCookie, strHelper, @@ -627,8 +628,8 @@ void ObjectFactory::createSolarArrayDeploymentComponents() { void ObjectFactory::createSyrlinksComponents() { UartCookie* syrlinksUartCookie = - new UartCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, UartModes::NON_CANONICAL, - uart::SYRLINKS_BAUD, syrlinks::MAX_REPLY_SIZE); + new UartCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, + uart::SYRLINKS_BAUD, syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); syrlinksUartCookie->setParityEven(); new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER, objects::UART_COM_IF, syrlinksUartCookie, @@ -647,7 +648,7 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { gpioComIF->addGpios(mpsocGpioCookie); auto mpsocCookie = new UartCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV, - UartModes::NON_CANONICAL, uart::PLOC_MPSOC_BAUD, mpsoc::MAX_REPLY_SIZE); + uart::PLOC_MPSOC_BAUD, mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); mpsocCookie->setNoFixedSizeReply(); auto plocMpsocHelper = new PlocMPSoCHelper(objects::PLOC_MPSOC_HELPER); new PlocMPSoCHandler(objects::PLOC_MPSOC_HANDLER, objects::UART_COM_IF, mpsocCookie, @@ -663,8 +664,9 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { supvGpioCookie->addGpio(gpioIds::ENABLE_SUPV_UART, gpioConfigSupv); gpioComIF->addGpios(supvGpioCookie); auto supervisorCookie = new UartCookie(objects::PLOC_SUPERVISOR_HANDLER, - q7s::UART_PLOC_SUPERVSIOR_DEV, UartModes::NON_CANONICAL, - uart::PLOC_SUPERVISOR_BAUD, supv::MAX_PACKET_SIZE * 20); + q7s::UART_PLOC_SUPERVSIOR_DEV, + uart::PLOC_SUPERVISOR_BAUD, supv::MAX_PACKET_SIZE * 20, + UartModes::NON_CANONICAL); supervisorCookie->setNoFixedSizeReply(); new PlocSupervisorHandler(objects::PLOC_SUPERVISOR_HANDLER, objects::UART_COM_IF, supervisorCookie, Gpio(gpioIds::ENABLE_SUPV_UART, gpioComIF), diff --git a/fsfw b/fsfw index ce17be63..e949368b 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit ce17be63f4f3bb8947843e423685c622510ae09f +Subproject commit e949368b062e8703c35d2043ece8d7258cd2608b diff --git a/tmtc b/tmtc index ecb973c3..8a30f669 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit ecb973c37fe43954d0be1f19b0735b3546d2ef1b +Subproject commit 8a30f669f075c284494d7c1c6618e42e2aec8f15 From fd3313fc628b4129814152e04dab946faf616b8b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 13 Apr 2022 18:55:07 +0200 Subject: [PATCH 2/9] assign power switcher for imtq and star tracker --- bsp_q7s/core/ObjectFactory.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index 9ee96b37..f32eac6d 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -161,6 +161,7 @@ void ObjectFactory::produce(void* args) { I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE, q7s::I2C_DEFAULT_DEV); auto imtqHandler = new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie); + imtqHandler->setPowerSwitcher(pwrSwitcher); static_cast(imtqHandler); #if OBSW_DEBUG_IMTQ == 1 imtqHandler->setStartUpImmediately(); @@ -192,8 +193,9 @@ void ObjectFactory::produce(void* args) { UartModes::NON_CANONICAL); starTrackerCookie->setNoFixedSizeReply(); StrHelper* strHelper = new StrHelper(objects::STR_HELPER); - new StarTrackerHandler(objects::STAR_TRACKER, objects::UART_COM_IF, starTrackerCookie, strHelper, - pcdu::PDU1_CH2_STAR_TRACKER_5V); + auto starTracker = new StarTrackerHandler(objects::STAR_TRACKER, objects::UART_COM_IF, + starTrackerCookie, strHelper, pcdu::PDU1_CH2_STAR_TRACKER_5V); + starTracker->setPowerSwitcher(pwrSwitcher); #endif /* OBSW_ADD_STAR_TRACKER == 1 */ From 655497934babdf313f977599d32a3eee002a5ceb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 13 Apr 2022 18:55:49 +0200 Subject: [PATCH 3/9] apply afmt --- bsp_q7s/core/ObjectFactory.cpp | 23 +++++++++++------------ mission/devices/IMTQHandler.cpp | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index f32eac6d..cdf995bf 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -188,13 +188,13 @@ void ObjectFactory::produce(void* args) { #if OBSW_ADD_STAR_TRACKER == 1 UartCookie* starTrackerCookie = - new UartCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, - uart::STAR_TRACKER_BAUD, startracker::MAX_FRAME_SIZE * 2 + 2, - UartModes::NON_CANONICAL); + new UartCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, uart::STAR_TRACKER_BAUD, + startracker::MAX_FRAME_SIZE * 2 + 2, UartModes::NON_CANONICAL); starTrackerCookie->setNoFixedSizeReply(); StrHelper* strHelper = new StrHelper(objects::STR_HELPER); - auto starTracker = new StarTrackerHandler(objects::STAR_TRACKER, objects::UART_COM_IF, - starTrackerCookie, strHelper, pcdu::PDU1_CH2_STAR_TRACKER_5V); + auto starTracker = + new StarTrackerHandler(objects::STAR_TRACKER, objects::UART_COM_IF, starTrackerCookie, + strHelper, pcdu::PDU1_CH2_STAR_TRACKER_5V); starTracker->setPowerSwitcher(pwrSwitcher); #endif /* OBSW_ADD_STAR_TRACKER == 1 */ @@ -630,8 +630,8 @@ void ObjectFactory::createSolarArrayDeploymentComponents() { void ObjectFactory::createSyrlinksComponents() { UartCookie* syrlinksUartCookie = - new UartCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, - uart::SYRLINKS_BAUD, syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); + new UartCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, uart::SYRLINKS_BAUD, + syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); syrlinksUartCookie->setParityEven(); new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER, objects::UART_COM_IF, syrlinksUartCookie, @@ -649,8 +649,8 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { mpsocGpioCookie->addGpio(gpioIds::ENABLE_MPSOC_UART, gpioConfigMPSoC); gpioComIF->addGpios(mpsocGpioCookie); auto mpsocCookie = - new UartCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV, - uart::PLOC_MPSOC_BAUD, mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); + new UartCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV, uart::PLOC_MPSOC_BAUD, + mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); mpsocCookie->setNoFixedSizeReply(); auto plocMpsocHelper = new PlocMPSoCHelper(objects::PLOC_MPSOC_HELPER); new PlocMPSoCHandler(objects::PLOC_MPSOC_HANDLER, objects::UART_COM_IF, mpsocCookie, @@ -666,9 +666,8 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { supvGpioCookie->addGpio(gpioIds::ENABLE_SUPV_UART, gpioConfigSupv); gpioComIF->addGpios(supvGpioCookie); auto supervisorCookie = new UartCookie(objects::PLOC_SUPERVISOR_HANDLER, - q7s::UART_PLOC_SUPERVSIOR_DEV, - uart::PLOC_SUPERVISOR_BAUD, supv::MAX_PACKET_SIZE * 20, - UartModes::NON_CANONICAL); + q7s::UART_PLOC_SUPERVSIOR_DEV, uart::PLOC_SUPERVISOR_BAUD, + supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL); supervisorCookie->setNoFixedSizeReply(); new PlocSupervisorHandler(objects::PLOC_SUPERVISOR_HANDLER, objects::UART_COM_IF, supervisorCookie, Gpio(gpioIds::ENABLE_SUPV_UART, gpioComIF), diff --git a/mission/devices/IMTQHandler.cpp b/mission/devices/IMTQHandler.cpp index 645a8aa7..e9483d35 100644 --- a/mission/devices/IMTQHandler.cpp +++ b/mission/devices/IMTQHandler.cpp @@ -118,7 +118,7 @@ ReturnValue_t IMTQHandler::buildCommandFromCommand(DeviceCommandId_t deviceComma case (IMTQ::START_ACTUATION_DIPOLE): { /* IMTQ expects low byte first */ commandBuffer[0] = IMTQ::CC::START_ACTUATION_DIPOLE; - if(commandData == nullptr) { + if (commandData == nullptr) { return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; } commandBuffer[1] = commandData[1]; From 94896c9e74575d169ea47ac286725686d4fafbe1 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 09:44:25 +0200 Subject: [PATCH 4/9] update submodules --- fsfw | 2 +- tmtc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fsfw b/fsfw index ce17be63..e949368b 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit ce17be63f4f3bb8947843e423685c622510ae09f +Subproject commit e949368b062e8703c35d2043ece8d7258cd2608b diff --git a/tmtc b/tmtc index ecb973c3..8a30f669 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit ecb973c37fe43954d0be1f19b0735b3546d2ef1b +Subproject commit 8a30f669f075c284494d7c1c6618e42e2aec8f15 From 6c63356edc009ff278a24df94deafc0c1490d329 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 09:54:07 +0200 Subject: [PATCH 5/9] add subsystem impls --- generators/fsfwgen | 2 +- mission/devices/IMTQHandler.cpp | 2 +- mission/system/AcsSubsystem.cpp | 4 ++++ mission/system/AcsSubsystem.h | 10 ++++++++++ mission/system/CMakeLists.txt | 8 +++++--- mission/system/ComSubsystem.cpp | 4 ++++ mission/system/ComSubsystem.h | 10 ++++++++++ mission/system/EiveSystem.cpp | 4 ++++ mission/system/EiveSystem.h | 10 ++++++++++ mission/system/PayloadSubsystem.cpp | 4 ++++ mission/system/PayloadSubsystem.h | 10 ++++++++++ 11 files changed, 63 insertions(+), 5 deletions(-) diff --git a/generators/fsfwgen b/generators/fsfwgen index 5ad9fb94..9a92c7de 160000 --- a/generators/fsfwgen +++ b/generators/fsfwgen @@ -1 +1 @@ -Subproject commit 5ad9fb94af3312d29863527106396395f7b808a5 +Subproject commit 9a92c7de0a2fedfcc638c0517e3edea123e977f8 diff --git a/mission/devices/IMTQHandler.cpp b/mission/devices/IMTQHandler.cpp index 645a8aa7..e9483d35 100644 --- a/mission/devices/IMTQHandler.cpp +++ b/mission/devices/IMTQHandler.cpp @@ -118,7 +118,7 @@ ReturnValue_t IMTQHandler::buildCommandFromCommand(DeviceCommandId_t deviceComma case (IMTQ::START_ACTUATION_DIPOLE): { /* IMTQ expects low byte first */ commandBuffer[0] = IMTQ::CC::START_ACTUATION_DIPOLE; - if(commandData == nullptr) { + if (commandData == nullptr) { return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; } commandBuffer[1] = commandData[1]; diff --git a/mission/system/AcsSubsystem.cpp b/mission/system/AcsSubsystem.cpp index 4d9fe841..37da0123 100644 --- a/mission/system/AcsSubsystem.cpp +++ b/mission/system/AcsSubsystem.cpp @@ -1 +1,5 @@ #include "AcsSubsystem.h" + +AcsSubsystem::AcsSubsystem(object_id_t setObjectId, object_id_t parent, + uint32_t maxNumberOfSequences, uint32_t maxNumberOfTables) + : Subsystem(setObjectId, parent, maxNumberOfSequences, maxNumberOfTables) {} diff --git a/mission/system/AcsSubsystem.h b/mission/system/AcsSubsystem.h index 39d1fca9..20fffdbe 100644 --- a/mission/system/AcsSubsystem.h +++ b/mission/system/AcsSubsystem.h @@ -1,4 +1,14 @@ #ifndef MISSION_SYSTEM_ACSSUBSYSTEM_H_ #define MISSION_SYSTEM_ACSSUBSYSTEM_H_ +#include + +class AcsSubsystem : public Subsystem { + public: + AcsSubsystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences, + uint32_t maxNumberOfTables); + + private: +}; + #endif /* MISSION_SYSTEM_ACSSUBSYSTEM_H_ */ diff --git a/mission/system/CMakeLists.txt b/mission/system/CMakeLists.txt index 27637339..59418a07 100644 --- a/mission/system/CMakeLists.txt +++ b/mission/system/CMakeLists.txt @@ -1,9 +1,11 @@ target_sources(${LIB_EIVE_MISSION} PRIVATE + EiveSystem.cpp + AcsSubsystem.cpp + ComSubsystem.cpp + PayloadSubsystem.cpp + AcsBoardAssembly.cpp SusAssembly.cpp - AcsSubsystem.cpp - EiveSystem.cpp - ComSubsystem.cpp DualLanePowerStateMachine.cpp PowerStateMachineBase.cpp DualLaneAssemblyBase.cpp diff --git a/mission/system/ComSubsystem.cpp b/mission/system/ComSubsystem.cpp index fe91daff..3308de8c 100644 --- a/mission/system/ComSubsystem.cpp +++ b/mission/system/ComSubsystem.cpp @@ -1 +1,5 @@ #include "ComSubsystem.h" + +ComSubsystem::ComSubsystem(object_id_t setObjectId, object_id_t parent, + uint32_t maxNumberOfSequences, uint32_t maxNumberOfTables) + : Subsystem(setObjectId, parent, maxNumberOfSequences, maxNumberOfTables) {} diff --git a/mission/system/ComSubsystem.h b/mission/system/ComSubsystem.h index a850c228..fc35438c 100644 --- a/mission/system/ComSubsystem.h +++ b/mission/system/ComSubsystem.h @@ -1,4 +1,14 @@ #ifndef MISSION_SYSTEM_COMSUBSYSTEM_H_ #define MISSION_SYSTEM_COMSUBSYSTEM_H_ +#include + +class ComSubsystem : public Subsystem { + public: + ComSubsystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences, + uint32_t maxNumberOfTables); + + private: +}; + #endif /* MISSION_SYSTEM_COMSUBSYSTEM_H_ */ diff --git a/mission/system/EiveSystem.cpp b/mission/system/EiveSystem.cpp index 1fcd9b0f..1be0152a 100644 --- a/mission/system/EiveSystem.cpp +++ b/mission/system/EiveSystem.cpp @@ -1 +1,5 @@ #include "EiveSystem.h" + +EiveSystem::EiveSystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences, + uint32_t maxNumberOfTables) + : Subsystem(setObjectId, parent, maxNumberOfSequences, maxNumberOfTables) {} diff --git a/mission/system/EiveSystem.h b/mission/system/EiveSystem.h index d4957787..671d47b6 100644 --- a/mission/system/EiveSystem.h +++ b/mission/system/EiveSystem.h @@ -1,4 +1,14 @@ #ifndef MISSION_SYSTEM_EIVESYSTEM_H_ #define MISSION_SYSTEM_EIVESYSTEM_H_ +#include + +class EiveSystem : public Subsystem { + public: + EiveSystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences, + uint32_t maxNumberOfTables); + + private: +}; + #endif /* MISSION_SYSTEM_EIVESYSTEM_H_ */ diff --git a/mission/system/PayloadSubsystem.cpp b/mission/system/PayloadSubsystem.cpp index a1f277e9..97008c2f 100644 --- a/mission/system/PayloadSubsystem.cpp +++ b/mission/system/PayloadSubsystem.cpp @@ -1 +1,5 @@ #include "PayloadSubsystem.h" + +PayloadSubsystem::PayloadSubsystem(object_id_t setObjectId, object_id_t parent, + uint32_t maxNumberOfSequences, uint32_t maxNumberOfTables) + : Subsystem(setObjectId, parent, maxNumberOfSequences, maxNumberOfTables) {} diff --git a/mission/system/PayloadSubsystem.h b/mission/system/PayloadSubsystem.h index 6725c02f..b25454f7 100644 --- a/mission/system/PayloadSubsystem.h +++ b/mission/system/PayloadSubsystem.h @@ -1,4 +1,14 @@ #ifndef MISSION_SYSTEM_PAYLOADSUBSYSTEM_H_ #define MISSION_SYSTEM_PAYLOADSUBSYSTEM_H_ +#include + +class PayloadSubsystem : public Subsystem { + public: + PayloadSubsystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences, + uint32_t maxNumberOfTables); + + private: +}; + #endif /* MISSION_SYSTEM_PAYLOADSUBSYSTEM_H_ */ From 9fa745cfb2fdeb1bf1848995c89a4fd7a8afdb54 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 11:02:29 +0200 Subject: [PATCH 6/9] update fsfwgen deps --- generators/fsfwgen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/fsfwgen b/generators/fsfwgen index 9a92c7de..5ad9fb94 160000 --- a/generators/fsfwgen +++ b/generators/fsfwgen @@ -1 +1 @@ -Subproject commit 9a92c7de0a2fedfcc638c0517e3edea123e977f8 +Subproject commit 5ad9fb94af3312d29863527106396395f7b808a5 From 1db5d278f60637070815c686b690de5223eb7ebb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 11:17:07 +0200 Subject: [PATCH 7/9] switcher handling extension --- bsp_q7s/core/ObjectFactory.cpp | 10 ++++++---- bsp_q7s/core/ObjectFactory.h | 2 +- fsfw | 2 +- mission/devices/IMTQHandler.cpp | 13 ++++++++++++- mission/devices/IMTQHandler.h | 5 ++++- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index cdf995bf..c9c8e0e2 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -160,7 +160,8 @@ void ObjectFactory::produce(void* args) { #if OBSW_ADD_MGT == 1 I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE, q7s::I2C_DEFAULT_DEV); - auto imtqHandler = new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie); + auto imtqHandler = new IMTQHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie, + pcdu::Switches::PDU1_CH3_MGT_5V); imtqHandler->setPowerSwitcher(pwrSwitcher); static_cast(imtqHandler); #if OBSW_DEBUG_IMTQ == 1 @@ -628,14 +629,15 @@ void ObjectFactory::createSolarArrayDeploymentComponents() { gpioIds::DEPLSA1, gpioIds::DEPLSA2, 1000); } -void ObjectFactory::createSyrlinksComponents() { +void ObjectFactory::createSyrlinksComponents(PowerSwitchIF* pwrSwitcher) { UartCookie* syrlinksUartCookie = new UartCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, uart::SYRLINKS_BAUD, syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL); syrlinksUartCookie->setParityEven(); - new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER, objects::UART_COM_IF, syrlinksUartCookie, - pcdu::PDU1_CH1_SYRLINKS_12V); + auto syrlinksHandler = new SyrlinksHkHandler(objects::SYRLINKS_HK_HANDLER, objects::UART_COM_IF, + syrlinksUartCookie, pcdu::PDU1_CH1_SYRLINKS_12V); + syrlinksHandler->setPowerSwitcher(pwrSwitcher); } void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { diff --git a/bsp_q7s/core/ObjectFactory.h b/bsp_q7s/core/ObjectFactory.h index bfa045c1..a812be35 100644 --- a/bsp_q7s/core/ObjectFactory.h +++ b/bsp_q7s/core/ObjectFactory.h @@ -24,7 +24,7 @@ void createAcsBoardComponents(LinuxLibgpioIF* gpioComIF, UartComIF* uartComIF, PowerSwitchIF* pwrSwitcher); void createHeaterComponents(); void createSolarArrayDeploymentComponents(); -void createSyrlinksComponents(); +void createSyrlinksComponents(PowerSwitchIF* pwrSwitcher); void createPayloadComponents(LinuxLibgpioIF* gpioComIF); void createReactionWheelComponents(LinuxLibgpioIF* gpioComIF); void createCcsdsComponents(LinuxLibgpioIF* gpioComIF); diff --git a/fsfw b/fsfw index e949368b..96babff6 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit e949368b062e8703c35d2043ece8d7258cd2608b +Subproject commit 96babff67ea7859cc9802db63c5d07a7f64c8255 diff --git a/mission/devices/IMTQHandler.cpp b/mission/devices/IMTQHandler.cpp index e9483d35..2b3ba240 100644 --- a/mission/devices/IMTQHandler.cpp +++ b/mission/devices/IMTQHandler.cpp @@ -7,8 +7,10 @@ #include "OBSWConfig.h" -IMTQHandler::IMTQHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie) +IMTQHandler::IMTQHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie, + power::Switch_t pwrSwitcher) : DeviceHandlerBase(objectId, comIF, comCookie), + switcher(pwrSwitcher), engHkDataset(this), calMtmMeasurementSet(this), rawMtmMeasurementSet(this), @@ -2178,3 +2180,12 @@ std::string IMTQHandler::makeStepString(const uint8_t step) { } return stepString; } + +ReturnValue_t IMTQHandler::getSwitches(const uint8_t** switches, uint8_t* numberOfSwitches) { + if (switcher != power::NO_SWITCH) { + *numberOfSwitches = 1; + *switches = &switcher; + return RETURN_OK; + } + return DeviceHandlerBase::NO_SWITCH; +} diff --git a/mission/devices/IMTQHandler.h b/mission/devices/IMTQHandler.h index f54306f4..8a5695cd 100644 --- a/mission/devices/IMTQHandler.h +++ b/mission/devices/IMTQHandler.h @@ -12,7 +12,8 @@ */ class IMTQHandler : public DeviceHandlerBase { public: - IMTQHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie); + IMTQHandler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie, + power::Switch_t pwrSwitcher); virtual ~IMTQHandler(); /** @@ -36,6 +37,7 @@ class IMTQHandler : public DeviceHandlerBase { uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override; ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap, LocalDataPoolManager& poolManager) override; + ReturnValue_t getSwitches(const uint8_t** switches, uint8_t* numberOfSwitches) override; private: static const uint8_t INTERFACE_ID = CLASS_ID::IMTQ_HANDLER; @@ -111,6 +113,7 @@ class IMTQHandler : public DeviceHandlerBase { StartupStep startupStep = StartupStep::COMMAND_SELF_TEST; + power::Switch_t switcher = power::NO_SWITCH; bool selfTestPerformed = false; /** From cf575f0d706a408fbe7418e5d74b17889bea2771 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 11:19:31 +0200 Subject: [PATCH 8/9] repoint fsfw --- fsfw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fsfw b/fsfw index 96babff6..186b3565 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit 96babff67ea7859cc9802db63c5d07a7f64c8255 +Subproject commit 186b3565e0eb6ca10ec2203febdbc7eb7e7f7fe0 From 23730349b03fe935604886fe86883efca7cf8412 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 14 Apr 2022 11:26:26 +0200 Subject: [PATCH 9/9] repoint fsfw again --- fsfw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fsfw b/fsfw index 186b3565..e949368b 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit 186b3565e0eb6ca10ec2203febdbc7eb7e7f7fe0 +Subproject commit e949368b062e8703c35d2043ece8d7258cd2608b