#ifndef MISSION_CORE_GENERICFACTORY_H_ #define MISSION_CORE_GENERICFACTORY_H_ #include #include #include #include #include #include #include "fsfw/objectmanager/SystemObjectIF.h" #include "fsfw/power/PowerSwitchIF.h" #include "fsfw_hal/common/gpio/GpioIF.h" using persTmStore::PersistentTmStores; class HeaterHandler; class HealthTableIF; class PusTmFunnel; class CfdpTmFunnel; class ExtendedControllerBase; class TcsBoardAssembly; const std::array, EiveMax31855::NUM_RTDS> RTD_INFOS = {{ {objects::RTD_0_IC3_PLOC_HEATSPREADER, "RTD_0_PLOC_HSPD"}, {objects::RTD_1_IC4_PLOC_MISSIONBOARD, "RTD_1_PLOC_MISSIONBRD"}, {objects::RTD_2_IC5_4K_CAMERA, "RTD_2_4K_CAMERA"}, {objects::RTD_3_IC6_DAC_HEATSPREADER, "RTD_3_DAC_HSPD"}, {objects::RTD_4_IC7_STARTRACKER, "RTD_4_STARTRACKER"}, {objects::RTD_5_IC8_RW1_MX_MY, "RTD_5_RW1_MX_MY"}, {objects::RTD_6_IC9_DRO, "RTD_6_DRO"}, {objects::RTD_7_IC10_SCEX, "RTD_7_SCEX"}, {objects::RTD_8_IC11_X8, "RTD_8_X8"}, {objects::RTD_9_IC12_HPA, "RTD_9_HPA"}, {objects::RTD_10_IC13_PL_TX, "RTD_10_PL_TX,"}, {objects::RTD_11_IC14_MPA, "RTD_11_MPA"}, {objects::RTD_12_IC15_ACU, "RTD_12_ACU"}, {objects::RTD_13_IC16_PLPCDU_HEATSPREADER, "RTD_13_PLPCDU_HSPD"}, {objects::RTD_14_IC17_TCS_BOARD, "RTD_14_TCS_BOARD"}, {objects::RTD_15_IC18_IMTQ, "RTD_15_IMTQ"}, }}; namespace ObjectFactory { void produceGenericObjects(HealthTableIF** healthTable, PusTmFunnel** pusFunnel, CfdpTmFunnel** cfdpFunnel, SdCardMountedIF& sdcMan, StorageManagerIF** ipcStore, StorageManagerIF** tmStore, PersistentTmStores& stores); void createGenericHeaterComponents(GpioIF& gpioIF, PowerSwitchIF& pwrSwitcher, HeaterHandler*& heaterHandler); void createThermalController(HeaterHandler& heaterHandler); void createRwAssy(PowerSwitchIF& pwrSwitcher, power::Switch_t theSwitch, std::array rws, std::array rwIds); void createSusAssy(PowerSwitchIF& pwrSwitcher, std::array suses); void createAcsBoardAssy(PowerSwitchIF& pwrSwitcher, std::array assemblyDhbs, ExtendedControllerBase* gpsCtrl, GpioIF* gpioComIF); TcsBoardAssembly* createTcsBoardAssy(PowerSwitchIF& pwrSwitcher, std::atomic_bool& tcsShortlyUnavailable); } // namespace ObjectFactory #endif /* MISSION_CORE_GENERICFACTORY_H_ */