1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
#ifndef RECORDER_VIEW_H
#define RECORDER_VIEW_H
// *****************************************************************************
// recorder_view.h Recorder project
// *****************************************************************************
//
// File description:
//
// View source that feeds from the flight recorder
//
//
//
//
//
//
//
//
// *****************************************************************************
// This software is licensed under the GNU General Public License v3+
// (C) 2017-2019, Christophe de Dinechin <christophe@dinechin.org>
// *****************************************************************************
// This file is part of Recorder
//
// Recorder is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Recorder is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Recorder, in a file named COPYING.
// If not, see <https://www.gnu.org/licenses/>.
// *****************************************************************************
#include "recorder.h"
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QLogValueAxis>
#include <QtCharts/QScatterSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QXYSeries>
#include <QtCore/QElapsedTimer>
#include <QtCore/QObject>
#include <QtCore/QTimer>
#include <QtWidgets/QLabel>
QT_CHARTS_USE_NAMESPACE
class RecorderView : public QChartView
// ----------------------------------------------------------------------------
// View for recorder data
// ----------------------------------------------------------------------------
{
Q_OBJECT
public:
explicit RecorderView(const char *filename,
recorder_chans_p &chans,
const char *pattern,
QWidget *parent = 0);
~RecorderView();
void setup();
void updateSetup();
public slots:
void updateSeries();
void sceneChanged();
public:
void keyPressEvent(QKeyEvent *event) override;
public:
static double maxDuration;
static unsigned maxWidth;
static double averagingRatio;
static bool showNormal;
static bool showTiming;
static bool showMinMax;
static bool showAverage;
static QString saveBaseName;
private:
typedef enum { NONE, NORMAL, MINIMUM, MAXIMUM, AVERAGE, TIMING } series_et;
const char * filename;
const char * pattern;
recorder_chans_p &chans;
bool sourceChanged;
typedef QVector<QPointF> Points;
QVector<Points> data;
QVector<QLineSeries *> seriesList;
QVector<recorder_chan_p> chanList;
QVector<ringidx_t> readerIndex;
QVector<series_et> seriesType;
QChart * chart;
QValueAxis * xAxis;
QValueAxis * yAxis;
QValueAxis * tAxis;
QTimer dataUpdater;
bool viewHasNormal;
bool viewHasTiming;
bool viewHasMinMax;
bool viewHasAverage;
static Points minimum(const Points &);
static Points maximum(const Points &);
static Points average(const Points &);
static Points timing(const Points &);
};
#endif // RECORDER_VIEW_H
|