#include "CatchFactory.h" #include #include #include #include #include #include #include #include #include #include "mocks/HkReceiverMock.h" #include "tests/TestsConfig.h" #if FSFW_ADD_DEFAULT_FACTORY_FUNCTIONS == 1 /** * @brief Produces system objects. * @details * Build tasks by using SystemObject Interface (Interface). * Header files of all tasks must be included * Please note that an object has to implement the system object interface * if the interface validity is checked or retrieved later by using the * get(object_id) function from the ObjectManagerIF. * * Framework objects are created first. * * @ingroup init */ void Factory::produceFrameworkObjects(void* args) { setStaticFrameworkObjectIds(); new EventManager(objects::EVENT_MANAGER, 120); new HealthTable(objects::HEALTH_TABLE); new InternalErrorReporter(objects::INTERNAL_ERROR_REPORTER, 20, false, 5.0); { PoolManager::LocalPoolConfig poolCfg = {{100, 16}, {50, 32}, {25, 64}, {15, 128}, {5, 1024}}; new PoolManager(objects::TM_STORE, poolCfg); } { PoolManager::LocalPoolConfig poolCfg = {{100, 16}, {50, 32}, {25, 64}, {15, 128}, {5, 1024}}; new PoolManager(objects::IPC_STORE, poolCfg); } } // TODO: Our tests, and the code base in general should really not depend on some arbitrary function // like this. Instead, this should be more like a general struct containing all important // object IDs which are then explicitely passed in the object constructor void Factory::setStaticFrameworkObjectIds() { PusServiceBase::PACKET_DESTINATION = objects::NO_OBJECT; CommandingServiceBase::defaultPacketSource = objects::NO_OBJECT; CommandingServiceBase::defaultPacketDestination = objects::NO_OBJECT; DeviceHandlerBase::powerSwitcherId = objects::NO_OBJECT; DeviceHandlerBase::rawDataReceiverId = objects::NO_OBJECT; LocalDataPoolManager::defaultHkDestination = objects::NO_OBJECT; DeviceHandlerFailureIsolation::powerConfirmationId = objects::NO_OBJECT; } #endif