7#include <QtCharts/QLineSeries>
8#include <QtCharts/QAbstractSeries>
20 qCDebug(MAVLinkMessageFieldLog) <<
"Field:" << name << type;
23QGCMAVLinkMessageField::~QGCMAVLinkMessageField()
34 _chartController = chartController;
39 _msg->updateFieldSelection();
42void QGCMAVLinkMessageField::delSeries()
49 QLineSeries *
const lineSeries =
static_cast<QLineSeries*
>(_pSeries);
50 lineSeries->replace(_values);
52 _chartController =
nullptr;
54 _msg->updateFieldSelection();
57QString QGCMAVLinkMessageField::label()
const
59 return (_msg->name() +
": " + _name);
62void QGCMAVLinkMessageField::setSelectable(
bool sel)
64 if (_selectable != sel) {
70int QGCMAVLinkMessageField::chartIndex()
const
72 if (_chartController) {
73 return _chartController->chartIndex();
79void QGCMAVLinkMessageField::updateValue(
const QString &newValue, qreal v)
81 if (_value != newValue) {
86 if (!_pSeries || !_chartController) {
90 const int count = _values.count();
91 if (count < (50 * 60)) {
92 const QPointF p(
qgcApp()->msecsSinceBoot(), v);
95 if (_dataIndex >= count) {
98 _values[_dataIndex].setX(
qgcApp()->msecsSinceBoot());
99 _values[_dataIndex].setY(v);
103 if (_chartController->rangeYIndex() != 0) {
107 qreal vmin = std::numeric_limits<qreal>::max();
108 qreal vmax = std::numeric_limits<qreal>::min();
109 for (
const QPointF &point : _values) {
110 const qreal value = point.y();
119 bool changed =
false;
120 if (std::abs(_rangeMin - vmin) > 0.000001) {
125 if (std::abs(_rangeMax - vmax) > 0.000001) {
131 _chartController->updateYRange();
135void QGCMAVLinkMessageField::updateSeries()
137 const int count = _values.count();
144 int idx = _dataIndex;
145 for (
int i = 0; i < count; i++, idx++) {
150 const QPointF p(_values[idx]);
154 QLineSeries *
const lineSeries =
static_cast<QLineSeries*
>(_pSeries);
155 lineSeries->replace(s);
#define QGC_LOGGING_CATEGORY(name, categoryStr)