62 lines
2.0 KiB
C++
62 lines
2.0 KiB
C++
#include "ObjectFactory.h"
|
|
#include "OBSWConfig.h"
|
|
#include <objects/systemObjectList.h>
|
|
#include <tmtc/apid.h>
|
|
#include <tmtc/pusIds.h>
|
|
|
|
#include <fsfw/tmtcservices/CommandingServiceBase.h>
|
|
#include <fsfw/tmtcservices/PusServiceBase.h>
|
|
|
|
#include <mission/core/GenericFactory.h>
|
|
#include <mission/utility/TmFunnel.h>
|
|
|
|
#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
|
|
|
|
#include <fsfw/tmtcpacket/pus/tm.h>
|
|
|
|
|
|
#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;
|
|
|
|
TmFunnel::downlinkDestination = objects::TMTC_BRIDGE;
|
|
// No storage object for now.
|
|
TmFunnel::storageDestination = objects::NO_OBJECT;
|
|
|
|
VerificationReporter::messageReceiver = objects::PUS_SERVICE_1_VERIFICATION;
|
|
TmPacketBase::timeStamperId = objects::TIME_STAMPER;
|
|
}
|
|
|
|
void ObjectFactory::produce(void* args){
|
|
Factory::setStaticFrameworkObjectIds();
|
|
ObjectFactory::produceGenericObjects();
|
|
|
|
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
|
|
sif::info << "Setting up UDP TMTC bridge with listener port " <<
|
|
UdpTmTcBridge::DEFAULT_UDP_SERVER_PORT << std::endl;
|
|
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
|
|
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
|
|
#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
|
|
|
|
new TestTask(objects::TEST_TASK);
|
|
|
|
}
|