fsfw-example-stm32h7-rtems/bsp_stm32h7_rtems/core/ObjectFactory.cpp

58 lines
1.8 KiB
C++

#include "ObjectFactory.h"
#include <OBSWConfig.h>
#include <objects/systemObjectList.h>
#include "example/core/GenericFactory.h"
#include "example/test/FsfwTestTask.h"
#include "example/utility/TmFunnel.h"
#include "example_common/stm32h7/STM32TestTask.h"
#include "example_common/stm32h7/networking/TmTcLwIpUdpBridge.h"
#include "example_common/stm32h7/networking/UdpTcLwIpPollingTask.h"
#include <fsfw/datapoollocal/LocalDataPoolManager.h>
#include <fsfw/monitoring/MonitoringMessageContent.h>
#include <fsfw/storagemanager/PoolManager.h>
#include <fsfw/tmtcpacket/pus/tm.h>
#include <fsfw/tmtcservices/CommandingServiceBase.h>
#include <fsfw/tmtcservices/PusServiceBase.h>
#include <rtems_lwip/rtems_lwip.h>
void ObjectFactory::produce(void *args) {
/* Located inside GenericFactory source file */
Factory::setStaticFrameworkObjectIds();
#if OBSW_ADD_CORE_COMPONENTS == 1
{
LocalPool::LocalPoolConfig poolCfg = {
{15, 32}, {10, 64}, {5, 128}, {1, 1024}};
new PoolManager(objects::TC_STORE, poolCfg);
}
{
LocalPool::LocalPoolConfig poolCfg = {
{15, 32}, {10, 64}, {5, 128}, {1, 1024}};
new PoolManager(objects::TM_STORE, poolCfg);
}
{
LocalPool::LocalPoolConfig poolCfg = {
{15, 32}, {10, 64}, {5, 128}, {1, 1024}};
new PoolManager(objects::IPC_STORE, poolCfg);
}
#if OBSW_ADD_LWIP_COMPONENTS == 1
/* UDP Server */
new TmTcLwIpUdpBridge(objects::UDP_BRIDGE, objects::CCSDS_DISTRIBUTOR,
objects::TM_STORE, objects::TC_STORE);
new UdpTcLwIpPollingTask(objects::UDP_POLLING_TASK, objects::UDP_BRIDGE,
rtems_lwip_get_netif(0));
#endif /* OBSW_ADD_LWIP_NETWORKING == 1 */
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
ObjectFactory::produceGenericObjects();
new STM32TestTask(objects::TEST_TASK, false);
}