source: ntrip/trunk/GnssCenter/map_stations/map_stations.cpp@ 5430

Last change on this file since 5430 was 5430, checked in by mervart, 11 years ago
File size: 3.5 KB
RevLine 
[4836]1
2/* -------------------------------------------------------------------------
3 * RTNet GUI
4 * -------------------------------------------------------------------------
5 *
[5406]6 * Class: t_map_stations
[4836]7 *
8 * Purpose: Plot map of stations/satellites
9 *
10 * Author: L. Mervart
11 *
12 * Created: 05-Jan-2013
13 *
14 * Changes:
15 *
16 * -----------------------------------------------------------------------*/
17
[5418]18#include <iostream>
[4836]19#include <QtSvg>
20
21#include <qwt_symbol.h>
22#include <qwt_plot.h>
23#include <qwt_plot_svgitem.h>
24#include <qwt_plot_curve.h>
25#include <qwt_plot_marker.h>
26#include <qwt_plot_canvas.h>
27#include <qwt_plot_zoomer.h>
28#include <qwt_plot_renderer.h>
29
[5406]30#include "map_stations.h"
[5420]31#include "worldplot.h"
[5416]32#include "thriftclient.h"
[4836]33
[4858]34using namespace std;
[5001]35using namespace GnssCenter;
[4858]36
[5406]37Q_EXPORT_PLUGIN2(gnsscenter_map_stations, GnssCenter::t_map_stationsFactory)
[5018]38
[4836]39// Constructor
40/////////////////////////////////////////////////////////////////////////////
[5420]41t_map_stations::t_map_stations() : QMainWindow() {
[4836]42
[5420]43 // World Plot
44 // ----------
45 _plot = new t_worldPlot();
46 setCentralWidget(_plot);
[4836]47
[5422]48 // Tool Bar
49 // --------
50 QToolBar* toolBar = new QToolBar("t_map_stations_ToolBar");
51 addToolBar(Qt::BottomToolBarArea, toolBar);
[5430]52
[5422]53 QAction* actStartThrift = new QAction("Start Thrift", 0);
54 toolBar->addAction(actStartThrift);
55 connect(actStartThrift, SIGNAL(triggered()), this, SLOT(slotStartThrift()));
56
[5430]57 QAction* actStopThrift = new QAction("Stop Thrift", 0);
58 toolBar->addAction(actStopThrift);
59 connect(actStopThrift, SIGNAL(triggered()), this, SLOT(slotStopThrift()));
60
[5410]61 // Thrift Client;
[5415]62 // --------------
[5422]63 _thriftClient = 0;
[5427]64 _results = 0;
[4836]65}
66
67// Destructor
68/////////////////////////////////////////////////////////////////////////////
[5422]69t_map_stations::~t_map_stations() {
70 if (_thriftClient) {
[5428]71 _thriftClient->stopAndDestroy();
[5422]72 }
[5428]73 if (_results) {
74 while (!_results->empty()) {
75 delete _results->back();
76 _results->pop_back();
77 }
78 delete _results;
79 }
[4836]80}
81
[5422]82//
83/////////////////////////////////////////////////////////////////////////////
84void t_map_stations::slotStartThrift() {
85 if (!_thriftClient) {
86 _thriftClient = new t_thriftClient(this);
87 _thriftClient->start();
[5429]88 slotPlotResults();
[5422]89 }
[5423]90 //// beg test
91 else {
92 _plot->slotNewPoint("AAAA", 50.0, 15.0);
93 }
94 //// end test
[5422]95}
[4836]96
[5415]97//
98/////////////////////////////////////////////////////////////////////////////
[5430]99void t_map_stations::slotStopThrift() {
100 if (_thriftClient && _thriftClient->isRunning()) {
101 _thriftClient->stopAndDestroy();
102 _thriftClient = 0;
103 }
104}
105
106//
107/////////////////////////////////////////////////////////////////////////////
[5427]108void t_map_stations::putThriftResults(std::vector<t_thriftResult*>* results) {
[5429]109 QMutexLocker locker(&_mutex);
[5427]110 if (_results) {
111 while (!_results->empty()) {
112 delete _results->back();
113 _results->pop_back();
114 }
115 delete _results;
116 }
117 _results = results;
[5429]118}
119
120//
121/////////////////////////////////////////////////////////////////////////////
122void t_map_stations::slotPlotResults() {
123 QMutexLocker locker(&_mutex);
[5427]124 // beg test
[5429]125 if (_results) {
126 for (unsigned ii = 0; ii < _results->size(); ii++) {
127 const t_thriftResult* result = _results->at(ii);
128 cout << result->_name << ' '
129 << result->_nGPS << ' ' << result->_nGLO << ' '
130 << result->_x << ' ' << result->_y << ' ' << result->_z << endl;
131 }
[5427]132 }
133 // end test
[5430]134 if (_thriftClient) {
135 QTimer::singleShot(1000, this, SLOT(slotPlotResults()));
136 }
[5415]137}
Note: See TracBrowser for help on using the repository browser.