YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
plotter.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: GPL-3.0-or-later
4 */
5
6#ifndef PLOTTER_H
7#define PLOTTER_H
8
9#include <QObject>
11#include "yarp/os/Network.h"
12#include <QTimer>
13#include <QVariant>
14#include <qcustomplot.h>
15
16#define GRAPH_TYPE_LINE 0
17#define GRAPH_TYPE_BARS 1
18#define GRAPH_TYPE_POINTS 2
19
20class Connection;
21
25class Graph : public QObject
26{
27 Q_OBJECT
28
29
30public:
31 Graph(int index, QString title,QString color,QString type,int size,double graph_y_scale, int buffer_size,QObject *parent = 0);
32 ~Graph();
33 void init(QString remotePortName,
34 QString localPortName,
35 QString carrier,
36 bool persistent);
37
39 void appendValues(float y, float t);
40
41 void setCustomGraphPoint(QCPGraph*);
42 void setCustomGraph(QCPGraph*);
43
44 void clearData();
45
47
48 double lastX;
49 double lastY;
50 double lastT;
51
52
53 int getType();
54 QString getColor();
55 int getLineSize();
57
59 QCPGraph *customGraph;
60
61 int index;
63
65
66
67private:
68 int buffer_size;
69 qint64 numberAcquiredData;
70 int lastIndex;
71 QList<double> X;
72 QList<double> Y;
73 QList<double> T;
74 QString type;
75 QString color;
76 int lineSize;
77 QString title;
78
79
80
81signals:
84
85};
86
90class Connection : public QObject
91{
92 Q_OBJECT
93public:
94 Connection(QString remotePortName, QString localPortName, QObject *parent = 0);
95
98 void freeResources();
99
100public:
103
107
109};
110
114class Plotter : public QObject
115{
116 Q_OBJECT
117
118public:
119 explicit Plotter(const QString &title,
120 int gridx,
121 int gridy,
122 int hspan,
123 int vspan,
124 float minval,
125 float maxval,
126 int size,
127 const QString &bgcolor,
128 bool autorescale,
129 QObject *parent = 0);
130 ~Plotter();
131 Graph *addGraph(QString remotePort, QString localPort, int index, QString title, QString color, QString type, int size, double graph_y_scale=1.0);
132 void clear();
133 void rescale();
134 void setPaintGeometry(QRectF);
135
136public:
137 //QPixmap *picture;
138 QList<QObject*> graphList;
139 QCustomPlot customPlot;
140 //QCPAxisRect *axisRect;
142
143 //Connection *curr_connection;
144 QString title;
145 int gridx;
146 int gridy;
147 int hspan;
148 int vspan;
149 float minval;
150 float maxval;
151 int size;
152 QString bgcolor;
155 int start;
157
158signals:
161 void internalAppendGraph(int index, QString title, QString color, QString type, int size, int buffer_size);
163 void duplicateLastGraphValue(int graphIndex);
164public slots:
165 void onInteract();
166 void onTimeout();
167
168};
169
170#endif // PLOTTER_H
Class representing a Connection.
Definition plotter.h:91
QString remotePortName
Definition plotter.h:101
QString localPortName
Definition plotter.h:102
yarp::os::ContactStyle style
Definition plotter.h:108
void freeResources()
Definition plotter.cpp:462
yarp::os::BufferedPort< yarp::os::Bottle > * localPort
Definition plotter.h:104
void connect(const yarp::os::ContactStyle &style)
Connect local port to remote port.
Definition plotter.cpp:435
double initialTime
Definition plotter.h:106
bool realTime
Definition plotter.h:105
Class representing a Graph.
Definition plotter.h:26
void init(QString remotePortName, QString localPortName, QString carrier, bool persistent)
Definition plotter.cpp:267
QCPGraph * customGraphPoint
Definition plotter.h:58
int getLineSize()
Return tickness of the graph.
Definition plotter.cpp:317
double graph_y_scale
Definition plotter.h:62
void setCustomGraphPoint(QCPGraph *)
Sets the Custom Graph Point from the QCustomPlot class to this graph.
Definition plotter.cpp:378
Connection * getConnection()
Definition plotter.cpp:295
double lastY
Definition plotter.h:49
void setCustomGraph(QCPGraph *)
Sets the Custom Graph from the QCustomPlot class to this graph.
Definition plotter.cpp:370
void appendPreviousValues()
Append the previous values acquired.
Definition plotter.cpp:329
void clearData()
Clears the custom graph datas.
Definition plotter.cpp:385
void appendValues(float y, float t)
Append the new values acquired.
Definition plotter.cpp:335
int getType()
Return the graph type.
Definition plotter.cpp:301
~Graph()
Definition plotter.cpp:287
double lastT
Definition plotter.h:50
void valuesChanged()
void acquiredDataChanged()
int index
Definition plotter.h:61
QCPGraph * customGraph
Definition plotter.h:59
QString getColor()
Return color of the grpah.
Definition plotter.cpp:323
double lastX
Definition plotter.h:48
bool deleteConnection
Definition plotter.h:56
Connection * curr_connection
Definition plotter.h:64
Class representing a Plotter.
Definition plotter.h:115
int gridx
Definition plotter.h:145
void rescale()
Rescales the plotter and its graphs.
Definition plotter.cpp:98
void duplicateLastGraphValue(int graphIndex)
Graph * addGraph(QString remotePort, QString localPort, int index, QString title, QString color, QString type, int size, double graph_y_scale=1.0)
Add a Graph to the current Plotter.
Definition plotter.cpp:119
float minval
Definition plotter.h:149
void setPaintGeometry(QRectF)
Sets the paint geometry for this Plotter.
Definition plotter.cpp:105
int vspan
Definition plotter.h:148
void plotSampleSizeChanged()
void internalAppendGraph(int index, QString title, QString color, QString type, int size, int buffer_size)
QCustomPlot customPlot
Definition plotter.h:139
int gridy
Definition plotter.h:146
QList< QObject * > graphList
Definition plotter.h:138
int size
Definition plotter.h:151
float maxval
Definition plotter.h:150
void maxValueChanged()
int start
Definition plotter.h:155
QString title
Definition plotter.h:144
void onTimeout()
Timeout on which the data is acquired.
Definition plotter.cpp:171
QRectF paintRectGeometry
Definition plotter.h:141
void clear()
Clears the graphs data.
Definition plotter.cpp:235
bool interact
Definition plotter.h:156
~Plotter()
Definition plotter.cpp:84
int hspan
Definition plotter.h:147
QString bgcolor
Definition plotter.h:152
bool autorescale
Definition plotter.h:153
void onInteract()
Sets the interaction mode to true.
Definition plotter.cpp:77
int initialSize
Definition plotter.h:154
void minValueChanged()
A mini-server for performing network communication in the background.
Preferences for how to communicate with a contact.