RTC Toolkit 4.0.2
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
rtctk::telSub Namespace Reference

Classes

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

Typedefs

using DdsSample = rtctk::componentFramework::AgnosticTopic
 
using DdsSampleSeq = rtctk::componentFramework::AgnosticTopicSeq
 
using DdsInfoSeq = rtctk::componentFramework::SampleInfoSeq
 
using LifeCycle = rtctk::componentFramework::Runnable< rtctk::componentFramework::RtcComponent >
 

Functions

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

Typedef Documentation

◆ DdsInfoSeq

using rtctk::telSub::DdsInfoSeq = typedef rtctk::componentFramework::SampleInfoSeq

◆ DdsSample

using rtctk::telSub::DdsSample = typedef rtctk::componentFramework::AgnosticTopic

◆ DdsSampleSeq

using rtctk::telSub::DdsSampleSeq = typedef rtctk::componentFramework::AgnosticTopicSeq

◆ LifeCycle

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.