RTC Toolkit  2.0.0
Files | Classes | Functions
Telemetry Subscriber

Telemetry Subscriber and related components. More...

Files

file  wscript
 Telemetry Subscriber package.
 
file  agnosticDataSamples.cpp
 Defines AgnosticDataSamples.
 
file  businessLogic.cpp
 Implements the business logic for telSub.
 
file  correlator.cpp
 Implementation of the Correlator class.
 
file  dataSampleView.cpp
 Definition of data sample classes.
 
file  ddsReaderListener.cpp
 Implementation of DDS Reader Listener.
 
file  ddsWaitSet.cpp
 Implementation of the DdsWaitSet.
 
file  agnosticDataSamples.hpp
 Declares AgnosticDataSamples.
 
file  businessLogic.hpp
 Implements the business logic for telSub.
 
file  correlator.hpp
 Declares Correlator.
 
file  correlatorIf.hpp
 Declares CorrelatorIf.
 
file  dataSampleView.hpp
 Declares ShmPublisher.
 
file  ddsReaderListener.hpp
 DDS Reader Listener.
 
file  ddsWaitSet.hpp
 Declares the DdsWaitSet implementation.
 
file  ddsWaitSetIf.hpp
 Declares DdsWaitSetIf.
 
file  main.hpp
 Entry-point for Telemetry Subscriber.
 
file  operationalLogic.hpp
 Declares OperationalLogic.
 
file  operationalLogicIf.hpp
 Declares OperationalLogicIf.
 
file  shmPublisher.hpp
 Declares ShmPublisher.
 
file  shmPublisherIf.hpp
 Declares ShmPublisher.
 
file  operationalLogic.cpp
 Definition of OperationalLogic.
 
file  shmPublisher.cpp
 shmPublisher definition
 
file  wscript
 Telemetry Subscriber package.
 

Classes

class  rtctk::telSub::SeqLoanerIf
 Loaner interface. More...
 
class  rtctk::telSub::AgnosticDataSamples
 Container of DDS samples and associated sample information. More...
 
struct  rtctk::telSub::OperationalLogicFactoryParams
 Set of all parameters needed when constructing the OperationalLogic object. More...
 
class  rtctk::telSub::BusinessLogic
 Implements the Telemetry Subscriber business logic. More...
 
class  rtctk::telSub::Correlator
 Implements a correlator. More...
 
struct  rtctk::telSub::CorrelatorParams
 Placeholder for correlator parameters. More...
 
class  rtctk::telSub::CorrelatorIf
 Interface for correlator implemementations that takes new data samples from DDS and performs correlation on them. More...
 
struct  rtctk::telSub::DataSampleView
 Agnostic data sample non-owning reference type. More...
 
struct  rtctk::telSub::DataSamplesView
 A set of correlated agnostic non-owning data samples references. More...
 
class  rtctk::telSub::DdsReaderListener
 Listener class for different DDS events. More...
 
class  rtctk::telSub::DdsWaitSet
 Implements DDS communication using FastDDS. More...
 
struct  rtctk::telSub::DdsParams
 Parameter set to be passed to classes deriving from DdsWaitSetIf. More...
 
class  rtctk::telSub::DdsWaitSetIf
 Base class abstracting DDS communication code. More...
 
class  rtctk::telSub::OperationalLogic
 Implements the behaviour for Operational state. More...
 
struct  rtctk::telSub::ShmParams
 Shared memory configuration parameters. More...
 
struct  rtctk::telSub::OperationalParams
 Configuration parameters needed for operational logic. More...
 
class  rtctk::telSub::OperationalLogicIf
 Interface to the operational logic implementation. More...
 
class  rtctk::telSub::ShmPublisher< UserTopicType, DataBlender, ShmWriter >
 
class  rtctk::telSub::ShmPublisherIf
 Simple interface to class that owns the shared memory queue. More...
 

Functions

std::ostream & rtctk::telSub::operator<< (std::ostream &stream, const std::vector< std::string > &data)
 A specialisation of the stream output operator to handle vectors of strings. More...
 
template<class UserTopicType , class DataBlender >
void rtctk::telSub::Main (const rtctk::componentFramework::Args &args, DataBlender &&blender) noexcept
 Main entrypoint for running telemetry subscriber. More...
 
template<class UserTopicType , class DataBlender , class ShmWriter >
auto rtctk::telSub::MakeShmPublisher (ShmWriter &&shm_writer, DataBlender &blender) -> std::unique_ptr< ShmPublisher< UserTopicType, DataBlender, ShmWriter >>
 Helper that can deduce DataBlender class template argument. More...
 

Detailed Description

Telemetry Subscriber and related components.

Refer to the Telemetry Subscriber for an overview.

Function Documentation

◆ Main()

template<class UserTopicType , class DataBlender >
void rtctk::telSub::Main ( const rtctk::componentFramework::Args args,
DataBlender &&  blender 
)
noexcept

Main entrypoint for running telemetry subscriber.

It is meant to be invoked by delegation from a RtcComponentMain implementation (see Telemetry Subscriber).

Template Parameters
UserTopicTypeUser defined topic used in shared memory queue.
DataBlenderType for the blender function. It must be callable with the following signature: std::error_code(rtctk::telSub::DataSamplesView const& dds_samples, UserTopicType& shm_sample). In addition it must be movable (or copyable).
Parameters
argsCommand line arguments as received in RtcComponentMain.
blenderThe callable used to convert DDS agnostic topic samples into the user defined topic in shared memory. This is invoked for each set of correlated data samples and should do absolutely minimal processing and avoid thread synchronization.

◆ MakeShmPublisher()

template<class UserTopicType , class DataBlender , class ShmWriter >
auto rtctk::telSub::MakeShmPublisher ( ShmWriter &&  shm_writer,
DataBlender &  blender 
) -> std::unique_ptr<ShmPublisher<UserTopicType, DataBlender, ShmWriter>>

Helper that can deduce DataBlender class template argument.

◆ operator<<()

std::ostream& rtctk::telSub::operator<< ( std::ostream &  stream,
const std::vector< std::string > &  data 
)

A specialisation of the stream output operator to handle vectors of strings.

This is used by methods such as BusinessLogic::GetParam.

Note
this needs to be in the same namespace as BusinessLogic, i.e. rtctk::telSub, otherwise the compiler is not able to match this function as the appropriate one to use.