Program Listing for File DdsKinematics6DBuffer.hpp

Return to documentation for file (sinspekto/DdsKinematics6DBuffer.hpp)

#pragma once

#include "sinspekto/QtToDds.hpp"
#include "sinspekto/DdsBuffer.hpp"

class DdsKinematics6DBuffer : public DdsBuffer
{
  Q_OBJECT
  Q_PROPERTY(QPointF rangePosX READ rangePosX NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangePosY READ rangePosY NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangePosZ READ rangePosZ NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeVelX READ rangeVelX NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeVelY READ rangeVelY NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeVelZ READ rangeVelZ NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeEulerX READ rangeEulerX NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeEulerY READ rangeEulerY NOTIFY rangeChanged)
  Q_PROPERTY(QPointF rangeEulerZ READ rangeEulerZ NOTIFY rangeChanged)

public:
  explicit DdsKinematics6DBuffer(QObject *parent = nullptr);
  virtual ~DdsKinematics6DBuffer();
  QPointF rangePosX() const;
  QPointF rangePosY() const;
  QPointF rangePosZ() const;
  QPointF rangeVelX() const;
  QPointF rangeVelY() const;
  QPointF rangeVelZ() const;
  QPointF rangeEulerX() const;
  QPointF rangeEulerY() const;
  QPointF rangeEulerZ() const;
  Q_INVOKABLE void init(
      QtToDds* dds,
      const QString& topic,
      const QString& id,
      int buffer_size,
      bool use_batch,
      bool with_listener=true);

signals:
  void rangeChanged(QPointF range, qml_enums::DimId dim);
  void eventHeard();
  void newData();

public slots:
  virtual void updateBuffers();

private:
  std::unique_ptr<sinspekto::Reader<fkin::Kinematics6D>> m_reader;
  std::unique_ptr<sinspekto::Reader<fkin::BatchKinematics6D>> m_batchReader;
  QString m_id;

};