diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index a3045e62..b0bab8de 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -771,6 +771,7 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(CcsdsComponentArgs& args) { auto* vcWithQueue = new VirtualChannelWithQueue(objects::PTME_VC0_LIVE_TM, ccsds::VC0, "PTME VC0 LIVE TM", *ptme, LINK_STATE, args.tmStore, 500); + args.liveDestination = vcWithQueue->getReportReceptionQueue(0); new LiveTmTask(objects::LIVE_TM_TASK, *vcWithQueue); // Set up log store. diff --git a/bsp_q7s/core/ObjectFactory.h b/bsp_q7s/core/ObjectFactory.h index c13f9c68..26433917 100644 --- a/bsp_q7s/core/ObjectFactory.h +++ b/bsp_q7s/core/ObjectFactory.h @@ -25,21 +25,19 @@ class GpioIF; namespace ObjectFactory { struct CcsdsComponentArgs { - CcsdsComponentArgs(LinuxLibgpioIF& gpioIF, PusTmFunnel& funnel, StorageManagerIF& ipcStore, - StorageManagerIF& tmStore, PersistentTmStores& stores, - CcsdsIpCoreHandler** ipCoreHandler) + CcsdsComponentArgs(LinuxLibgpioIF& gpioIF, StorageManagerIF& ipcStore, StorageManagerIF& tmStore, + PersistentTmStores& stores, CcsdsIpCoreHandler** ipCoreHandler) : gpioComIF(gpioIF), - pusFunnel(funnel), ipcStore(ipcStore), tmStore(tmStore), stores(stores), ipCoreHandler(ipCoreHandler) {} LinuxLibgpioIF& gpioComIF; - PusTmFunnel& pusFunnel; StorageManagerIF& ipcStore; StorageManagerIF& tmStore; PersistentTmStores& stores; CcsdsIpCoreHandler** ipCoreHandler; + AcceptsTelemetryIF* liveDestination = nullptr; }; void setStatics(); diff --git a/bsp_q7s/fmObjectFactory.cpp b/bsp_q7s/fmObjectFactory.cpp index 0fecf58b..68695f42 100644 --- a/bsp_q7s/fmObjectFactory.cpp +++ b/bsp_q7s/fmObjectFactory.cpp @@ -77,10 +77,13 @@ void ObjectFactory::produce(void* args) { #endif /* OBSW_ADD_STAR_TRACKER == 1 */ #if OBSW_ADD_CCSDS_IP_CORES == 1 CcsdsIpCoreHandler* ipCoreHandler = nullptr; - CcsdsComponentArgs ccsdsArgs(*gpioComIF, *pusFunnel, *ipcStore, *tmStore, stores, &ipCoreHandler); + CcsdsComponentArgs ccsdsArgs(*gpioComIF, *ipcStore, *tmStore, stores, &ipCoreHandler); createCcsdsComponents(ccsdsArgs); #if OBSW_TM_TO_PTME == 1 // TODO: Remove this if not needed anymore + if (*ccsdsArgs.liveDestination != nullptr) { + pusFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0); + } // addTmtcIpCoresToFunnels(*ipCoreHandler, *pusFunnel, *cfdpFunnel); #endif #endif /* OBSW_ADD_CCSDS_IP_CORES == 1 */ diff --git a/linux/ObjectFactory.cpp b/linux/ObjectFactory.cpp index 43ea9e70..1ac86886 100644 --- a/linux/ObjectFactory.cpp +++ b/linux/ObjectFactory.cpp @@ -341,11 +341,3 @@ void ObjectFactory::gpioChecker(ReturnValue_t result, std::string output) { sif::error << "ObjectFactory: Adding GPIOs failed for " << output << std::endl; } } - -void ObjectFactory::addTmtcIpCoresToFunnels(CcsdsIpCoreHandler& ipCoreHandler, - PusTmFunnel& pusFunnel, CfdpTmFunnel& cfdpFunnel) { - // TODO: Consider removing this, the only additional object in the dest list will - // be the live VC - // cfdpFunnel.addDestination("PTME IP Core", ipCoreHandler, config::LIVE_TM); - // pusFunnel.addDestination("PTME IP Core", ipCoreHandler, config::LIVE_TM); -} diff --git a/linux/ObjectFactory.h b/linux/ObjectFactory.h index 0a7ab516..056dbd65 100644 --- a/linux/ObjectFactory.h +++ b/linux/ObjectFactory.h @@ -33,6 +33,4 @@ void gpioChecker(ReturnValue_t result, std::string output); AcsController* createAcsController(bool connectSubsystem); -void addTmtcIpCoresToFunnels(CcsdsIpCoreHandler& ipCoreHandler, PusTmFunnel& pusFunnel, - CfdpTmFunnel& cfdpFunnel); } // namespace ObjectFactory