#pragma once #include <fsfw/power/definitions.h> #include <fsfw/returnvalues/returnvalue.h> #include <fsfw_hal/linux/gpio/LinuxLibgpioIF.h> #include <mission/com/CcsdsIpCoreHandler.h> #include <mission/memory/SdCardMountedIF.h> #include <mission/tcs/HeaterHandler.h> #include <mission/tmtc/CfdpTmFunnel.h> #include <mission/tmtc/PusTmFunnel.h> #include <optional> #include <string> 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, bool enableHkSets); } // namespace ObjectFactory