Class DdsBuffer¶
Defined in File DdsBuffer.hpp
Inheritance Relationships¶
Base Type¶
public QObject
Derived Types¶
public DdsIdVec1dBuffer
(Class DdsIdVec1dBuffer)public DdsIdVec2dBuffer
(Class DdsIdVec2dBuffer)public DdsIdVec3dBuffer
(Class DdsIdVec3dBuffer)public DdsIdVec4dBuffer
(Class DdsIdVec4dBuffer)public DdsKinematics2DBuffer
(Class DdsKinematics2DBuffer)public DdsKinematics6DBuffer
(Class DdsKinematics6DBuffer)
Class Documentation¶
-
class DdsBuffer : public QObject¶
Buffer class for holding data in QtChart compatible data structures.
This class has a virtual slot function updateBuffers() that needs to be defined in the derived class.
Subclassed by DdsIdVec1dBuffer, DdsIdVec2dBuffer, DdsIdVec3dBuffer, DdsIdVec4dBuffer, DdsKinematics2DBuffer, DdsKinematics6DBuffer
Public Functions
-
explicit DdsBuffer(QObject *parent = nullptr)¶
Constructor.
The initialization is deferred to an init() function.
- Parameters
parent – [in] QObject pointer.
-
virtual ~DdsBuffer()¶
Destructor.
-
QDateTime rangeTmin() const
Access function for minimum time point in buffer as QML property.
-
QDateTime rangeTmax() const
Access function for maximal time point in buffer as QML property.
Public Slots
-
void updateSeries(QAbstractSeries *series, qml_enums::DimId xDim, qml_enums::DimId yDim)¶
Updates a QAbstractSeries with the data currently in the buffer.
This slots updates the input data series structure with the data in the buffers held by this class. It calls either replace_data_points() and replace_double_points() depending on the dimension type. The buffer member variable can hold several buffers, and are fetched using a specific DimId enum. This enables indexing in QML scripting using e.g.
Fkin.Course
, instead of integer indexing.Note
yDim cannot be a time axis, that is, not DimId::T.
- Parameters
series – [inout] Pointer to series to be updated.
xDim – [in] First dimension identifier.
yDim – [in] Second dimension identifier.
-
virtual void updateBuffers() = 0¶
A function that should update the buffers with new data.
A possible use case would be to read data from a DDS topic and add them to appropriately mapped buffers in this class.
For example a Vec2d DDS type would append three buffers for each sample, two in the mapped buffer (DimId::X, DimId::Y) and one for time point.
-
void clearBuffers()¶
Clears all buffers.
-
void init(int buffer_size)¶
Initialize buffer and connect signals and slots for the time range properties.
- Parameters
buffer_size – [in] Set capacity of DdsTimepointBuffer
Signals
-
void rangeTminChanged(QDateTime min)¶
Signal to indicate that minimum time point has changed.
- Parameters
min – [out] Minimum time point as a QDateTime.
-
void rangeTmaxChanged(QDateTime max)¶
Signal to indicate that maximum time point has changed.
- Parameters
max – [out] Maximum time point as a QDateTime.
-
void rangeTChanged()¶
Signal to indicate that time range has changed.
Properties
-
QDateTime rangeTmin¶
Minimum time point in buffer.
-
QDateTime rangeTmax¶
Maximal time point in buffer.
Protected Attributes
-
std::map<qml_enums::DimId, DdsDoubleBuffer*> m_buffers¶
A map of buffers, key is DimId, value is DdsDoubleBuffer.
-
DdsTimepointBuffer *m_time¶
Pointer to time point buffer.
-
explicit DdsBuffer(QObject *parent = nullptr)¶