2021-06-08 13:36:08 +02:00
|
|
|
#include "ObjectFactory.h"
|
2022-05-05 20:55:48 +02:00
|
|
|
|
|
|
|
#include "OBSWConfig.h"
|
2022-05-20 08:59:25 +02:00
|
|
|
#include "bsp_hosted/fsfwconfig/objects/systemObjectList.h"
|
|
|
|
#include "bsp_hosted/fsfwconfig/tmtc/apid.h"
|
2022-06-21 11:15:38 +02:00
|
|
|
#include "fsfw/serviceinterface.h"
|
2022-05-20 08:59:25 +02:00
|
|
|
#include "commonConfig.h"
|
2022-05-05 20:55:48 +02:00
|
|
|
#include "example/core/GenericFactory.h"
|
|
|
|
#include "example/test/FsfwTestTask.h"
|
|
|
|
#include "example/utility/TmFunnel.h"
|
2022-05-20 08:59:25 +02:00
|
|
|
#include "fsfw/storagemanager/PoolManager.h"
|
|
|
|
#include "fsfw/tmtcservices/CommandingServiceBase.h"
|
2022-05-05 20:55:48 +02:00
|
|
|
|
|
|
|
#if OBSW_USE_TCP_SERVER == 0
|
2021-06-08 13:36:08 +02:00
|
|
|
#include <fsfw/osal/common/UdpTcPollingTask.h>
|
|
|
|
#include <fsfw/osal/common/UdpTmTcBridge.h>
|
2021-09-28 16:04:16 +02:00
|
|
|
#else
|
|
|
|
#include "fsfw/osal/common/TcpTmTcBridge.h"
|
2022-05-05 20:55:48 +02:00
|
|
|
#include "fsfw/osal/common/TcpTmTcServer.h"
|
2021-09-28 16:04:16 +02:00
|
|
|
#endif
|
2021-06-08 13:36:08 +02:00
|
|
|
|
|
|
|
void ObjectFactory::produce(void* args) {
|
2022-05-05 20:55:48 +02:00
|
|
|
Factory::setStaticFrameworkObjectIds();
|
2021-06-08 13:36:08 +02:00
|
|
|
|
|
|
|
#if OBSW_ADD_CORE_COMPONENTS == 1
|
2022-05-05 20:55:48 +02:00
|
|
|
{
|
2022-05-20 08:59:25 +02:00
|
|
|
LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40},
|
|
|
|
{128, 30}, {1024, 20}, {2048, 10}};
|
2022-05-05 20:55:48 +02:00
|
|
|
new PoolManager(objects::TC_STORE, poolCfg);
|
|
|
|
}
|
2021-06-08 13:36:08 +02:00
|
|
|
|
2022-05-05 20:55:48 +02:00
|
|
|
{
|
2022-05-20 08:59:25 +02:00
|
|
|
LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40},
|
|
|
|
{128, 30}, {1024, 20}, {2048, 10}};
|
2022-05-05 20:55:48 +02:00
|
|
|
new PoolManager(objects::TM_STORE, poolCfg);
|
|
|
|
}
|
2021-06-08 13:36:08 +02:00
|
|
|
|
2022-05-05 20:55:48 +02:00
|
|
|
{
|
2022-05-20 08:59:25 +02:00
|
|
|
LocalPool::LocalPoolConfig poolCfg = {{16, 100}, {32, 50}, {64, 40},
|
|
|
|
{128, 30}, {1024, 20}, {2048, 10}};
|
2022-05-05 20:55:48 +02:00
|
|
|
new PoolManager(objects::IPC_STORE, poolCfg);
|
|
|
|
}
|
2022-05-20 08:59:25 +02:00
|
|
|
ObjectFactory::produceGenericObjects();
|
2022-05-05 20:55:48 +02:00
|
|
|
// TMTC Reception via TCP/IP socket
|
|
|
|
#if OBSW_USE_TCP_SERVER == 0
|
|
|
|
auto tmtcBridge = new UdpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR);
|
|
|
|
tmtcBridge->setMaxNumberOfPacketsStored(50);
|
2022-05-09 01:15:11 +02:00
|
|
|
FSFW_LOGI("Opening UDP TMTC server on port {}\n", tmtcBridge->getUdpPort());
|
2022-05-05 20:55:48 +02:00
|
|
|
new UdpTcPollingTask(objects::TCPIP_TMTC_POLLING_TASK, objects::TCPIP_TMTC_BRIDGE);
|
2021-09-28 16:04:16 +02:00
|
|
|
#else
|
2022-05-05 20:55:48 +02:00
|
|
|
auto tmtcBridge = new TcpTmTcBridge(objects::TCPIP_TMTC_BRIDGE, objects::CCSDS_DISTRIBUTOR);
|
|
|
|
tmtcBridge->setMaxNumberOfPacketsStored(50);
|
|
|
|
auto tmtcServer = new TcpTmTcServer(objects::TCPIP_TMTC_POLLING_TASK, objects::TCPIP_TMTC_BRIDGE);
|
2022-06-21 11:15:38 +02:00
|
|
|
FSFW_LOGI("Opening TCP TMTC server on port {}\n", tmtcServer->getTcpPort());
|
2021-09-28 16:04:16 +02:00
|
|
|
#endif
|
2021-06-08 13:36:08 +02:00
|
|
|
|
|
|
|
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
|
|
|
|
|
2022-05-05 20:55:48 +02:00
|
|
|
bool periodicEvent = false;
|
2021-06-30 10:00:20 +02:00
|
|
|
#if OBSW_TASK_PERIODIC_EVENT == 1
|
2022-05-05 20:55:48 +02:00
|
|
|
periodicEvent = true;
|
2021-06-30 10:00:20 +02:00
|
|
|
#endif
|
2022-05-05 20:55:48 +02:00
|
|
|
new FsfwTestTask(objects::TEST_TASK, periodicEvent);
|
2021-06-08 13:36:08 +02:00
|
|
|
}
|