source: ntrip/trunk/BNC/src/rinex/dopplot.cpp@ 4697

Last change on this file since 4697 was 4686, checked in by mervart, 12 years ago
File size: 3.6 KB
Line 
1// Part of BNC, a utility for retrieving decoding and
2// converting GNSS data streams from NTRIP broadcasters.
3//
4// Copyright (C) 2007
5// German Federal Agency for Cartography and Geodesy (BKG)
6// http://www.bkg.bund.de
7// Czech Technical University Prague, Department of Geodesy
8// http://www.fsv.cvut.cz
9//
10// Email: euref-ip@bkg.bund.de
11//
12// This program is free software; you can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// as published by the Free Software Foundation, version 2.
15//
16// This program is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program; if not, write to the Free Software
23// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24
25/* -------------------------------------------------------------------------
26 * BKG NTRIP Client
27 * -------------------------------------------------------------------------
28 *
29 * Class: t_dopPlot
30 *
31 * Purpose: Plot PDOP, GDOP, and number of satellites
32 *
33 * Author: L. Mervart
34 *
35 * Created: 09-Sep-2012
36 *
37 * Changes:
38 *
39 * -----------------------------------------------------------------------*/
40
41#include <qwt_scale_draw.h>
42#include <qwt_text.h>
43#include <qwt_legend.h>
44#include <qwt_plot_marker.h>
45
46#include "dopplot.h"
47#include "reqcanalyze.h"
48
49//
50//////////////////////////////////////////////////////////////////////////////
51class t_scaleDrawTime : public QwtScaleDraw {
52 public:
53 t_scaleDrawTime() {}
54 virtual QwtText label(double mjdX24) const {
55 bncTime epoTime; epoTime.setmjd(mjdX24/24.0);
56 return QwtText(epoTime.timestr(0,':').c_str());
57 }
58};
59
60// Constructor
61//////////////////////////////////////////////////////////////////////////////
62t_dopPlot::t_dopPlot(QWidget* parent, t_obsStat* obsStat)
63: QwtPlot(parent) {
64
65 setCanvasBackground(QColor(Qt::white));
66
67 // Axes
68 // ----
69 setAxisScaleDraw(QwtPlot::xBottom, new t_scaleDrawTime());
70 setAxisLabelRotation(QwtPlot::xBottom, -10.0);
71 setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
72
73 enableAxis(QwtPlot::yRight);
74
75 QwtText textPDOP("PDOP");
76 QFont fontPDOP = textPDOP.font();
77 fontPDOP.setPointSize(fontPDOP.pointSize()*0.8);
78 textPDOP.setFont(fontPDOP);
79 textPDOP.setColor(Qt::red);
80 setAxisTitle(QwtPlot::yRight, textPDOP);
81 setAxisScale(QwtPlot::yRight, 0, 6);
82
83 QwtText textNumSat("# Sat");
84 QFont fontNumSat = textNumSat.font();
85 fontNumSat.setPointSize(fontNumSat.pointSize()*0.8);
86 textNumSat.setFont(fontNumSat);
87 textNumSat.setColor(Qt::blue);
88 setAxisTitle(QwtPlot::yLeft, textNumSat);
89 setAxisScale(QwtPlot::yLeft, 0, 20);
90
91 // Legend
92 // ------
93 QwtLegend* legend = new QwtLegend;
94 insertLegend(legend, QwtPlot::RightLegend);
95
96 // Curves
97 // ------
98 if (obsStat) {
99
100 QwtPlotCurve* curveNumSat = new QwtPlotCurve(textNumSat);
101 curveNumSat->setXAxis(QwtPlot::xBottom);
102 curveNumSat->setYAxis(QwtPlot::yLeft);
103 curveNumSat->setSamples(obsStat->_mjdX24, obsStat->_numSat);
104 curveNumSat->setPen(QPen(textNumSat.color()));
105 curveNumSat->attach(this);
106
107 QwtPlotCurve* curvePDOP = new QwtPlotCurve(textPDOP);
108 curvePDOP->setXAxis(QwtPlot::xBottom);
109 curvePDOP->setYAxis(QwtPlot::yRight);
110 curvePDOP->setSamples(obsStat->_mjdX24, obsStat->_PDOP);
111 curvePDOP->setPen(QPen(textPDOP.color()));
112 curvePDOP->attach(this);
113 }
114
115 // Important !!!
116 // -------------
117 replot();
118}
119
Note: See TracBrowser for help on using the repository browser.