DbcLib 1.0
CAN DBC C++ library.
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
dbc::SignalObserver Class Reference

The sample observer hold a number of samples. More...

#include <signalobserver.h>

Inheritance diagram for dbc::SignalObserver:
Inheritance graph
[legend]
Collaboration diagram for dbc::SignalObserver:
Collaboration graph
[legend]

Public Member Functions

 SignalObserver (const Signal &signal)
 Constructor.
 
 SignalObserver ()=delete
 Default constructor.
 
 ~SignalObserver () override
 Default destructor.
 
void MaxSamples (size_t max_nof_samples)
 Sets the maximum number of samples.
 
size_t MaxSamples () const
 Returns the max number of samples.
 
const SignalGetSignal () const
 Returns the signal object.
 
uint64_t Time (size_t index) const
 Returns the absolute time for a sample.
 
uint32_t CanId (size_t index) const
 Returns the CAN ID for a sample.
 
template<typename V >
bool ChannelValue (size_t index, uint64_t &ns1970, V &value) const
 Returns the unscaled signal value.
 
template<typename V >
bool EngValue (size_t index, uint64_t &ns1970, V &value) const
 Returns the scaled signal value.
 
void ResetSampleIndex ()
 Reset the sample index.
 
size_t FirstIndex () const
 First sample.
 
size_t LastIndex () const
 Last sample.
 
size_t NofSamples () const
 Returns number of samples.
 
size_t NofValidSamples () const
 Returns number of valid samples.
 
size_t SampleToIndex (size_t sample) const
 Sample number (0..) to internal index.
 
std::pair< size_t, bool > TimeToIndex (uint64_t time) const
 Sample time to internal index.
 
void DetachObserver () override
 Detach an observer.
 
void OnSample () override
 On sample callback handler.
 
template<>
bool ChannelValue (size_t index, uint64_t &ns1970, std::string &value) const
 Returns the unscaled signal value as a string.
 
template<>
bool EngValue (size_t index, uint64_t &ns1970, std::string &value) const
 Returns the scaled signal value as a string'.
 
- Public Member Functions inherited from dbc::ISampleObserver
 ISampleObserver ()=default
 Default constructor.
 
virtual ~ISampleObserver ()=default
 Default destructor.
 
virtual void OnSample ()=0
 Handle a sample.
 
virtual void DetachObserver ()=0
 Detach the observer object.
 

Detailed Description

The observer holds signal values in a circular buffer of a maximum number of samples size. The user shall access the samples in normal sample order i.e the first sample is 0 while the internal circular index might be something else.

Member Function Documentation

◆ ChannelValue()

template<typename V >
bool dbc::SignalObserver::ChannelValue ( size_t  index,
uint64_t &  ns1970,
V &  value 
) const

Returns the unscaled signal value for a specific sample.

Template Parameters
VValue type.
Parameters
indexSample index (0..).
ns1970Sample time nano-seconds since 1970.
valueSample value.
Returns
True if value is valid.

◆ DetachObserver()

void dbc::SignalObserver::DetachObserver ( )
overridevirtual

Implements dbc::ISampleObserver.

◆ EngValue()

template<typename V >
bool dbc::SignalObserver::EngValue ( size_t  index,
uint64_t &  ns1970,
V &  value 
) const

Returns the scaled signal value for a specific sample.

Template Parameters
VValue type.
Parameters
indexSample index (0..).
ns1970Sample time nano-seconds since 1970.
valueSample value.
Returns
True if value is valid.

◆ OnSample()

void dbc::SignalObserver::OnSample ( )
overridevirtual

Implements dbc::ISampleObserver.


The documentation for this class was generated from the following file: