Class RatatoskCurrentAtDepthSubscriber

Inheritance Relationships

Base Type

  • public QObject

Class Documentation

class RatatoskCurrentAtDepthSubscriber : public QObject

Subscriber for DDS type ratatosk::types::CurrentAtDepth 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 RatatoskCurrentAtDepthSubscriber(QObject *parent = nullptr)

Constructor.

The initialization is deferred to an init() function.

Parameters

parent[in] QObject pointer.

virtual ~RatatoskCurrentAtDepthSubscriber()

Destructor.

double depth() const

Property accessor for depth in QML.

Returns

depth [m]

double direction() const

Property accessor for direction in QML.

Returns

direction [rad]

double speed() const

Property accessor for speed in QML.

Returns

speed [m/s]

QDateTime timestamp() const

Property accessor for timestamp in QML.

Returns

Timestamp as QML compatible type.

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

Initializes DDS reader and connects Qt signals and slots.

Parameters
  • 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 value. If there were a new sample it emits {depth, direction, speed, timestampChanged}Changed().

Signals

void depthChanged(double depth)

DDS value has changed.

This signal is connected to the QML RatatoskCurrentAtDepthSubscriber::depth property.

Parameters

depth[out] New value.

void directionChanged(double direction)

DDS value has changed.

This signal is connected to the QML RatatoskCurrentAtDepthSubscriber::direction property.

Parameters

direction[out] New value.

void speedChanged(double speed)

DDS value has changed.

This signal is connected to the QML RatatoskCurrentAtDepthSubscriber::speed property.

Parameters

speed[out] New value.

void timestampChanged(QDateTime timestamp)

Timestamp of DDS value has changed.

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

Parameters

timestamp[out] New timestamp value.

void eventHeard()

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

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

Properties

double depth

Depth [m].

double direction

Direction [rad].

double speed

Speed [m/s].

QDateTime timestamp

Timestamp of sample.

Private Members

std::unique_ptr<sinspekto::Reader<ratatosk::types::CurrentAtDepth>> m_reader

The DDS reader wrapper class.