eive-obsw/bsp_hosted/ObjectFactory.cpp

62 lines
2.0 KiB
C++
Raw Normal View History

2020-11-20 18:10:39 +01:00
#include "ObjectFactory.h"
2021-07-26 13:51:00 +02:00
#include "OBSWConfig.h"
2020-12-14 13:03:47 +01:00
#include <objects/systemObjectList.h>
2020-11-20 18:27:07 +01:00
#include <tmtc/apid.h>
#include <tmtc/pusIds.h>
2020-11-20 18:10:39 +01:00
#include <fsfw/tmtcservices/CommandingServiceBase.h>
#include <fsfw/tmtcservices/PusServiceBase.h>
#include <mission/core/GenericFactory.h>
#include <mission/utility/TmFunnel.h>
2021-07-26 13:51:00 +02:00
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
#include "fsfw/osal/common/UdpTcPollingTask.h"
#include "fsfw/osal/common/UdpTmTcBridge.h"
#else
#include "fsfw/osal/common/TcpTmTcBridge.h"
#include "fsfw/osal/common/TcpTmTcServer.h"
#endif
2020-11-20 18:10:39 +01:00
2021-06-21 17:09:49 +02:00
#include <fsfw/tmtcpacket/pus/tm.h>
2020-11-20 18:10:39 +01:00
#if OBSW_ADD_TEST_CODE == 1
#include <test/testtasks/TestTask.h>
#endif
void Factory::setStaticFrameworkObjectIds(){
PusServiceBase::packetSource = objects::PUS_PACKET_DISTRIBUTOR;
PusServiceBase::packetDestination = objects::TM_FUNNEL;
CommandingServiceBase::defaultPacketSource = objects::PUS_PACKET_DISTRIBUTOR;
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
2021-07-26 11:33:38 +02:00
TmFunnel::downlinkDestination = objects::TMTC_BRIDGE;
2020-11-20 18:10:39 +01:00
// No storage object for now.
TmFunnel::storageDestination = objects::NO_OBJECT;
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
2021-05-17 16:10:53 +02:00
TmPacketBase::timeStamperId = objects::TIME_STAMPER;
2020-11-20 18:10:39 +01:00
}
2021-06-08 16:45:25 +02:00
void ObjectFactory::produce(void* args){
2020-11-20 18:10:39 +01:00
Factory::setStaticFrameworkObjectIds();
ObjectFactory::produceGenericObjects();
2021-07-26 13:51:00 +02:00
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
sif::info << "Setting up UDP TMTC bridge with listener port " <<
UdpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
2021-07-26 11:33:38 +02:00
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
2021-07-26 13:51:00 +02:00
#else
sif::info << "Setting up TCP TMTC bridge with listener port " <<
TcpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#endif
2020-11-20 18:10:39 +01:00
2021-07-26 14:00:15 +02:00
new TestTask(objects::TEST_TASK);
2020-11-20 18:10:39 +01:00
}