split up funnel into PUS and CFDP funnel
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
#include "example/cfdp/Config.h"
|
||||
#include "example/test/FsfwExampleTask.h"
|
||||
#include "example/test/FsfwReaderTask.h"
|
||||
#include "example/utility/CfdpTmFunnel.h"
|
||||
#include "example/utility/TmFunnel.h"
|
||||
#include "fsfw/FSFW.h"
|
||||
#include "fsfw/cfdp.h"
|
||||
@ -48,7 +49,9 @@ ExampleFaultHandler EXAMPLE_FAULT_HANDLER;
|
||||
} // namespace cfdp
|
||||
#endif
|
||||
|
||||
void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, CcsdsDistributor **ccsdsDistrib,
|
||||
void ObjectFactory::produceGenericObjects(PusTmFunnel **pusFunnel,
|
||||
const AcceptsTelemetryIF &tmtcBridge,
|
||||
CcsdsDistributor **ccsdsDistrib,
|
||||
StorageManagerIF &tcStore, StorageManagerIF &tmStore) {
|
||||
#if OBSW_ADD_CORE_COMPONENTS == 1
|
||||
/* Framework objects */
|
||||
@ -60,13 +63,15 @@ void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, CcsdsDistributor
|
||||
*ccsdsDistrib =
|
||||
new CcsdsDistributor(common::COMMON_PUS_APID, objects::CCSDS_DISTRIBUTOR, &tcStore);
|
||||
new PusDistributor(common::COMMON_PUS_APID, objects::PUS_DISTRIBUTOR, *ccsdsDistrib);
|
||||
*tmFunnel = new TmFunnel(*stamperAndReader, objects::TM_FUNNEL);
|
||||
*pusFunnel = new PusTmFunnel(objects::PUS_TM_FUNNEL, tmtcBridge, *stamperAndReader);
|
||||
auto *cfdpFunnel = new CfdpTmFunnel(objects::CFDP_TM_FUNNEL, tmtcBridge);
|
||||
new TmFunnel(objects::TM_FUNNEL, **pusFunnel, *cfdpFunnel);
|
||||
#endif /* OBSW_ADD_CORE_COMPONENTS == 1 */
|
||||
|
||||
/* PUS stack */
|
||||
#if OBSW_ADD_PUS_STACK == 1
|
||||
new Service1TelecommandVerification(objects::PUS_SERVICE_1_VERIFICATION, common::COMMON_PUS_APID,
|
||||
pus::PUS_SERVICE_1, objects::TM_FUNNEL, 5);
|
||||
pus::PUS_SERVICE_1, objects::PUS_TM_FUNNEL, 5);
|
||||
new Service2DeviceAccess(objects::PUS_SERVICE_2_DEVICE_ACCESS, common::COMMON_PUS_APID,
|
||||
pus::PUS_SERVICE_2, 3, 10);
|
||||
new Service3Housekeeping(objects::PUS_SERVICE_3_HOUSEKEEPING, common::COMMON_PUS_APID,
|
||||
@ -160,7 +165,8 @@ void ObjectFactory::produceGenericObjects(TmFunnel **tmFunnel, CcsdsDistributor
|
||||
cfdp::EntityId remoteId(remoteEntityId);
|
||||
cfdp::RemoteEntityCfg remoteCfg(remoteId);
|
||||
remoteCfg.defaultChecksum = cfdp::ChecksumType::CRC_32;
|
||||
FsfwHandlerParams params(objects::CFDP_HANDLER, HOST_FS, **tmFunnel, tcStore, tmStore, *msgQueue);
|
||||
FsfwHandlerParams params(objects::CFDP_HANDLER, HOST_FS, *cfdpFunnel, tcStore, tmStore,
|
||||
*msgQueue);
|
||||
cfdp::IndicationCfg indicationCfg;
|
||||
UnsignedByteField<uint16_t> apid(common::COMMON_CFDP_APID);
|
||||
cfdp::EntityId localId(apid);
|
||||
@ -185,15 +191,11 @@ void Factory::setStaticFrameworkObjectIds() {
|
||||
MonitoringReportContent<int16_t>::timeStamperId = objects::TIME_STAMPER;
|
||||
MonitoringReportContent<uint16_t>::timeStamperId = objects::TIME_STAMPER;
|
||||
|
||||
TmFunnel::downlinkDestination = objects::DOWNLINK_DESTINATION;
|
||||
// No storage object for now.
|
||||
TmFunnel::storageDestination = objects::NO_OBJECT;
|
||||
|
||||
PusServiceBase::PUS_DISTRIBUTOR = objects::PUS_DISTRIBUTOR;
|
||||
PusServiceBase::PACKET_DESTINATION = objects::TM_FUNNEL;
|
||||
PusServiceBase::PACKET_DESTINATION = objects::PUS_TM_FUNNEL;
|
||||
|
||||
CommandingServiceBase::defaultPacketSource = objects::PUS_DISTRIBUTOR;
|
||||
CommandingServiceBase::defaultPacketDestination = objects::TM_FUNNEL;
|
||||
CommandingServiceBase::defaultPacketDestination = objects::PUS_TM_FUNNEL;
|
||||
|
||||
VerificationReporter::DEFAULT_RECEIVER = objects::PUS_SERVICE_1_VERIFICATION;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <fsfw/objectmanager/SystemObjectIF.h>
|
||||
|
||||
#include "OBSWConfig.h"
|
||||
#include "example/utility/PusTmFunnel.h"
|
||||
#include "fsfw/cfdp/handler/DestHandler.h"
|
||||
#include "fsfw/storagemanager/StorageManagerIF.h"
|
||||
|
||||
@ -16,8 +17,9 @@ namespace ObjectFactory {
|
||||
* @brief Produce hardware independant objects. Called by bsp specific
|
||||
* object factory.
|
||||
*/
|
||||
void produceGenericObjects(TmFunnel** funnel, CcsdsDistributor** ccsdsDistributor,
|
||||
StorageManagerIF& tcStore, StorageManagerIF& tmStore);
|
||||
void produceGenericObjects(PusTmFunnel** pusFunnel, const AcceptsTelemetryIF& tmtcBridge,
|
||||
CcsdsDistributor** ccsdsDistributor, StorageManagerIF& tcStore,
|
||||
StorageManagerIF& tmStore);
|
||||
|
||||
} // namespace ObjectFactory
|
||||
|
||||
|
Reference in New Issue
Block a user