#pragma once #include <fsfw/power/definitions.h> #include <fsfw/returnvalues/returnvalue.h> #include <fsfw_hal/linux/gpio/LinuxLibgpioIF.h> #include <mission/memory/SdCardMountedIF.h> #include <mission/tmtc/CcsdsIpCoreHandler.h> #include <mission/tmtc/CfdpTmFunnel.h> #include <mission/tmtc/PusTmFunnel.h> #include <optional> #include <string> #include "mission/devices/HeaterHandler.h" class GpioIF; class SpiComIF; class PowerSwitchIF; class AcsController; namespace ObjectFactory { void createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiComIF, PowerSwitchIF& pwrSwitcher, std::string spiDev, bool swap0And6); void createRtdComponents(std::string spiDev, GpioIF* gpioComIF, PowerSwitchIF* pwrSwitcher, SpiComIF* comIF); void createScexComponents(std::string uartDev, PowerSwitchIF* pwrSwitcher, SdCardMountedIF& mountedIF, bool onImmediately, std::optional<power::Switch_t> switchId); void gpioChecker(ReturnValue_t result, std::string output); AcsController* createAcsController(bool connectSubsystem); void addTmtcIpCoresToFunnels(CcsdsIpCoreHandler& ipCoreHandler, PusTmFunnel& pusFunnel, CfdpTmFunnel& cfdpFunnel); } // namespace ObjectFactory