2020-11-20 18:10:39 +01:00
|
|
|
#ifndef MISSION_CORE_GENERICFACTORY_H_
|
|
|
|
#define MISSION_CORE_GENERICFACTORY_H_
|
|
|
|
|
2023-02-13 11:49:26 +01:00
|
|
|
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
|
|
|
|
|
|
|
|
#include "fsfw/objectmanager/SystemObjectIF.h"
|
2022-11-24 19:41:57 +01:00
|
|
|
#include "fsfw/power/PowerSwitchIF.h"
|
2022-11-25 10:13:24 +01:00
|
|
|
#include "fsfw_hal/common/gpio/GpioIF.h"
|
2022-11-24 19:41:57 +01:00
|
|
|
|
|
|
|
class HeaterHandler;
|
2022-05-02 17:37:00 +02:00
|
|
|
class HealthTableIF;
|
2022-11-02 10:26:45 +01:00
|
|
|
class PusTmFunnel;
|
|
|
|
class CfdpTmFunnel;
|
2023-02-13 13:53:13 +01:00
|
|
|
class ExtendedControllerBase;
|
2022-05-02 17:37:00 +02:00
|
|
|
|
2020-11-20 18:10:39 +01:00
|
|
|
namespace ObjectFactory {
|
|
|
|
|
2022-11-02 10:26:45 +01:00
|
|
|
void produceGenericObjects(HealthTableIF** healthTable, PusTmFunnel** pusFunnel,
|
|
|
|
CfdpTmFunnel** cfdpFunnel);
|
2022-11-25 10:13:24 +01:00
|
|
|
void createGenericHeaterComponents(GpioIF& gpioIF, PowerSwitchIF& pwrSwitcher,
|
|
|
|
HeaterHandler*& heaterHandler);
|
2020-11-20 18:10:39 +01:00
|
|
|
|
2022-11-24 19:41:57 +01:00
|
|
|
void createThermalController(HeaterHandler& heaterHandler);
|
2023-02-13 11:49:26 +01:00
|
|
|
void createRwAssy(PowerSwitchIF& pwrSwitcher, power::Switch_t theSwitch,
|
|
|
|
std::array<DeviceHandlerBase*, 4> rws, std::array<object_id_t, 4> rwIds);
|
|
|
|
void createSusAssy(PowerSwitchIF& pwrSwitcher, std::array<DeviceHandlerBase*, 12> suses);
|
2023-02-13 13:53:13 +01:00
|
|
|
void createAcsBoardAssy(PowerSwitchIF& pwrSwitcher, std::array<DeviceHandlerBase*, 8> assemblyDhbs,
|
|
|
|
ExtendedControllerBase* gpsCtrl, GpioIF* gpioComIF);
|
2023-02-13 11:49:26 +01:00
|
|
|
|
2022-11-25 10:13:24 +01:00
|
|
|
} // namespace ObjectFactory
|
2020-11-20 18:10:39 +01:00
|
|
|
|
|
|
|
#endif /* MISSION_CORE_GENERICFACTORY_H_ */
|