Refactor TM handling #450
@ -771,6 +771,7 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(CcsdsComponentArgs& args) {
|
|||||||
auto* vcWithQueue =
|
auto* vcWithQueue =
|
||||||
new VirtualChannelWithQueue(objects::PTME_VC0_LIVE_TM, ccsds::VC0, "PTME VC0 LIVE TM", *ptme,
|
new VirtualChannelWithQueue(objects::PTME_VC0_LIVE_TM, ccsds::VC0, "PTME VC0 LIVE TM", *ptme,
|
||||||
LINK_STATE, args.tmStore, 500);
|
LINK_STATE, args.tmStore, 500);
|
||||||
|
args.liveDestination = vcWithQueue->getReportReceptionQueue(0);
|
||||||
new LiveTmTask(objects::LIVE_TM_TASK, *vcWithQueue);
|
new LiveTmTask(objects::LIVE_TM_TASK, *vcWithQueue);
|
||||||
|
|
||||||
// Set up log store.
|
// Set up log store.
|
||||||
|
@ -25,21 +25,19 @@ class GpioIF;
|
|||||||
namespace ObjectFactory {
|
namespace ObjectFactory {
|
||||||
|
|
||||||
struct CcsdsComponentArgs {
|
struct CcsdsComponentArgs {
|
||||||
CcsdsComponentArgs(LinuxLibgpioIF& gpioIF, PusTmFunnel& funnel, StorageManagerIF& ipcStore,
|
CcsdsComponentArgs(LinuxLibgpioIF& gpioIF, StorageManagerIF& ipcStore, StorageManagerIF& tmStore,
|
||||||
StorageManagerIF& tmStore, PersistentTmStores& stores,
|
PersistentTmStores& stores, CcsdsIpCoreHandler** ipCoreHandler)
|
||||||
CcsdsIpCoreHandler** ipCoreHandler)
|
|
||||||
: gpioComIF(gpioIF),
|
: gpioComIF(gpioIF),
|
||||||
pusFunnel(funnel),
|
|
||||||
ipcStore(ipcStore),
|
ipcStore(ipcStore),
|
||||||
tmStore(tmStore),
|
tmStore(tmStore),
|
||||||
stores(stores),
|
stores(stores),
|
||||||
ipCoreHandler(ipCoreHandler) {}
|
ipCoreHandler(ipCoreHandler) {}
|
||||||
LinuxLibgpioIF& gpioComIF;
|
LinuxLibgpioIF& gpioComIF;
|
||||||
PusTmFunnel& pusFunnel;
|
|
||||||
StorageManagerIF& ipcStore;
|
StorageManagerIF& ipcStore;
|
||||||
StorageManagerIF& tmStore;
|
StorageManagerIF& tmStore;
|
||||||
PersistentTmStores& stores;
|
PersistentTmStores& stores;
|
||||||
CcsdsIpCoreHandler** ipCoreHandler;
|
CcsdsIpCoreHandler** ipCoreHandler;
|
||||||
|
AcceptsTelemetryIF* liveDestination = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
void setStatics();
|
void setStatics();
|
||||||
|
@ -77,10 +77,13 @@ void ObjectFactory::produce(void* args) {
|
|||||||
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
|
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
|
||||||
#if OBSW_ADD_CCSDS_IP_CORES == 1
|
#if OBSW_ADD_CCSDS_IP_CORES == 1
|
||||||
CcsdsIpCoreHandler* ipCoreHandler = nullptr;
|
CcsdsIpCoreHandler* ipCoreHandler = nullptr;
|
||||||
CcsdsComponentArgs ccsdsArgs(*gpioComIF, *pusFunnel, *ipcStore, *tmStore, stores, &ipCoreHandler);
|
CcsdsComponentArgs ccsdsArgs(*gpioComIF, *ipcStore, *tmStore, stores, &ipCoreHandler);
|
||||||
createCcsdsComponents(ccsdsArgs);
|
createCcsdsComponents(ccsdsArgs);
|
||||||
#if OBSW_TM_TO_PTME == 1
|
#if OBSW_TM_TO_PTME == 1
|
||||||
// TODO: Remove this if not needed anymore
|
// TODO: Remove this if not needed anymore
|
||||||
|
if (*ccsdsArgs.liveDestination != nullptr) {
|
||||||
|
pusFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0);
|
||||||
|
}
|
||||||
// addTmtcIpCoresToFunnels(*ipCoreHandler, *pusFunnel, *cfdpFunnel);
|
// addTmtcIpCoresToFunnels(*ipCoreHandler, *pusFunnel, *cfdpFunnel);
|
||||||
#endif
|
#endif
|
||||||
#endif /* OBSW_ADD_CCSDS_IP_CORES == 1 */
|
#endif /* OBSW_ADD_CCSDS_IP_CORES == 1 */
|
||||||
|
@ -341,11 +341,3 @@ void ObjectFactory::gpioChecker(ReturnValue_t result, std::string output) {
|
|||||||
sif::error << "ObjectFactory: Adding GPIOs failed for " << output << std::endl;
|
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);
|
|
||||||
}
|
|
||||||
|
@ -33,6 +33,4 @@ void gpioChecker(ReturnValue_t result, std::string output);
|
|||||||
|
|
||||||
AcsController* createAcsController(bool connectSubsystem);
|
AcsController* createAcsController(bool connectSubsystem);
|
||||||
|
|
||||||
void addTmtcIpCoresToFunnels(CcsdsIpCoreHandler& ipCoreHandler, PusTmFunnel& pusFunnel,
|
|
||||||
CfdpTmFunnel& cfdpFunnel);
|
|
||||||
} // namespace ObjectFactory
|
} // namespace ObjectFactory
|
||||||
|
Loading…
Reference in New Issue
Block a user