Class DdsDoubleSubscriber

Inheritance Relationships

Base Type

  • public QObject

Class Documentation

class DdsDoubleSubscriber : public QObject

Subscriber for DDS type Real as a QML element.

This class is a QML element and enables QML applications to gain access to a DDS signal type as a read-only QML property.

Public Functions

explicit DdsDoubleSubscriber(QObject *parent = nullptr)


The initialization is deferred to an init() function.


parent[in] QObject pointer.

virtual ~DdsDoubleSubscriber()


double value() const

Property accessor for double value in QML.


Real value as double.

QDateTime timestamp() const

Property accessor for timestamp in QML.


Timestamp as QML QDateTime.

void init(QtToDds *dds, const QString &topic, bool with_listener = true)

Initializes DDS reader and connects Qt signals and slots.

  • dds[in] Pointer to QtToDds instance.

  • topic[in] Name of DDS topic for which to subscribe.

  • with_listener[in] Use DdsReaderListener callback to trigger eventHeard() signal.

Public Slots

void updateValue()

Takes all new samples from the subscribed topic and uses the last sample.

This slot calls take() from the DDS reader and stores the last new sample as the current Real value. If there were a new sample it emits valueChanged().


void valueChanged(double value)

DDS value has changed.

This signal is connected to the QML DdsDoubleSubscriber::value property.


value[out] New Real value.

void timestampChanged(QDateTime timestamp)

Timestamp of DDS value has changed.

This signal is connected to the QML DdsDoubleSubscriber::timestamp property.


timestamp[out] New timestamp value.

void eventHeard()

DdsReaderListener calls this signal when there is data available on the subscribed topic.

If DdsDoubleSubscriber is initialized with_listener=true, eventHeard() will be connected to the slot updateValue().


double value

DDS Real as double QML property.

QDateTime timestamp

Timestamp of sample.

Private Members

std::unique_ptr<sinspekto::Reader<fkin::Real>> m_reader

The DDS reader wrapper class.