source: ntrip/trunk/BNS/bnswindow.cpp@ 2359

Last change on this file since 2359 was 2359, checked in by weber, 12 years ago

* empty log message *

File size: 97.2 KB
Line 
1
2/* -------------------------------------------------------------------------
3 * BKG NTRIP Server
4 * -------------------------------------------------------------------------
5 *
6 * Class: bnsWindow
7 *
8 * Purpose: This class implements the main application window.
9 *
10 * Author: L. Mervart
11 *
12 * Created: 29-Mar-2008
13 *
14 * Changes:
15 *
16 * -----------------------------------------------------------------------*/
17
18#include <iostream>
19
20#include "bnswindow.h"
21#include "bnshlpdlg.h"
22#include "bnssettings.h"
23#include "bnscustomtrafo.h"
24
25using namespace std;
26
27// About Dialog - Constructor
28////////////////////////////////////////////////////////////////////////////
29bnsAboutDlg::bnsAboutDlg(QWidget* parent) :
30 QDialog(parent) {
31
32 QTextBrowser* tb = new QTextBrowser;
33 QUrl url; url.setPath(":bnsabout.html");
34 tb->setSource(url);
35 tb->setReadOnly(true);
36
37 int ww = QFontMetrics(font()).width('w');
38 QPushButton* _closeButton = new QPushButton("Close");
39 _closeButton->setMaximumWidth(10*ww);
40 connect(_closeButton, SIGNAL(clicked()), this, SLOT(close()));
41
42 QGridLayout* dlgLayout = new QGridLayout();
43 QLabel* img = new QLabel();
44 img->setPixmap(QPixmap(":ntrip-logo.png"));
45 dlgLayout->addWidget(img, 0,0);
46 dlgLayout->addWidget(new QLabel("BKG Ntrip State Space Server (BNS) Version 1.1"), 0,1);
47 dlgLayout->addWidget(tb,1,0,1,2);
48 dlgLayout->addWidget(_closeButton,2,1,Qt::AlignRight);
49
50 setLayout(dlgLayout);
51 resize(60*ww, 60*ww);
52 show();
53}
54
55// About Dialog - Destructor
56////////////////////////////////////////////////////////////////////////////
57bnsAboutDlg::~bnsAboutDlg() {
58};
59
60// Flowchart Dialog - Constructor
61////////////////////////////////////////////////////////////////////////////
62bnsFlowchartDlg::bnsFlowchartDlg(QWidget* parent) :
63 QDialog(parent) {
64
65 int ww = QFontMetrics(font()).width('w');
66 QPushButton* _closeButton = new QPushButton("Close");
67 _closeButton->setMaximumWidth(10*ww);
68 connect(_closeButton, SIGNAL(clicked()), this, SLOT(close()));
69
70 QGridLayout* dlgLayout = new QGridLayout();
71 QLabel* img = new QLabel();
72 img->setPixmap(QPixmap(":bnsflowchart.png"));
73 dlgLayout->addWidget(img, 0,0);
74 dlgLayout->addWidget(_closeButton,1,0,Qt::AlignLeft);
75
76 setLayout(dlgLayout);
77 show();
78}
79
80// Flowchart Dialog - Destructor
81////////////////////////////////////////////////////////////////////////////
82bnsFlowchartDlg::~bnsFlowchartDlg() {
83};
84
85// Constructor
86////////////////////////////////////////////////////////////////////////////
87bnsWindow::bnsWindow() {
88
89 _bns = 0;
90
91 bnsSettings settings;
92
93 QString fontString = settings.value("font").toString();
94 if ( !fontString.isEmpty() ) {
95 QFont newFont;
96 if (newFont.fromString(fontString)) {
97 QApplication::setFont(newFont);
98 }
99 }
100
101 int ww = QFontMetrics(this->font()).width('w');
102 setMinimumSize(77*ww, 65*ww);
103 setWindowTitle(tr("BKG Ntrip State Space Server (BNS) Version 1.1"));
104 setWindowIcon(QPixmap(":ntrip-logo.png"));
105
106 // Create Actions
107 // --------------
108 _actHelp = new QAction(tr("&Help Contents"),this);
109 connect(_actHelp, SIGNAL(triggered()), SLOT(slotHelp()));
110
111 _actAbout = new QAction(tr("&About BNS"),this);
112 connect(_actAbout, SIGNAL(triggered()), SLOT(slotAbout()));
113
114 _actFlowchart = new QAction(tr("&Flow Chart"),this);
115 connect(_actFlowchart, SIGNAL(triggered()), SLOT(slotFlowchart()));
116
117 _actFontSel = new QAction(tr("Select &Font"),this);
118 connect(_actFontSel, SIGNAL(triggered()), SLOT(slotFontSel()));
119
120 _actSaveOpt = new QAction(tr("&Save Options"),this);
121 connect(_actSaveOpt, SIGNAL(triggered()), SLOT(slotSaveOptions()));
122
123 _actQuit = new QAction(tr("&Quit"),this);
124 connect(_actQuit, SIGNAL(triggered()), SLOT(close()));
125
126 _actWhatsThis= new QAction(tr("Help=Shift+F1"),this);
127 connect(_actWhatsThis, SIGNAL(triggered()), SLOT(slotWhatsThis()));
128
129 _actStart = new QAction(tr("Sta&rt"),this);
130 connect(_actStart, SIGNAL(triggered()), SLOT(slotStart()));
131
132 _actStop = new QAction(tr("Sto&p"),this);
133 connect(_actStop, SIGNAL(triggered()), SLOT(slotStop()));
134 _actStop->setEnabled(false);
135
136 CreateMenu();
137 AddToolbar();
138
139 // Canvas with Editable Fields
140 // ---------------------------
141 _canvas = new QWidget;
142 setCentralWidget(_canvas);
143
144 // Proxy Options
145 // -------------
146 _proxyHostLineEdit = new QLineEdit(settings.value("proxyHost").toString());
147 _proxyPortLineEdit = new QLineEdit(settings.value("proxyPort").toString());
148
149 // General Options
150 // ---------------
151 _logFileLineEdit = new QLineEdit(settings.value("logFile").toString());
152 _fileAppendCheckBox = new QCheckBox();
153 _fileAppendCheckBox->setCheckState(Qt::CheckState(settings.value("fileAppend").toInt()));
154 _autoStartCheckBox = new QCheckBox();
155 _autoStartCheckBox->setCheckState(Qt::CheckState(
156 settings.value("autoStart").toInt()));
157
158 // RINEX Ephemeris Options
159 // -----------------------
160 _ephHostLineEdit = new QLineEdit(settings.value("ephHost").toString());
161 _ephPortLineEdit = new QLineEdit(settings.value("ephPort").toString());
162 _ephEchoLineEdit = new QLineEdit(settings.value("ephEcho").toString());
163
164 // Clocks & Orbits Options
165 // -----------------------
166 _clkPortLineEdit = new QLineEdit(settings.value("clkPort").toString());
167 _inpEchoLineEdit = new QLineEdit(settings.value("inpEcho").toString());
168
169
170 // Broadcast Corrections I Options
171 // -------------------------------
172 _outHost_1_LineEdit = new QLineEdit(settings.value("outHost1").toString());
173 _outPort_1_LineEdit = new QLineEdit(settings.value("outPort1").toString());
174 _password_1_LineEdit = new QLineEdit(settings.value("password1").toString());
175 _password_1_LineEdit->setEchoMode(QLineEdit::Password);
176 _mountpoint_1_LineEdit = new QLineEdit(settings.value("mountpoint_1").toString());
177 _refSys_1_ComboBox = new QComboBox;
178 _refSys_1_ComboBox->setEditable(false);
179 _refSys_1_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
180 int ii = _refSys_1_ComboBox->findText(settings.value("refSys_1").toString());
181 if (ii != -1) {
182 _refSys_1_ComboBox->setCurrentIndex(ii);
183 }
184 _outFile_1_LineEdit = new QLineEdit(settings.value("outFile_1").toString());
185 _CoM_1_CheckBox = new QCheckBox();
186 _CoM_1_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_1").toInt()));
187
188 // Broadcast Corrections II Options
189 // --------------------------------
190 _outHost_2_LineEdit = new QLineEdit(settings.value("outHost2").toString());
191 _outPort_2_LineEdit = new QLineEdit(settings.value("outPort2").toString());
192 _password_2_LineEdit = new QLineEdit(settings.value("password2").toString());
193 _password_2_LineEdit->setEchoMode(QLineEdit::Password);
194 _mountpoint_2_LineEdit = new QLineEdit(settings.value("mountpoint_2").toString());
195 _refSys_2_ComboBox = new QComboBox;
196 _refSys_2_ComboBox->setEditable(false);
197 _refSys_2_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
198 ii = _refSys_2_ComboBox->findText(settings.value("refSys_2").toString());
199 if (ii != -1) {
200 _refSys_2_ComboBox->setCurrentIndex(ii);
201 }
202 _outFile_2_LineEdit = new QLineEdit(settings.value("outFile_2").toString());
203 _CoM_2_CheckBox = new QCheckBox();
204 _CoM_2_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_2").toInt()));
205
206 // Broadcast Corrections III Options
207 // ---------------------------------
208 _outHost_3_LineEdit = new QLineEdit(settings.value("outHost3").toString());
209 _outPort_3_LineEdit = new QLineEdit(settings.value("outPort3").toString());
210 _password_3_LineEdit = new QLineEdit(settings.value("password3").toString());
211 _password_3_LineEdit->setEchoMode(QLineEdit::Password);
212 _mountpoint_3_LineEdit = new QLineEdit(settings.value("mountpoint_3").toString());
213 _refSys_3_ComboBox = new QComboBox;
214 _refSys_3_ComboBox->setEditable(false);
215 _refSys_3_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
216 ii = _refSys_3_ComboBox->findText(settings.value("refSys_3").toString());
217 if (ii != -1) {
218 _refSys_3_ComboBox->setCurrentIndex(ii);
219 }
220 _outFile_3_LineEdit = new QLineEdit(settings.value("outFile_3").toString());
221 _CoM_3_CheckBox = new QCheckBox();
222 _CoM_3_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_3").toInt()));
223
224 // Broadcast Corrections IV Options
225 // --------------------------------
226 _outHost_4_LineEdit = new QLineEdit(settings.value("outHost4").toString());
227 _outPort_4_LineEdit = new QLineEdit(settings.value("outPort4").toString());
228 _password_4_LineEdit = new QLineEdit(settings.value("password4").toString());
229 _password_4_LineEdit->setEchoMode(QLineEdit::Password);
230 _mountpoint_4_LineEdit = new QLineEdit(settings.value("mountpoint_4").toString());
231 _refSys_4_ComboBox = new QComboBox;
232 _refSys_4_ComboBox->setEditable(false);
233 _refSys_4_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
234 ii = _refSys_4_ComboBox->findText(settings.value("refSys_4").toString());
235 if (ii != -1) {
236 _refSys_4_ComboBox->setCurrentIndex(ii);
237 }
238 _outFile_4_LineEdit = new QLineEdit(settings.value("outFile_4").toString());
239 _CoM_4_CheckBox = new QCheckBox();
240 _CoM_4_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_4").toInt()));
241
242 // Broadcast Corrections V Options
243 // -------------------------------
244 _outHost_5_LineEdit = new QLineEdit(settings.value("outHost5").toString());
245 _outPort_5_LineEdit = new QLineEdit(settings.value("outPort5").toString());
246 _password_5_LineEdit = new QLineEdit(settings.value("password5").toString());
247 _password_5_LineEdit->setEchoMode(QLineEdit::Password);
248 _mountpoint_5_LineEdit = new QLineEdit(settings.value("mountpoint_5").toString());
249 _refSys_5_ComboBox = new QComboBox;
250 _refSys_5_ComboBox->setEditable(false);
251 _refSys_5_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
252 ii = _refSys_5_ComboBox->findText(settings.value("refSys_5").toString());
253 if (ii != -1) {
254 _refSys_5_ComboBox->setCurrentIndex(ii);
255 }
256 _outFile_5_LineEdit = new QLineEdit(settings.value("outFile_5").toString());
257 _CoM_5_CheckBox = new QCheckBox();
258 _CoM_5_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_5").toInt()));
259
260 // Broadcast Corrections VI Options
261 // --------------------------------
262 _outHost_6_LineEdit = new QLineEdit(settings.value("outHost6").toString());
263 _outPort_6_LineEdit = new QLineEdit(settings.value("outPort6").toString());
264 _password_6_LineEdit = new QLineEdit(settings.value("password6").toString());
265 _password_6_LineEdit->setEchoMode(QLineEdit::Password);
266 _mountpoint_6_LineEdit = new QLineEdit(settings.value("mountpoint_6").toString());
267 _refSys_6_ComboBox = new QComboBox;
268 _refSys_6_ComboBox->setEditable(false);
269 _refSys_6_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
270 ii = _refSys_6_ComboBox->findText(settings.value("refSys_6").toString());
271 if (ii != -1) {
272 _refSys_6_ComboBox->setCurrentIndex(ii);
273 }
274 _outFile_6_LineEdit = new QLineEdit(settings.value("outFile_6").toString());
275 _CoM_6_CheckBox = new QCheckBox();
276 _CoM_6_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_6").toInt()));
277
278 // Broadcast Corrections VII Options
279 // ---------------------------------
280 _outHost_7_LineEdit = new QLineEdit(settings.value("outHost7").toString());
281 _outPort_7_LineEdit = new QLineEdit(settings.value("outPort7").toString());
282 _password_7_LineEdit = new QLineEdit(settings.value("password7").toString());
283 _password_7_LineEdit->setEchoMode(QLineEdit::Password);
284 _mountpoint_7_LineEdit = new QLineEdit(settings.value("mountpoint_7").toString());
285 _refSys_7_ComboBox = new QComboBox;
286 _refSys_7_ComboBox->setEditable(false);
287 _refSys_7_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
288 ii = _refSys_7_ComboBox->findText(settings.value("refSys_7").toString());
289 if (ii != -1) {
290 _refSys_7_ComboBox->setCurrentIndex(ii);
291 }
292 _outFile_7_LineEdit = new QLineEdit(settings.value("outFile_7").toString());
293 _CoM_7_CheckBox = new QCheckBox();
294 _CoM_7_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_7").toInt()));
295
296 // Broadcast Corrections VIII Options
297 // --------------------------------
298 _outHost_8_LineEdit = new QLineEdit(settings.value("outHost8").toString());
299 _outPort_8_LineEdit = new QLineEdit(settings.value("outPort8").toString());
300 _password_8_LineEdit = new QLineEdit(settings.value("password8").toString());
301 _password_8_LineEdit->setEchoMode(QLineEdit::Password);
302 _mountpoint_8_LineEdit = new QLineEdit(settings.value("mountpoint_8").toString());
303 _refSys_8_ComboBox = new QComboBox;
304 _refSys_8_ComboBox->setEditable(false);
305 _refSys_8_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
306 ii = _refSys_8_ComboBox->findText(settings.value("refSys_8").toString());
307 if (ii != -1) {
308 _refSys_8_ComboBox->setCurrentIndex(ii);
309 }
310 _outFile_8_LineEdit = new QLineEdit(settings.value("outFile_8").toString());
311 _CoM_8_CheckBox = new QCheckBox();
312 _CoM_8_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_8").toInt()));
313
314 // Broadcast Corrections IX Options
315 // --------------------------------
316 _outHost_9_LineEdit = new QLineEdit(settings.value("outHost9").toString());
317 _outPort_9_LineEdit = new QLineEdit(settings.value("outPort9").toString());
318 _password_9_LineEdit = new QLineEdit(settings.value("password9").toString());
319 _password_9_LineEdit->setEchoMode(QLineEdit::Password);
320 _mountpoint_9_LineEdit = new QLineEdit(settings.value("mountpoint_9").toString());
321 _refSys_9_ComboBox = new QComboBox;
322 _refSys_9_ComboBox->setEditable(false);
323 _refSys_9_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
324 ii = _refSys_9_ComboBox->findText(settings.value("refSys_9").toString());
325 if (ii != -1) {
326 _refSys_9_ComboBox->setCurrentIndex(ii);
327 }
328 _outFile_9_LineEdit = new QLineEdit(settings.value("outFile_9").toString());
329 _CoM_9_CheckBox = new QCheckBox();
330 _CoM_9_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_9").toInt()));
331
332 // Broadcast Corrections X Options
333 // -------------------------------
334 _outHost_10_LineEdit = new QLineEdit(settings.value("outHost10").toString());
335 _outPort_10_LineEdit = new QLineEdit(settings.value("outPort10").toString());
336 _password_10_LineEdit = new QLineEdit(settings.value("password10").toString());
337 _password_10_LineEdit->setEchoMode(QLineEdit::Password);
338 _mountpoint_10_LineEdit = new QLineEdit(settings.value("mountpoint_10").toString());
339 _refSys_10_ComboBox = new QComboBox;
340 _refSys_10_ComboBox->setEditable(false);
341 _refSys_10_ComboBox->addItems(QString("IGS05,ETRF2000,NAD83,GDA94,SIRGAS95,SIRGAS2000,Custom").split(","));
342 ii = _refSys_10_ComboBox->findText(settings.value("refSys_10").toString());
343 if (ii != -1) {
344 _refSys_10_ComboBox->setCurrentIndex(ii);
345 }
346 _outFile_10_LineEdit = new QLineEdit(settings.value("outFile_10").toString());
347 _CoM_10_CheckBox = new QCheckBox();
348 _CoM_10_CheckBox->setCheckState(Qt::CheckState(settings.value("CoM_10").toInt()));
349
350 // Broadcast Ephemerides
351 // ---------------------
352 _outHost_Eph_LineEdit = new QLineEdit(settings.value("outHostEph").toString());
353 _outPort_Eph_LineEdit = new QLineEdit(settings.value("outPortEph").toString());
354 _password_Eph_LineEdit = new QLineEdit(settings.value("passwordEph").toString());
355 _password_Eph_LineEdit->setEchoMode(QLineEdit::Password);
356 _mountpoint_Eph_LineEdit = new QLineEdit(settings.value("mountpoint_Eph").toString());
357 _samplEphSpinBox = new QSpinBox;
358 _samplEphSpinBox->setMinimum(0);
359 _samplEphSpinBox->setMaximum(60);
360 _samplEphSpinBox->setSingleStep(5);
361 _samplEphSpinBox->setMaximumWidth(9*ww);
362 _samplEphSpinBox->setValue(settings.value("samplEph").toInt());
363 _samplEphSpinBox->setSuffix(" sec");
364
365 // RINEX Clocks Options
366 // --------------------
367 _rnxPathLineEdit = new QLineEdit(settings.value("rnxPath").toString());
368 _rnxIntrComboBox = new QComboBox;
369 _rnxIntrComboBox->setEditable(false);
370 _rnxIntrComboBox->addItems(QString("1 min,2 min,5 min,10 min,15 min,30 min,1 hour,1 day").split(","));
371 ii = _rnxIntrComboBox->findText(settings.value("rnxIntr").toString());
372 if (ii != -1) {
373 _rnxIntrComboBox->setCurrentIndex(ii);
374 }
375 _rnxSamplSpinBox = new QSpinBox;
376 _rnxSamplSpinBox->setMinimum(0);
377 _rnxSamplSpinBox->setMaximum(60);
378 _rnxSamplSpinBox->setSingleStep(5);
379 _rnxSamplSpinBox->setMaximumWidth(9*ww);
380 _rnxSamplSpinBox->setValue(settings.value("rnxSampl").toInt());
381 _rnxSamplSpinBox->setSuffix(" sec");
382
383 // SP3 Orbits Options
384 // ------------------
385 _sp3PathLineEdit = new QLineEdit(settings.value("sp3Path").toString());
386 _sp3IntrComboBox = new QComboBox;
387 _sp3IntrComboBox->setEditable(false);
388 _sp3IntrComboBox->addItems(QString("1 min,2 min,5 min,10 min,15 min,30 min,1 hour,1 day").split(","));
389 ii = _sp3IntrComboBox->findText(settings.value("sp3Intr").toString());
390 if (ii != -1) {
391 _sp3IntrComboBox->setCurrentIndex(ii);
392 }
393 _sp3SamplSpinBox = new QSpinBox;
394 _sp3SamplSpinBox->setMinimum(0);
395 _sp3SamplSpinBox->setMaximum(900);
396 _sp3SamplSpinBox->setSingleStep(60);
397 _sp3SamplSpinBox->setMaximumWidth(9*ww);
398 _sp3SamplSpinBox->setValue(settings.value("sp3Sampl").toInt());
399 _sp3SamplSpinBox->setSuffix(" sec");
400
401 // Whats This
402 // ----------
403 _proxyHostLineEdit->setWhatsThis(tr("<p>If you are running BNS within a protected Local Area Network (LAN), you might need to use a proxy server to access the Internet. Enter your proxy server IP and port number in case one is operated in front of BNS. If you do not know the IP and port of your proxy server, check the proxy server settings in your Internet browser or ask your network administrator.</p><p>Note that IP streaming is sometimes not allowed in a LAN. In this case you need to ask your network administrator for an appropriate modification of the local security policy or for the installation of a TCP relay to the NTRIP broadcasters. If these are not possible, you might need to run BNS outside your LAN on a network that has unobstructed connection to the Internet.</p>"));
404 _proxyPortLineEdit->setWhatsThis(tr("<p>Enter your proxy server port number in case one is operated in front of BNS.</p>"));
405 _logFileLineEdit->setWhatsThis(tr("<p>Records of BNS activities are shown in the Log section on the bottom of this window. They can be saved into a file when a valid path is specified in the 'Logfile (full path)' field.</p>"));
406 _fileAppendCheckBox->setWhatsThis(tr("<p>When BNS is started, new files are created by default and any existing files with the same name will be overwritten. However, users might want to append already existing files following a restart of BNS, a system crash or when BNS crashed. Tick 'Append files' to continue with existing files and keep what has been recorded so far.</p>"));
407 _inpEchoLineEdit->setWhatsThis(tr("Specify the full path to a file where incoming clocks and orbits are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that incoming clocks and orbits are not saved."));
408 _ephHostLineEdit->setWhatsThis(tr("BNS reads Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address. Specify the host IP e.g. of a BNC installation providing this information."));
409 _ephPortLineEdit->setWhatsThis(tr("BNS reads Broadcast Ephemeris in RINEX Version 3 Navigation file format from an IP address. Specify the IP port e.g. of a BNC installation providing this information."));
410 _ephEchoLineEdit->setWhatsThis(tr("Specify the full path to a file where incoming Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that incoming Broadcast Ephemeris are not saved."));
411 _clkPortLineEdit->setWhatsThis(tr("BNS reads Clocks & Orbits referring to the IGS system (X,Y,Z, ECEF) in SP3 format from an IP port. Specify a local IP port e.g. for an RTNet installation to provide this information."));
412
413 _outHost_1_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
414 _outPort_1_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
415 _mountpoint_1_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
416 _password_1_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
417 _refSys_1_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
418 _outFile_1_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
419
420 _outHost_2_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
421 _outPort_2_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
422 _mountpoint_2_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
423 _password_2_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
424 _refSys_2_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
425 _outFile_2_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
426
427 _outHost_3_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
428 _outPort_3_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
429 _mountpoint_3_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
430 _password_3_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
431 _refSys_3_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
432 _outFile_3_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
433
434 _outHost_4_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
435 _outPort_4_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
436 _mountpoint_4_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
437 _password_4_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
438 _refSys_4_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
439 _outFile_4_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
440
441 _outHost_5_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
442 _outPort_5_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
443 _mountpoint_5_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
444 _password_5_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
445 _refSys_5_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
446 _outFile_5_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
447
448
449 _outHost_6_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
450 _outPort_6_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
451 _mountpoint_6_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
452 _password_6_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
453 _refSys_6_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
454 _outFile_6_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
455
456 _outHost_7_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
457 _outPort_7_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
458 _mountpoint_7_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
459 _password_7_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
460 _refSys_7_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
461 _outFile_7_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
462
463 _outHost_8_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
464 _outPort_8_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
465 _mountpoint_8_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
466 _password_8_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
467 _refSys_8_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
468 _outFile_8_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
469
470 _outHost_9_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
471 _outPort_9_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
472 _mountpoint_9_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
473 _password_9_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
474 _refSys_9_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
475 _outFile_9_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
476
477 _outHost_10_LineEdit->setWhatsThis(tr("BNS can stream clock and orbit Corrections to Broadcast Ephemeris (Broadcast Corrections) in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload corrections."));
478 _outPort_10_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
479 _mountpoint_10_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
480 _password_10_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
481 _refSys_10_ComboBox->setWhatsThis(tr("Select the target reference system for outgoing clock and orbit corrections."));
482 _outFile_10_LineEdit->setWhatsThis(tr("Specify the full path to a file where outgoing clock and orbit corrections to Broadcast Ephemeris are saved. Beware that the size of this file can rapidly increase. Default is an empty option field meaning that outgoing corrections are not saved."));
483
484 _outHost_Eph_LineEdit->setWhatsThis(tr("BNS can upload a Broadcast Ephemeris stream in RTCM Version 3 format. Specify the host IP of an NTRIP Broadcaster to upload the stream. An empty option field means that you don't want to upload Broadcast Ephemeris."));
485 _outPort_Eph_LineEdit->setWhatsThis(tr("Specify the IP port of an NTRIP Broadcaster to upload the stream. Default is port 80."));
486 _mountpoint_Eph_LineEdit->setWhatsThis(tr("Specify the mounpoint for stream upload to an NTRIP Broadcaster."));
487 _password_Eph_LineEdit->setWhatsThis(tr("Specify the stream upload password protecting the mounpoint on an NTRIP Broadcaster."));
488 _samplEphSpinBox->setWhatsThis(tr("Select the Broadcast Ephemeris sampling interval in seconds. Defaut is '5' meaning that a complete set of Broadcast Ephemeris is uploaded every 5 seconds."));
489 _rnxPathLineEdit->setWhatsThis(tr("Specify the path for saving the generated clock corrections as Clock RINEX files. If the specified directory does not exist, BNS will not create Clock RINEX files."));
490 _rnxIntrComboBox->setWhatsThis(tr("Select the length of the Clock RINEX file."));
491 _rnxSamplSpinBox->setWhatsThis(tr("Select the Clock RINEX file sampling interval in seconds. A value of zero '0' tells BNS to store all available samples into Clock RINEX files."));
492 _sp3PathLineEdit->setWhatsThis(tr("Specify the path for saving the generated orbit corrections as SP3 orbit files. If the specified directory does not exist, BNS will not create SP3 orbit files."));
493 _sp3IntrComboBox->setWhatsThis(tr("Select the length of the SP3 orbit file."));
494 _sp3SamplSpinBox->setWhatsThis(tr("Select the SP3 orbit file sampling interval in seconds. A value of zero '0' tells BNS to store all available samples into SP3 orbit files."));
495 _autoStartCheckBox->setWhatsThis(tr("<p>Tick 'Auto start' for auto-start of BNS at startup time in window mode with preassigned processing options.</p>"));
496 _CoM_1_CheckBox->setWhatsThis(tr("<p>By default orbit and clock corrections refer to APC. Tick 'Center of Mass' to refer uploaded corrections to CoM.</p>"));
497 _CoM_2_CheckBox->setWhatsThis(tr("<p>By default orbit and clock corrections refer to APC. Tick 'Center of Mass' to refer uploaded corrections to CoM.</p>"));
498 _CoM_3_CheckBox->setWhatsThis(tr("<p>By default orbit and clock corrections refer to APC. Tick 'Center of Mass' to refer uploaded corrections to CoM.</p>"));
499
500
501 // TabWidget
502 // ---------
503 tabs = new QTabWidget();
504
505 // Proxy Tab
506 // ---------
507 QWidget* tab_prx = new QWidget();
508 tabs->setMaximumHeight(20*ww);
509 tabs->addTab(tab_prx, "Proxy");
510
511 QGridLayout* layout_prx = new QGridLayout;
512
513 layout_prx->setColumnMinimumWidth(0,9*ww);
514 _proxyPortLineEdit->setMaximumWidth(9*ww);
515
516 layout_prx->addWidget(new QLabel("Host"), 0, 0);
517 layout_prx->addWidget(_proxyHostLineEdit, 0, 1, 1, 10);
518 layout_prx->addWidget(new QLabel("Port"), 1, 0);
519 layout_prx->addWidget(_proxyPortLineEdit, 1, 1);
520 layout_prx->addWidget(new QLabel("Settings for the proxy in protected networks, leave boxes blank if none."),2, 0, 1, 50, Qt::AlignLeft);
521 layout_prx->addWidget(new QLabel(" "), 3, 0);
522
523 tab_prx->setLayout(layout_prx);
524
525 connect(_proxyHostLineEdit, SIGNAL(textChanged(const QString &)),
526 this, SLOT(slotBnsTextChanged()));
527
528 // General Tab
529 // -----------
530 QWidget* tab_gen = new QWidget();
531 tabs->addTab(tab_gen, "General");
532
533 QGridLayout* layout_gen = new QGridLayout;
534
535 layout_gen->setColumnMinimumWidth(0,9*ww);
536 _logFileLineEdit->setMaximumWidth(40*ww);
537
538 layout_gen->addWidget(new QLabel("Logfile (full path) "), 0, 0);
539 layout_gen->addWidget(_logFileLineEdit, 0, 1);
540 layout_gen->addWidget(new QLabel("Append files"), 1, 0);
541 layout_gen->addWidget(_fileAppendCheckBox, 1, 1);
542 layout_gen->addWidget(new QLabel("Auto start"), 2, 0);
543 layout_gen->addWidget(_autoStartCheckBox, 2, 1);
544 layout_gen->addWidget(new QLabel("General settings for logfile and file handling."), 3, 0, 1, 50, Qt::AlignLeft);
545
546 tab_gen->setLayout(layout_gen);
547
548 // RINEX Ephemeris Tab
549 // -------------------
550 QWidget* tab_eph = new QWidget();
551 tabs->addTab(tab_eph, "RINEX Ephemeris");
552
553 QGridLayout* layout_eph = new QGridLayout;
554
555 layout_eph->setColumnMinimumWidth(0, 9*ww);
556 _ephPortLineEdit->setMaximumWidth(9*ww);
557
558 layout_eph->addWidget(new QLabel("Host"), 0, 0);
559 layout_eph->addWidget(_ephHostLineEdit, 0, 1, 1, 10);
560 layout_eph->addWidget(new QLabel("Port"), 1, 0);
561 layout_eph->addWidget(_ephPortLineEdit, 1, 1);
562 layout_eph->addWidget(new QLabel("Save (full path)"), 2, 0);
563 layout_eph->addWidget(_ephEchoLineEdit, 2, 1, 1, 26);
564 layout_eph->addWidget(new QLabel("Read broadcast ephemeris in RINEX Version 3 Navigation format."), 3, 0, 1, 50, Qt::AlignLeft);
565
566 tab_eph->setLayout(layout_eph);
567
568 connect(_ephHostLineEdit, SIGNAL(textChanged(const QString &)),
569 this, SLOT(slotBnsTextChanged()));
570
571 // Clocks & Orbits Tab
572 // -------------------
573 QWidget* tab_co = new QWidget();
574 tabs->addTab(tab_co,"Clocks && Orbits");
575
576 QGridLayout* layout_co = new QGridLayout;
577
578 layout_co->setColumnMinimumWidth(0, 9*ww);
579 _clkPortLineEdit->setMaximumWidth(9*ww);
580
581 layout_co->addWidget(new QLabel("Listening port"), 0, 0);
582 layout_co->addWidget(_clkPortLineEdit, 0, 1);
583 layout_co->addWidget(new QLabel("Save (full path) "), 1, 0);
584 layout_co->addWidget(_inpEchoLineEdit, 1, 1);
585 layout_co->addWidget(new QLabel("Read clocks and orbits in SP3 format."), 2, 0, 1, 50, Qt::AlignLeft);
586 layout_co->addWidget(new QLabel(""), 3, 0);
587
588 tab_co->setLayout(layout_co);
589
590 connect(_clkPortLineEdit, SIGNAL(textChanged(const QString &)),
591 this, SLOT(slotBnsTextChanged()));
592
593 // Broadcast Corrections I Tab
594 // ---------------------------
595 QWidget* tab_cas1 = new QWidget();
596 tabs->addTab(tab_cas1, "BC I");
597
598 QGridLayout* layout_cas1 = new QGridLayout;
599
600 layout_cas1->setColumnMinimumWidth(0, 9*ww);
601 _outPort_1_LineEdit->setMaximumWidth(9*ww);
602 _password_1_LineEdit->setMaximumWidth(9*ww);
603 _mountpoint_1_LineEdit->setMaximumWidth(12*ww);
604 _refSys_1_ComboBox->setMaximumWidth(12*ww);
605
606 layout_cas1->addWidget(new QLabel("Host"), 0, 0);
607 layout_cas1->addWidget(_outHost_1_LineEdit, 0, 1, 1, 3);
608 layout_cas1->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
609 layout_cas1->addWidget(_outPort_1_LineEdit, 0, 5, 1, 10);
610 layout_cas1->addWidget(new QLabel("Mountpoint"), 1, 0);
611 layout_cas1->addWidget(_mountpoint_1_LineEdit, 1, 1);
612 layout_cas1->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
613 layout_cas1->addWidget(_password_1_LineEdit, 1, 3);
614 layout_cas1->addWidget(new QLabel(" "), 1, 4);
615 layout_cas1->addWidget(new QLabel(" "), 1, 5);
616 layout_cas1->addWidget(new QLabel("System"), 2, 0);
617 layout_cas1->addWidget(_refSys_1_ComboBox, 2, 1);
618 layout_cas1->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
619 layout_cas1->addWidget(_outFile_1_LineEdit, 2, 3, 1, 30);
620 layout_cas1->addWidget(new QLabel("Center of Mass"), 3, 0);
621 layout_cas1->addWidget(_CoM_1_CheckBox, 3, 1);
622 layout_cas1->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
623
624 tab_cas1->setLayout(layout_cas1);
625
626 connect(_refSys_1_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
627 this, SLOT(customTrafo(const QString)));
628
629 connect(_outHost_1_LineEdit, SIGNAL(textChanged(const QString &)),
630 this, SLOT(slotBnsTextChanged()));
631
632 // Broadcast Corrections II Tab
633 // ----------------------------
634 QWidget* tab_cas2 = new QWidget();
635 tabs->addTab(tab_cas2, "BC II");
636
637 QGridLayout* layout_cas2 = new QGridLayout;
638
639 layout_cas2->setColumnMinimumWidth(0, 9*ww);
640 _outPort_2_LineEdit->setMaximumWidth(9*ww);
641 _password_2_LineEdit->setMaximumWidth(9*ww);
642 _mountpoint_2_LineEdit->setMaximumWidth(12*ww);
643 _refSys_2_ComboBox->setMaximumWidth(12*ww);
644
645 layout_cas2->addWidget(new QLabel("Host"), 0, 0);
646 layout_cas2->addWidget(_outHost_2_LineEdit, 0, 1, 1, 3);
647 layout_cas2->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
648 layout_cas2->addWidget(_outPort_2_LineEdit, 0, 5, 1, 10);
649 layout_cas2->addWidget(new QLabel("Mountpoint"), 1, 0);
650 layout_cas2->addWidget(_mountpoint_2_LineEdit, 1, 1);
651 layout_cas2->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
652 layout_cas2->addWidget(_password_2_LineEdit, 1, 3);
653 layout_cas2->addWidget(new QLabel(" "), 1, 4);
654 layout_cas2->addWidget(new QLabel(" "), 1, 5);
655 layout_cas2->addWidget(new QLabel("System"), 2, 0);
656 layout_cas2->addWidget(_refSys_2_ComboBox, 2, 1);
657 layout_cas2->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
658 layout_cas2->addWidget(_outFile_2_LineEdit, 2, 3, 1, 30);
659 layout_cas2->addWidget(new QLabel("Center of Mass"), 3, 0);
660 layout_cas2->addWidget(_CoM_2_CheckBox, 3, 1);
661 layout_cas2->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
662
663 tab_cas2->setLayout(layout_cas2);
664
665 connect(_refSys_2_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
666 this, SLOT(customTrafo(const QString)));
667
668 connect(_outHost_2_LineEdit, SIGNAL(textChanged(const QString &)),
669 this, SLOT(slotBnsTextChanged()));
670
671 // Broadcast Corrections III Tab
672 // -----------------------------
673 QWidget* tab_cas3 = new QWidget();
674 tabs->addTab(tab_cas3, "BC III");
675
676 QGridLayout* layout_cas3 = new QGridLayout;
677
678 layout_cas3->setColumnMinimumWidth(0, 9*ww);
679 _outPort_3_LineEdit->setMaximumWidth(9*ww);
680 _password_3_LineEdit->setMaximumWidth(9*ww);
681 _mountpoint_3_LineEdit->setMaximumWidth(12*ww);
682 _refSys_3_ComboBox->setMaximumWidth(12*ww);
683
684 layout_cas3->addWidget(new QLabel("Host"), 0, 0);
685 layout_cas3->addWidget(_outHost_3_LineEdit, 0, 1, 1, 3);
686 layout_cas3->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
687 layout_cas3->addWidget(_outPort_3_LineEdit, 0, 5, 1, 10);
688 layout_cas3->addWidget(new QLabel("Mountpoint"), 1, 0);
689 layout_cas3->addWidget(_mountpoint_3_LineEdit, 1, 1);
690 layout_cas3->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
691 layout_cas3->addWidget(_password_3_LineEdit, 1, 3);
692 layout_cas3->addWidget(new QLabel(" "), 1, 4);
693 layout_cas3->addWidget(new QLabel(" "), 1, 5);
694 layout_cas3->addWidget(new QLabel("System"), 2, 0);
695 layout_cas3->addWidget(_refSys_3_ComboBox, 2, 1);
696 layout_cas3->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
697 layout_cas3->addWidget(_outFile_3_LineEdit, 2, 3, 1, 30);
698 layout_cas3->addWidget(new QLabel("Center of Mass"), 3, 0);
699 layout_cas3->addWidget(_CoM_3_CheckBox, 3, 1);
700 layout_cas3->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
701
702 tab_cas3->setLayout(layout_cas3);
703
704 connect(_refSys_3_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
705 this, SLOT(customTrafo(const QString)));
706
707 connect(_outHost_3_LineEdit, SIGNAL(textChanged(const QString &)),
708 this, SLOT(slotBnsTextChanged()));
709
710 // Broadcast Corrections IV Tab
711 // ----------------------------
712 QWidget* tab_cas4 = new QWidget();
713 tabs->addTab(tab_cas4, "BC IV");
714
715 QGridLayout* layout_cas4 = new QGridLayout;
716
717 layout_cas4->setColumnMinimumWidth(0, 9*ww);
718 _outPort_4_LineEdit->setMaximumWidth(9*ww);
719 _password_4_LineEdit->setMaximumWidth(9*ww);
720 _mountpoint_4_LineEdit->setMaximumWidth(12*ww);
721 _refSys_4_ComboBox->setMaximumWidth(12*ww);
722
723 layout_cas4->addWidget(new QLabel("Host"), 0, 0);
724 layout_cas4->addWidget(_outHost_4_LineEdit, 0, 1, 1, 3);
725 layout_cas4->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
726 layout_cas4->addWidget(_outPort_4_LineEdit, 0, 5, 1, 10);
727 layout_cas4->addWidget(new QLabel("Mountpoint"), 1, 0);
728 layout_cas4->addWidget(_mountpoint_4_LineEdit, 1, 1);
729 layout_cas4->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
730 layout_cas4->addWidget(_password_4_LineEdit, 1, 3);
731 layout_cas4->addWidget(new QLabel(" "), 1, 4);
732 layout_cas4->addWidget(new QLabel(" "), 1, 5);
733 layout_cas4->addWidget(new QLabel("System"), 2, 0);
734 layout_cas4->addWidget(_refSys_4_ComboBox, 2, 1);
735 layout_cas4->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
736 layout_cas4->addWidget(_outFile_4_LineEdit, 2, 3, 1, 30);
737 layout_cas4->addWidget(new QLabel("Center of Mass"), 3, 0);
738 layout_cas4->addWidget(_CoM_4_CheckBox, 3, 1);
739 layout_cas4->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
740
741 tab_cas4->setLayout(layout_cas4);
742
743 connect(_refSys_4_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
744 this, SLOT(customTrafo(const QString)));
745
746 connect(_outHost_4_LineEdit, SIGNAL(textChanged(const QString &)),
747 this, SLOT(slotBnsTextChanged()));
748
749 // Broadcast Corrections V Tab
750 // ---------------------------
751 QWidget* tab_cas5 = new QWidget();
752 tabs->addTab(tab_cas5, "BC V");
753
754 QGridLayout* layout_cas5 = new QGridLayout;
755
756 layout_cas5->setColumnMinimumWidth(0, 9*ww);
757 _outPort_5_LineEdit->setMaximumWidth(9*ww);
758 _password_5_LineEdit->setMaximumWidth(9*ww);
759 _mountpoint_5_LineEdit->setMaximumWidth(12*ww);
760 _refSys_5_ComboBox->setMaximumWidth(12*ww);
761
762 layout_cas5->addWidget(new QLabel("Host"), 0, 0);
763 layout_cas5->addWidget(_outHost_5_LineEdit, 0, 1, 1, 3);
764 layout_cas5->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
765 layout_cas5->addWidget(_outPort_5_LineEdit, 0, 5, 1, 10);
766 layout_cas5->addWidget(new QLabel("Mountpoint"), 1, 0);
767 layout_cas5->addWidget(_mountpoint_5_LineEdit, 1, 1);
768 layout_cas5->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
769 layout_cas5->addWidget(_password_5_LineEdit, 1, 3);
770 layout_cas5->addWidget(new QLabel(" "), 1, 4);
771 layout_cas5->addWidget(new QLabel(" "), 1, 5);
772 layout_cas5->addWidget(new QLabel("System"), 2, 0);
773 layout_cas5->addWidget(_refSys_5_ComboBox, 2, 1);
774 layout_cas5->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
775 layout_cas5->addWidget(_outFile_5_LineEdit, 2, 3, 1, 30);
776 layout_cas5->addWidget(new QLabel("Center of Mass"), 3, 0);
777 layout_cas5->addWidget(_CoM_5_CheckBox, 3, 1);
778 layout_cas5->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
779
780 tab_cas5->setLayout(layout_cas5);
781
782 connect(_refSys_5_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
783 this, SLOT(customTrafo(const QString)));
784
785 connect(_outHost_5_LineEdit, SIGNAL(textChanged(const QString &)),
786 this, SLOT(slotBnsTextChanged()));
787
788 // Broadcast Corrections VI Tab
789 // ----------------------------
790 QWidget* tab_cas6 = new QWidget();
791 tabs->addTab(tab_cas6, "BC VI");
792
793 QGridLayout* layout_cas6 = new QGridLayout;
794
795 layout_cas6->setColumnMinimumWidth(0, 9*ww);
796 _outPort_6_LineEdit->setMaximumWidth(9*ww);
797 _password_6_LineEdit->setMaximumWidth(9*ww);
798 _mountpoint_6_LineEdit->setMaximumWidth(12*ww);
799 _refSys_6_ComboBox->setMaximumWidth(12*ww);
800
801 layout_cas6->addWidget(new QLabel("Host"), 0, 0);
802 layout_cas6->addWidget(_outHost_6_LineEdit, 0, 1, 1, 3);
803 layout_cas6->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
804 layout_cas6->addWidget(_outPort_6_LineEdit, 0, 5, 1, 10);
805 layout_cas6->addWidget(new QLabel("Mountpoint"), 1, 0);
806 layout_cas6->addWidget(_mountpoint_6_LineEdit, 1, 1);
807 layout_cas6->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
808 layout_cas6->addWidget(_password_6_LineEdit, 1, 3);
809 layout_cas6->addWidget(new QLabel(" "), 1, 4);
810 layout_cas6->addWidget(new QLabel(" "), 1, 5);
811 layout_cas6->addWidget(new QLabel("System"), 2, 0);
812 layout_cas6->addWidget(_refSys_6_ComboBox, 2, 1);
813 layout_cas6->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
814 layout_cas6->addWidget(_outFile_6_LineEdit, 2, 3, 1, 30);
815 layout_cas6->addWidget(new QLabel("Center of Mass"), 3, 0);
816 layout_cas6->addWidget(_CoM_6_CheckBox, 3, 1);
817 layout_cas6->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
818
819 tab_cas6->setLayout(layout_cas6);
820
821 connect(_refSys_6_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
822 this, SLOT(customTrafo(const QString)));
823
824 connect(_outHost_6_LineEdit, SIGNAL(textChanged(const QString &)),
825 this, SLOT(slotBnsTextChanged()));
826
827 // Broadcast Corrections VII Tab
828 // -----------------------------
829 QWidget* tab_cas7 = new QWidget();
830 tabs->addTab(tab_cas7, "BC VII");
831
832 QGridLayout* layout_cas7 = new QGridLayout;
833
834 layout_cas7->setColumnMinimumWidth(0, 9*ww);
835 _outPort_7_LineEdit->setMaximumWidth(9*ww);
836 _password_7_LineEdit->setMaximumWidth(9*ww);
837 _mountpoint_7_LineEdit->setMaximumWidth(12*ww);
838 _refSys_7_ComboBox->setMaximumWidth(12*ww);
839
840 layout_cas7->addWidget(new QLabel("Host"), 0, 0);
841 layout_cas7->addWidget(_outHost_7_LineEdit, 0, 1, 1, 3);
842 layout_cas7->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
843 layout_cas7->addWidget(_outPort_7_LineEdit, 0, 5, 1, 10);
844 layout_cas7->addWidget(new QLabel("Mountpoint"), 1, 0);
845 layout_cas7->addWidget(_mountpoint_7_LineEdit, 1, 1);
846 layout_cas7->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
847 layout_cas7->addWidget(_password_7_LineEdit, 1, 3);
848 layout_cas7->addWidget(new QLabel(" "), 1, 4);
849 layout_cas7->addWidget(new QLabel(" "), 1, 5);
850 layout_cas7->addWidget(new QLabel("System"), 2, 0);
851 layout_cas7->addWidget(_refSys_7_ComboBox, 2, 1);
852 layout_cas7->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
853 layout_cas7->addWidget(_outFile_7_LineEdit, 2, 3, 1, 30);
854 layout_cas7->addWidget(new QLabel("Center of Mass"), 3, 0);
855 layout_cas7->addWidget(_CoM_7_CheckBox, 3, 1);
856 layout_cas7->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
857
858 tab_cas7->setLayout(layout_cas7);
859
860 connect(_refSys_7_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
861 this, SLOT(customTrafo(const QString)));
862
863 connect(_outHost_7_LineEdit, SIGNAL(textChanged(const QString &)),
864 this, SLOT(slotBnsTextChanged()));
865
866 // Broadcast Corrections VIII Tab
867 // ------------------------------
868 QWidget* tab_cas8 = new QWidget();
869 tabs->addTab(tab_cas8, "BC VIII");
870
871 QGridLayout* layout_cas8 = new QGridLayout;
872
873 layout_cas8->setColumnMinimumWidth(0, 9*ww);
874 _outPort_8_LineEdit->setMaximumWidth(9*ww);
875 _password_8_LineEdit->setMaximumWidth(9*ww);
876 _mountpoint_8_LineEdit->setMaximumWidth(12*ww);
877 _refSys_8_ComboBox->setMaximumWidth(12*ww);
878
879 layout_cas8->addWidget(new QLabel("Host"), 0, 0);
880 layout_cas8->addWidget(_outHost_8_LineEdit, 0, 1, 1, 3);
881 layout_cas8->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
882 layout_cas8->addWidget(_outPort_8_LineEdit, 0, 5, 1, 10);
883 layout_cas8->addWidget(new QLabel("Mountpoint"), 1, 0);
884 layout_cas8->addWidget(_mountpoint_8_LineEdit, 1, 1);
885 layout_cas8->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
886 layout_cas8->addWidget(_password_8_LineEdit, 1, 3);
887 layout_cas8->addWidget(new QLabel(" "), 1, 4);
888 layout_cas8->addWidget(new QLabel(" "), 1, 5);
889 layout_cas8->addWidget(new QLabel("System"), 2, 0);
890 layout_cas8->addWidget(_refSys_8_ComboBox, 2, 1);
891 layout_cas8->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
892 layout_cas8->addWidget(_outFile_8_LineEdit, 2, 3, 1, 30);
893 layout_cas8->addWidget(new QLabel("Center of Mass"), 3, 0);
894 layout_cas8->addWidget(_CoM_8_CheckBox, 3, 1);
895 layout_cas8->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
896
897 tab_cas8->setLayout(layout_cas8);
898
899 connect(_refSys_8_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
900 this, SLOT(customTrafo(const QString)));
901
902 connect(_outHost_8_LineEdit, SIGNAL(textChanged(const QString &)),
903 this, SLOT(slotBnsTextChanged()));
904
905 // Broadcast Corrections IX Tab
906 // ----------------------------
907 QWidget* tab_cas9 = new QWidget();
908 tabs->addTab(tab_cas9, "BC IX");
909
910 QGridLayout* layout_cas9 = new QGridLayout;
911
912 layout_cas9->setColumnMinimumWidth(0, 9*ww);
913 _outPort_9_LineEdit->setMaximumWidth(9*ww);
914 _password_9_LineEdit->setMaximumWidth(9*ww);
915 _mountpoint_9_LineEdit->setMaximumWidth(12*ww);
916 _refSys_9_ComboBox->setMaximumWidth(12*ww);
917
918 layout_cas9->addWidget(new QLabel("Host"), 0, 0);
919 layout_cas9->addWidget(_outHost_9_LineEdit, 0, 1, 1, 3);
920 layout_cas9->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
921 layout_cas9->addWidget(_outPort_9_LineEdit, 0, 5, 1, 10);
922 layout_cas9->addWidget(new QLabel("Mountpoint"), 1, 0);
923 layout_cas9->addWidget(_mountpoint_9_LineEdit, 1, 1);
924 layout_cas9->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
925 layout_cas9->addWidget(_password_9_LineEdit, 1, 3);
926 layout_cas9->addWidget(new QLabel(" "), 1, 4);
927 layout_cas9->addWidget(new QLabel(" "), 1, 5);
928 layout_cas9->addWidget(new QLabel("System"), 2, 0);
929 layout_cas9->addWidget(_refSys_9_ComboBox, 2, 1);
930 layout_cas9->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
931 layout_cas9->addWidget(_outFile_9_LineEdit, 2, 3, 1, 30);
932 layout_cas9->addWidget(new QLabel("Center of Mass"), 3, 0);
933 layout_cas9->addWidget(_CoM_9_CheckBox, 3, 1);
934 layout_cas9->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
935
936 tab_cas9->setLayout(layout_cas9);
937
938 connect(_refSys_9_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
939 this, SLOT(customTrafo(const QString)));
940
941 connect(_outHost_9_LineEdit, SIGNAL(textChanged(const QString &)),
942 this, SLOT(slotBnsTextChanged()));
943
944 // Broadcast Corrections X Tab
945 // ---------------------------
946 QWidget* tab_cas10 = new QWidget();
947 tabs->addTab(tab_cas10, "BC X");
948
949 QGridLayout* layout_cas10 = new QGridLayout;
950
951 layout_cas10->setColumnMinimumWidth(0, 9*ww);
952 _outPort_10_LineEdit->setMaximumWidth(9*ww);
953 _password_10_LineEdit->setMaximumWidth(9*ww);
954 _mountpoint_10_LineEdit->setMaximumWidth(12*ww);
955 _refSys_10_ComboBox->setMaximumWidth(12*ww);
956
957 layout_cas10->addWidget(new QLabel("Host"), 0, 0);
958 layout_cas10->addWidget(_outHost_10_LineEdit, 0, 1, 1, 3);
959 layout_cas10->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
960 layout_cas10->addWidget(_outPort_10_LineEdit, 0, 5, 1, 10);
961 layout_cas10->addWidget(new QLabel("Mountpoint"), 1, 0);
962 layout_cas10->addWidget(_mountpoint_10_LineEdit, 1, 1);
963 layout_cas10->addWidget(new QLabel("Password"), 1, 2, Qt::AlignRight);
964 layout_cas10->addWidget(_password_10_LineEdit, 1, 3);
965 layout_cas10->addWidget(new QLabel(" "), 1, 4);
966 layout_cas10->addWidget(new QLabel(" "), 1, 5);
967 layout_cas10->addWidget(new QLabel("System"), 2, 0);
968 layout_cas10->addWidget(_refSys_10_ComboBox, 2, 1);
969 layout_cas10->addWidget(new QLabel(" Save (full path)"), 2, 2, Qt::AlignRight);
970 layout_cas10->addWidget(_outFile_10_LineEdit, 2, 3, 1, 30);
971 layout_cas10->addWidget(new QLabel("Center of Mass"), 3, 0);
972 layout_cas10->addWidget(_CoM_10_CheckBox, 3, 1);
973 layout_cas10->addWidget(new QLabel("Produce broadcast ephemeris corrections, upload to caster, reference system, local storage."), 4, 0, 1, 50);
974
975 tab_cas10->setLayout(layout_cas10);
976
977 connect(_refSys_10_ComboBox, SIGNAL(currentIndexChanged(const QString &)),
978 this, SLOT(customTrafo(const QString)));
979
980 connect(_outHost_10_LineEdit, SIGNAL(textChanged(const QString &)),
981 this, SLOT(slotBnsTextChanged()));
982
983 // Broadcast Ephemerides
984 // ---------------------
985 QWidget* tab_casEph = new QWidget();
986 tabs->addTab(tab_casEph, "Broadcast Ephemeris");
987
988 QGridLayout* layout_casEph = new QGridLayout;
989
990 layout_casEph->setColumnMinimumWidth(0, 9*ww);
991 _outPort_Eph_LineEdit->setMaximumWidth(9*ww);
992 _password_Eph_LineEdit->setMaximumWidth(9*ww);
993 _mountpoint_Eph_LineEdit->setMaximumWidth(12*ww);
994
995 layout_casEph->addWidget(new QLabel("Host"), 0, 0);
996 layout_casEph->addWidget(_outHost_Eph_LineEdit, 0, 1, 1, 3);
997 layout_casEph->addWidget(new QLabel(" Port"), 0, 4, Qt::AlignRight);
998 layout_casEph->addWidget(_outPort_Eph_LineEdit, 0, 5, 1, 10);
999 layout_casEph->addWidget(new QLabel("Mountpoint "), 1, 0);
1000 layout_casEph->addWidget(_mountpoint_Eph_LineEdit, 1, 1);
1001 layout_casEph->addWidget(new QLabel(" Password"), 1, 2, Qt::AlignRight);
1002 layout_casEph->addWidget(_password_Eph_LineEdit, 1, 3);
1003 layout_casEph->addWidget(new QLabel("Sampling"), 2, 0);
1004 layout_casEph->addWidget(_samplEphSpinBox, 2, 1);
1005 layout_casEph->addWidget(new QLabel("Upload concatenated RTCMv3 Broadcast Ephemeris to caster."), 3, 0, 1, 50);
1006
1007 tab_casEph->setLayout(layout_casEph);
1008
1009 connect(_outHost_Eph_LineEdit, SIGNAL(textChanged(const QString &)),
1010 this, SLOT(slotBnsTextChanged()));
1011
1012 // RINEX Clocks Tab
1013 // ----------------
1014 QWidget* tab_rin = new QWidget();
1015 tabs->addTab(tab_rin, "RINEX Clocks ");
1016
1017 QGridLayout* layout_rin = new QGridLayout;
1018
1019 layout_rin->setColumnMinimumWidth(0, 9*ww);
1020 _rnxIntrComboBox->setMaximumWidth(9*ww);
1021
1022 layout_rin->addWidget(new QLabel("Directory"), 0, 0);
1023 layout_rin->addWidget(_rnxPathLineEdit, 0, 1, 1, 27);
1024 layout_rin->addWidget(new QLabel("Interval"), 1, 0);
1025 layout_rin->addWidget(_rnxIntrComboBox, 1, 1);
1026 layout_rin->addWidget(new QLabel("Sampling"), 2, 0);
1027 layout_rin->addWidget(_rnxSamplSpinBox, 2, 1);
1028 layout_rin->addWidget(new QLabel("Save clock corrections in Clock RINEX file format."), 3, 0, 1, 50, Qt::AlignLeft);
1029 layout_rin->addWidget(new QLabel(" "), 3, 0);
1030
1031 tab_rin->setLayout(layout_rin);
1032
1033 connect(_rnxPathLineEdit, SIGNAL(textChanged(const QString &)),
1034 this, SLOT(slotBnsTextChanged()));
1035
1036 // SP3 Orbits Tab
1037 // --------------
1038 QWidget* tab_sp3 = new QWidget();
1039 tabs->addTab(tab_sp3, "SP3 Orbits");
1040
1041 QGridLayout* layout_sp3 = new QGridLayout;
1042
1043 layout_sp3->setColumnMinimumWidth(0, 9*ww);
1044 _sp3IntrComboBox->setMaximumWidth(9*ww);
1045
1046 layout_sp3->addWidget(new QLabel("Directory"), 0, 0);
1047 layout_sp3->addWidget(_sp3PathLineEdit, 0, 1, 1, 27);
1048 layout_sp3->addWidget(new QLabel("Interval"), 1, 0);
1049 layout_sp3->addWidget(_sp3IntrComboBox, 1, 1);
1050 layout_sp3->addWidget(new QLabel("Sampling"), 2, 0);
1051 layout_sp3->addWidget(_sp3SamplSpinBox, 2, 1);
1052 layout_sp3->addWidget(new QLabel("Save orbit corrections in SP3 file format."), 3, 0, 1, 50, Qt::AlignLeft);
1053 layout_sp3->addWidget(new QLabel(" "), 3, 0);
1054
1055 tab_sp3->setLayout(layout_sp3);
1056
1057 connect(_sp3PathLineEdit, SIGNAL(textChanged(const QString &)),
1058 this, SLOT(slotBnsTextChanged()));
1059
1060 tabs->setCurrentIndex(settings.value("startTab").toInt());
1061
1062 // Log
1063 // ---
1064 _log = new QTextBrowser();
1065 _log->setReadOnly(true);
1066 _log->setWhatsThis(tr("Records of BNS's activities are shown in the Log section."));
1067
1068 // Status
1069 // ------
1070 _status = new QGroupBox(tr("Status"));
1071 QGridLayout* layout_status = new QGridLayout;
1072
1073 _statusLbl[0] = new QLabel("0 byte(s)"); _statusCnt[0] = 0;
1074 _statusLbl[1] = new QLabel("0 byte(s)"); _statusCnt[1] = 0;
1075 _statusLbl[2] = new QLabel("0 byte(s)"); _statusCnt[2] = 0;
1076 _statusLbl[3] = new QLabel("0 byte(s)"); _statusCnt[3] = 0;
1077 _statusLbl[4] = new QLabel("0 byte(s)"); _statusCnt[4] = 0;
1078 _statusLbl[5] = new QLabel("0 byte(s)"); _statusCnt[5] = 0;
1079 _statusLbl[6] = new QLabel("0 byte(s)"); _statusCnt[6] = 0;
1080 _statusLbl[7] = new QLabel("0 byte(s)"); _statusCnt[7] = 0;
1081 _statusLbl[8] = new QLabel("0 byte(s)"); _statusCnt[8] = 0;
1082 _statusLbl[9] = new QLabel("0 byte(s)"); _statusCnt[9] = 0;
1083 _statusLbl[10] = new QLabel("0 byte(s)"); _statusCnt[10] = 0;
1084 _statusLbl[11] = new QLabel("0 byte(s)"); _statusCnt[11] = 0;
1085 _statusLbl[12] = new QLabel("0 byte(s)"); _statusCnt[12] = 0;
1086
1087 _statusLbl[13] = new QLabel("RINEX Ephemeris:");
1088 _statusLbl[14] = new QLabel("Clocks & Orbits:");
1089 _statusLbl[15] = new QLabel("Broadcast Corrections I:");
1090 _statusLbl[16] = new QLabel("Broadcast Corrections II:");
1091 _statusLbl[17] = new QLabel("Broadcast Corrections III:");
1092 _statusLbl[18] = new QLabel("Broadcast Corrections IV:");
1093 _statusLbl[19] = new QLabel("Broadcast Corrections V:");
1094 _statusLbl[20] = new QLabel("Broadcast Corrections VI:");
1095 _statusLbl[21] = new QLabel("Broadcast Corrections VII:");
1096 _statusLbl[22] = new QLabel("Broadcast Corrections VIII:");
1097 _statusLbl[23] = new QLabel("Broadcast Corrections IX:");
1098 _statusLbl[24] = new QLabel("Broadcast Corrections X:");
1099 _statusLbl[25] = new QLabel("Broadcast Ephemeris:");
1100
1101 _statusLbl[0]->setWhatsThis(tr("Status of incoming broadcast ephemeris."));
1102 _statusLbl[1]->setWhatsThis(tr("Status of incoming stream of clocks and orbits."));
1103 _statusLbl[2]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster I."));
1104 _statusLbl[3]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster II."));
1105 _statusLbl[4]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster III."));
1106 _statusLbl[5]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IV."));
1107 _statusLbl[6]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster V."));
1108 _statusLbl[7]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VI."));
1109 _statusLbl[8]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VII."));
1110 _statusLbl[9]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VIII."));
1111 _statusLbl[10]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IX."));
1112 _statusLbl[11]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster X."));
1113 _statusLbl[12]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
1114
1115 _statusLbl[13]->setWhatsThis(tr("Status of incoming broadcast ephemeris."));
1116 _statusLbl[14]->setWhatsThis(tr("Status of incoming stream of clocks and orbits I."));
1117 _statusLbl[15]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster I."));
1118 _statusLbl[16]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster II."));
1119 _statusLbl[17]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster III."));
1120 _statusLbl[18]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IV."));
1121 _statusLbl[19]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster V."));
1122 _statusLbl[20]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VI."));
1123 _statusLbl[21]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VII."));
1124 _statusLbl[22]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster VIII."));
1125 _statusLbl[23]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster IX."));
1126 _statusLbl[24]->setWhatsThis(tr("Status of outgoing corrections stream to NTRIP broadcaster X."));
1127 _statusLbl[25]->setWhatsThis(tr("Status of outgoing Broadcast Ephemeris to NTRIP broadcaster"));
1128
1129 layout_status->addWidget(_statusLbl[13], 0, 0);
1130 layout_status->addWidget(_statusLbl[0], 0, 1);
1131 layout_status->addWidget(_statusLbl[14], 1, 0);
1132 layout_status->addWidget(_statusLbl[1], 1, 1);
1133 layout_status->addWidget(_statusLbl[25], 2, 0);
1134 layout_status->addWidget(_statusLbl[12], 2, 1);
1135
1136 layout_status->addWidget(_statusLbl[15], 0, 2);
1137 layout_status->addWidget(_statusLbl[2], 0, 3);
1138 layout_status->addWidget(_statusLbl[16], 1, 2);
1139 layout_status->addWidget(_statusLbl[3], 1, 3);
1140 layout_status->addWidget(_statusLbl[17], 2, 2);
1141 layout_status->addWidget(_statusLbl[4], 2, 3);
1142 layout_status->addWidget(_statusLbl[18], 3, 2);
1143 layout_status->addWidget(_statusLbl[5], 3, 3);
1144 layout_status->addWidget(_statusLbl[19], 4, 2);
1145 layout_status->addWidget(_statusLbl[6], 4, 3);
1146 layout_status->addWidget(_statusLbl[20], 5, 2);
1147 layout_status->addWidget(_statusLbl[7], 5, 3);
1148 layout_status->addWidget(_statusLbl[21], 6, 2);
1149 layout_status->addWidget(_statusLbl[8], 6, 3);
1150 layout_status->addWidget(_statusLbl[22], 7, 2);
1151 layout_status->addWidget(_statusLbl[9], 7, 3);
1152 layout_status->addWidget(_statusLbl[23], 8, 2);
1153 layout_status->addWidget(_statusLbl[10], 8, 3);
1154 layout_status->addWidget(_statusLbl[24], 9, 2);
1155 layout_status->addWidget(_statusLbl[11], 9, 3);
1156
1157 _status->setLayout(layout_status);
1158
1159 // Main Layout
1160 // -----------
1161 QVBoxLayout* mainLayout = new QVBoxLayout;
1162 mainLayout->addWidget(tabs);
1163 mainLayout->addWidget(_log);
1164 mainLayout->addWidget(_status);
1165
1166 _canvas->setLayout(mainLayout);
1167
1168 // Enable/Disable all Widgets
1169 // --------------------------
1170 slotBnsTextChanged();
1171
1172 // Auto start
1173 // ----------
1174 if ( Qt::CheckState(settings.value("autoStart").toInt()) == Qt::Checked) {
1175 slotStart();
1176 }
1177
1178}
1179
1180// Destructor
1181////////////////////////////////////////////////////////////////////////////
1182bnsWindow::~bnsWindow() {
1183}
1184
1185// Close Application gracefully
1186////////////////////////////////////////////////////////////////////////////
1187void bnsWindow::closeEvent(QCloseEvent* event) {
1188
1189int iRet = QMessageBox::question(this, "Close", "Save Options?",
1190 QMessageBox::Yes, QMessageBox::No,
1191 QMessageBox::Cancel);
1192
1193 if (iRet == QMessageBox::Cancel) {
1194 event->ignore();
1195 return;
1196 }
1197 else if (iRet == QMessageBox::Yes) {
1198 slotSaveOptions();
1199 }
1200
1201 QMainWindow::closeEvent(event);
1202}
1203
1204// About Message
1205////////////////////////////////////////////////////////////////////////////
1206void bnsWindow::slotAbout() {
1207 new bnsAboutDlg(0);
1208}
1209
1210// Flowchart
1211////////////////////////////////////////////////////////////////////////////
1212void bnsWindow::slotFlowchart() {
1213 new bnsFlowchartDlg(0);
1214}
1215
1216// Help Window
1217////////////////////////////////////////////////////////////////////////////
1218void bnsWindow::slotHelp() {
1219 QUrl url;
1220 url.setPath(":bnshelp.html");
1221 new bnsHlpDlg(0, url);
1222}
1223
1224// Select Fonts
1225////////////////////////////////////////////////////////////////////////////
1226void bnsWindow::slotFontSel() {
1227 bool ok;
1228 QFont newFont = QFontDialog::getFont(&ok, this->font(), this);
1229 if (ok) {
1230 bnsSettings settings;
1231 settings.setValue("font", newFont.toString());
1232 QApplication::setFont(newFont);
1233 int ww = QFontMetrics(newFont).width('w');
1234 setMinimumSize(77*ww, 65*ww);
1235 }
1236}
1237
1238// Whats This Help
1239////////////////////////////////////////////////////////////////////////////
1240void bnsWindow::slotWhatsThis() {
1241QWhatsThis::enterWhatsThisMode();
1242}
1243
1244// Create Menus
1245////////////////////////////////////////////////////////////////////////////
1246void bnsWindow::CreateMenu() {
1247 _menuFile = menuBar()->addMenu(tr("&File"));
1248 _menuFile->addAction(_actFontSel);
1249 _menuFile->addSeparator();
1250 _menuFile->addAction(_actSaveOpt);
1251 _menuFile->addSeparator();
1252 _menuFile->addAction(_actQuit);
1253
1254 _menuHlp = menuBar()->addMenu(tr("&Help"));
1255 _menuHlp->addAction(_actHelp);
1256 _menuHlp->addAction(_actFlowchart);
1257 _menuHlp->addAction(_actAbout);
1258}
1259
1260// Tool (Command) Bar
1261////////////////////////////////////////////////////////////////////////////
1262void bnsWindow::AddToolbar() {
1263 QToolBar* toolBar = new QToolBar;
1264 addToolBar(Qt::BottomToolBarArea, toolBar);
1265 toolBar->setMovable(false);
1266 toolBar->addAction(_actStart);
1267 toolBar->addAction(_actStop);
1268 toolBar->addWidget(new QLabel(" "));
1269 toolBar->addAction(_actWhatsThis);
1270}
1271
1272// Save Options
1273////////////////////////////////////////////////////////////////////////////
1274void bnsWindow::slotSaveOptions() {
1275 bnsSettings settings;
1276 settings.setValue("proxyHost", _proxyHostLineEdit->text());
1277 settings.setValue("proxyPort", _proxyPortLineEdit->text());
1278
1279 settings.setValue("logFile", _logFileLineEdit->text());
1280 settings.setValue("fileAppend", _fileAppendCheckBox->checkState());
1281 settings.setValue("autoStart", _autoStartCheckBox->checkState());
1282
1283 settings.setValue("ephHost", _ephHostLineEdit->text());
1284 settings.setValue("ephPort", _ephPortLineEdit->text());
1285 settings.setValue("ephEcho", _ephEchoLineEdit->text());
1286
1287 settings.setValue("clkPort", _clkPortLineEdit->text());
1288 settings.setValue("inpEcho", _inpEchoLineEdit->text());
1289
1290 settings.setValue("outHost1", _outHost_1_LineEdit->text());
1291 settings.setValue("outPort1", _outPort_1_LineEdit->text());
1292 settings.setValue("mountpoint_1",_mountpoint_1_LineEdit->text());
1293 settings.setValue("password1", _password_1_LineEdit->text());
1294 settings.setValue("refSys_1", _refSys_1_ComboBox->currentText());
1295 settings.setValue("outFile_1", _outFile_1_LineEdit->text());
1296 settings.setValue("CoM_1", _CoM_1_CheckBox->checkState());
1297
1298 settings.setValue("outHost2", _outHost_2_LineEdit->text());
1299 settings.setValue("outPort2", _outPort_2_LineEdit->text());
1300 settings.setValue("mountpoint_2",_mountpoint_2_LineEdit->text());
1301 settings.setValue("password2", _password_2_LineEdit->text());
1302 settings.setValue("refSys_2", _refSys_2_ComboBox->currentText());
1303 settings.setValue("outFile_2", _outFile_2_LineEdit->text());
1304 settings.setValue("CoM_2", _CoM_2_CheckBox->checkState());
1305
1306 settings.setValue("outHost3", _outHost_3_LineEdit->text());
1307 settings.setValue("outPort3", _outPort_3_LineEdit->text());
1308 settings.setValue("mountpoint_3",_mountpoint_3_LineEdit->text());
1309 settings.setValue("password3", _password_3_LineEdit->text());
1310 settings.setValue("refSys_3", _refSys_3_ComboBox->currentText());
1311 settings.setValue("outFile_3", _outFile_3_LineEdit->text());
1312 settings.setValue("CoM_3", _CoM_3_CheckBox->checkState());
1313
1314 settings.setValue("outHost4", _outHost_4_LineEdit->text());
1315 settings.setValue("outPort4", _outPort_4_LineEdit->text());
1316 settings.setValue("mountpoint_4",_mountpoint_4_LineEdit->text());
1317 settings.setValue("password4", _password_4_LineEdit->text());
1318 settings.setValue("refSys_4", _refSys_4_ComboBox->currentText());
1319 settings.setValue("outFile_4", _outFile_4_LineEdit->text());
1320 settings.setValue("CoM_4", _CoM_4_CheckBox->checkState());
1321
1322 settings.setValue("outHost5", _outHost_5_LineEdit->text());
1323 settings.setValue("outPort5", _outPort_5_LineEdit->text());
1324 settings.setValue("mountpoint_5",_mountpoint_5_LineEdit->text());
1325 settings.setValue("password5", _password_5_LineEdit->text());
1326 settings.setValue("refSys_5", _refSys_5_ComboBox->currentText());
1327 settings.setValue("outFile_5", _outFile_5_LineEdit->text());
1328 settings.setValue("CoM_5", _CoM_5_CheckBox->checkState());
1329
1330 settings.setValue("outHost6", _outHost_6_LineEdit->text());
1331 settings.setValue("outPort6", _outPort_6_LineEdit->text());
1332 settings.setValue("mountpoint_6",_mountpoint_6_LineEdit->text());
1333 settings.setValue("password6", _password_6_LineEdit->text());
1334 settings.setValue("refSys_6", _refSys_6_ComboBox->currentText());
1335 settings.setValue("outFile_6", _outFile_6_LineEdit->text());
1336 settings.setValue("CoM_6", _CoM_6_CheckBox->checkState());
1337
1338 settings.setValue("outHost7", _outHost_7_LineEdit->text());
1339 settings.setValue("outPort7", _outPort_7_LineEdit->text());
1340 settings.setValue("mountpoint_7",_mountpoint_7_LineEdit->text());
1341 settings.setValue("password7", _password_7_LineEdit->text());
1342 settings.setValue("refSys_7", _refSys_7_ComboBox->currentText());
1343 settings.setValue("outFile_7", _outFile_7_LineEdit->text());
1344
1345 settings.setValue("outHost8", _outHost_8_LineEdit->text());
1346 settings.setValue("outPort8", _outPort_8_LineEdit->text());
1347 settings.setValue("mountpoint_8",_mountpoint_8_LineEdit->text());
1348 settings.setValue("password8", _password_8_LineEdit->text());
1349 settings.setValue("refSys_8", _refSys_8_ComboBox->currentText());
1350 settings.setValue("outFile_8", _outFile_8_LineEdit->text());
1351
1352 settings.setValue("outHost9", _outHost_9_LineEdit->text());
1353 settings.setValue("outPort9", _outPort_9_LineEdit->text());
1354 settings.setValue("mountpoint_9",_mountpoint_9_LineEdit->text());
1355 settings.setValue("password9", _password_9_LineEdit->text());
1356 settings.setValue("refSys_9", _refSys_9_ComboBox->currentText());
1357 settings.setValue("outFile_9", _outFile_9_LineEdit->text());
1358
1359 settings.setValue("outHost10", _outHost_10_LineEdit->text());
1360 settings.setValue("outPort10", _outPort_10_LineEdit->text());
1361 settings.setValue("mountpoint_10",_mountpoint_10_LineEdit->text());
1362 settings.setValue("password10", _password_10_LineEdit->text());
1363 settings.setValue("refSys_10", _refSys_10_ComboBox->currentText());
1364 settings.setValue("outFile_10", _outFile_10_LineEdit->text());
1365
1366 settings.setValue("outHostEph", _outHost_Eph_LineEdit->text());
1367 settings.setValue("outPortEph", _outPort_Eph_LineEdit->text());
1368 settings.setValue("mountpoint_Eph",_mountpoint_Eph_LineEdit->text());
1369 settings.setValue("passwordEph", _password_Eph_LineEdit->text());
1370 settings.setValue("samplEph", _samplEphSpinBox->value());
1371
1372 settings.setValue("rnxPath", _rnxPathLineEdit->text());
1373 settings.setValue("rnxIntr", _rnxIntrComboBox->currentText());
1374 settings.setValue("rnxSampl", _rnxSamplSpinBox->value());
1375
1376 settings.setValue("sp3Path", _sp3PathLineEdit->text());
1377 settings.setValue("sp3Intr", _sp3IntrComboBox->currentText());
1378 settings.setValue("sp3Sampl", _sp3SamplSpinBox->value());
1379
1380 settings.setValue("startTab", tabs->currentIndex());
1381}
1382
1383// Display Program Messages
1384////////////////////////////////////////////////////////////////////////////
1385void bnsWindow::slotMessage(const QByteArray msg) {
1386
1387 const int maxBufferSize = 10000;
1388
1389 QString txt = _log->toPlainText() + "\n" +
1390 QDateTime::currentDateTime().toUTC().toString("yy-MM-dd hh:mm:ss ") + msg;
1391 _log->clear();
1392 _log->append(txt.right(maxBufferSize));
1393}
1394
1395// Delete bns
1396////////////////////////////////////////////////////////////////////////////
1397void bnsWindow::deleteBns() {
1398 _actStart->setEnabled(true);
1399 _actStop->setEnabled(false);
1400 _bns->terminate();
1401 _bns->wait(100);
1402 delete _bns;
1403 _bns = 0;
1404}
1405
1406// Error in bns
1407////////////////////////////////////////////////////////////////////////////
1408void bnsWindow::slotError(const QByteArray msg) {
1409 slotMessage(msg);
1410 deleteBns();
1411}
1412
1413// Stop
1414////////////////////////////////////////////////////////////////////////////
1415void bnsWindow::slotStop() {
1416 int iRet = QMessageBox::question(this, "Stop", "Do you want to stop?",
1417 QMessageBox::Yes, QMessageBox::No,
1418 QMessageBox::NoButton);
1419 if (iRet == QMessageBox::Yes) {
1420 deleteBns();
1421 }
1422}
1423
1424// Start
1425////////////////////////////////////////////////////////////////////////////
1426void bnsWindow::slotStart() {
1427 slotSaveOptions();
1428
1429 _actStart->setEnabled(false);
1430 _actStop->setEnabled(true);
1431
1432 _bns = new t_bns(0);
1433
1434 connect(_bns, SIGNAL(newMessage(QByteArray)),
1435 this, SLOT(slotMessage(const QByteArray)));
1436
1437 connect(_bns, SIGNAL(error(QByteArray)),
1438 this, SLOT(slotError(const QByteArray)));
1439
1440 connect(_bns, SIGNAL(newEphBytes(int)), this, SLOT(slotEphBytes(int)));
1441 connect(_bns, SIGNAL(newClkBytes(int)), this, SLOT(slotClkBytes(int)));
1442 connect(_bns, SIGNAL(newOutBytes1(int)), this, SLOT(slotOutBytes1(int)));
1443 connect(_bns, SIGNAL(newOutBytes2(int)), this, SLOT(slotOutBytes2(int)));
1444 connect(_bns, SIGNAL(newOutBytes3(int)), this, SLOT(slotOutBytes3(int)));
1445 connect(_bns, SIGNAL(newOutBytes4(int)), this, SLOT(slotOutBytes4(int)));
1446 connect(_bns, SIGNAL(newOutBytes5(int)), this, SLOT(slotOutBytes5(int)));
1447 connect(_bns, SIGNAL(newOutBytes6(int)), this, SLOT(slotOutBytes6(int)));
1448 connect(_bns, SIGNAL(newOutEphBytes(int)), this, SLOT(slotOutEphBytes(int)));
1449
1450 _bns->start();
1451}
1452
1453// Input and output bytes statistics
1454////////////////////////////////////////////////////////////////////////////
1455void bnsWindow::slotEphBytes(int nBytes) {
1456 updateStatus(0, nBytes);
1457}
1458void bnsWindow::slotClkBytes(int nBytes) {
1459 updateStatus(1, nBytes);
1460}
1461void bnsWindow::slotOutBytes1(int nBytes) {
1462 updateStatus(2, nBytes);
1463}
1464void bnsWindow::slotOutBytes2(int nBytes) {
1465 updateStatus(3, nBytes);
1466}
1467void bnsWindow::slotOutBytes3(int nBytes) {
1468 updateStatus(4, nBytes);
1469}
1470void bnsWindow::slotOutBytes4(int nBytes) {
1471 updateStatus(5, nBytes);
1472}
1473void bnsWindow::slotOutBytes5(int nBytes) {
1474 updateStatus(6, nBytes);
1475}
1476void bnsWindow::slotOutBytes6(int nBytes) {
1477 updateStatus(7, nBytes);
1478}
1479void bnsWindow::slotOutEphBytes(int nBytes) {
1480 updateStatus(8, nBytes);
1481}
1482
1483void bnsWindow::updateStatus(int ii, int nBytes) {
1484 QMutexLocker locker(&_mutex);
1485
1486 _statusCnt[ii] += nBytes;
1487
1488 if (_statusCnt[ii] < 1e3) {
1489 _statusLbl[ii]->setText(QString("%1 byte(s)").arg((int)_statusCnt[ii]));
1490 }
1491 else if (_statusCnt[ii] < 1e6) {
1492 _statusLbl[ii]->setText(QString("%1 kb").arg(_statusCnt[ii]/1.e3, 5));
1493 }
1494 else {
1495 _statusLbl[ii]->setText(QString("%1 Mb").arg(_statusCnt[ii]/1.e6, 5));
1496 }
1497}
1498
1499// Enable/Disable Widgets according to user input
1500////////////////////////////////////////////////////////////////////////////
1501void bnsWindow::slotBnsTextChanged(){
1502
1503 QPalette palette_white(QColor(255, 255, 255));
1504 QPalette palette_gray(QColor(230, 230, 230));
1505
1506 // Enable/disable Proxy Options
1507 // ----------------------------
1508 if (sender() == 0 || sender() == _proxyHostLineEdit) {
1509 if (!_proxyHostLineEdit->text().isEmpty()) {
1510 _proxyPortLineEdit->setStyleSheet("background-color: white");
1511 _proxyPortLineEdit->setEnabled(true);
1512 }
1513 else {
1514 _proxyPortLineEdit->setStyleSheet("background-color: lightGray");
1515 _proxyPortLineEdit->setEnabled(false);
1516 }
1517 }
1518
1519 // Enable/disable RINEX Ephemeris Options
1520 // --------------------------------------
1521 if (sender() == 0 || sender() == _ephHostLineEdit) {
1522 if (!_ephHostLineEdit->text().isEmpty()) {
1523 _ephPortLineEdit->setStyleSheet("background-color: white");
1524 _ephEchoLineEdit->setStyleSheet("background-color: white");
1525 _ephPortLineEdit->setEnabled(true);
1526 _ephEchoLineEdit->setEnabled(true);
1527 }
1528 else {
1529 _ephPortLineEdit->setStyleSheet("background-color: lightGray");
1530 _ephEchoLineEdit->setStyleSheet("background-color: lightGray");
1531 _ephPortLineEdit->setEnabled(false);
1532 _ephEchoLineEdit->setEnabled(false);
1533 }
1534 }
1535
1536 // Enable/disable Clocks & Orbits Options
1537 // --------------------------------------
1538 if (sender() == 0 || sender() == _clkPortLineEdit) {
1539 if (!_clkPortLineEdit->text().isEmpty()) {
1540 _inpEchoLineEdit->setStyleSheet("background-color: white");
1541 _inpEchoLineEdit->setEnabled(true);
1542 }
1543 else {
1544 _inpEchoLineEdit->setStyleSheet("background-color: lightGray");
1545 _inpEchoLineEdit->setEnabled(false);
1546 }
1547 }
1548
1549 // Enable/disable Broadcast Corrections I Options
1550 // -----------------------------------------------
1551 if (sender() == 0 || sender() == _outHost_1_LineEdit) {
1552 if (!_outHost_1_LineEdit->text().isEmpty()) {
1553 _outPort_1_LineEdit->setStyleSheet("background-color: white");
1554 _mountpoint_1_LineEdit->setStyleSheet("background-color: white");
1555 _password_1_LineEdit->setStyleSheet("background-color: white");
1556 _outFile_1_LineEdit->setStyleSheet("background-color: white");
1557 _refSys_1_ComboBox->setStyleSheet("background-color: white");
1558 _CoM_1_CheckBox->setPalette(palette_white);
1559 _outPort_1_LineEdit->setEnabled(true);
1560 _mountpoint_1_LineEdit->setEnabled(true);
1561 _password_1_LineEdit->setEnabled(true);
1562 _outFile_1_LineEdit->setEnabled(true);
1563 _refSys_1_ComboBox->setEnabled(true);
1564 _CoM_1_CheckBox->setEnabled(true);
1565 }
1566 else {
1567 _outPort_1_LineEdit->setStyleSheet("background-color: lightGray");
1568 _mountpoint_1_LineEdit->setStyleSheet("background-color: lightGray");
1569 _password_1_LineEdit->setStyleSheet("background-color: lightGray");
1570 _outFile_1_LineEdit->setStyleSheet("background-color: lightGray");
1571 _refSys_1_ComboBox->setStyleSheet("background-color: lightGray");
1572 _CoM_1_CheckBox->setPalette(palette_gray);
1573 _outPort_1_LineEdit->setEnabled(false);
1574 _mountpoint_1_LineEdit->setEnabled(false);
1575 _password_1_LineEdit->setEnabled(false);
1576 _outFile_1_LineEdit->setEnabled(false);
1577 _refSys_1_ComboBox->setEnabled(false);
1578 _CoM_1_CheckBox->setEnabled(false);
1579 }
1580 }
1581
1582 // Enable/disable Broadcast Corrections II Options
1583 // -----------------------------------------------
1584 if (sender() == 0 || sender() == _outHost_2_LineEdit) {
1585 if (!_outHost_2_LineEdit->text().isEmpty()) {
1586 _outPort_2_LineEdit->setStyleSheet("background-color: white");
1587 _mountpoint_2_LineEdit->setStyleSheet("background-color: white");
1588 _password_2_LineEdit->setStyleSheet("background-color: white");
1589 _outFile_2_LineEdit->setStyleSheet("background-color: white");
1590 _refSys_2_ComboBox->setStyleSheet("background-color: white");
1591 _CoM_2_CheckBox->setPalette(palette_white);
1592 _outPort_2_LineEdit->setEnabled(true);
1593 _mountpoint_2_LineEdit->setEnabled(true);
1594 _password_2_LineEdit->setEnabled(true);
1595 _outFile_2_LineEdit->setEnabled(true);
1596 _refSys_2_ComboBox->setEnabled(true);
1597 _CoM_2_CheckBox->setEnabled(true);
1598 }
1599 else {
1600 _outPort_2_LineEdit->setStyleSheet("background-color: lightGray");
1601 _mountpoint_2_LineEdit->setStyleSheet("background-color: lightGray");
1602 _password_2_LineEdit->setStyleSheet("background-color: lightGray");
1603 _outFile_2_LineEdit->setStyleSheet("background-color: lightGray");
1604 _refSys_2_ComboBox->setStyleSheet("background-color: lightGray");
1605 _CoM_2_CheckBox->setPalette(palette_gray);
1606 _outPort_2_LineEdit->setEnabled(false);
1607 _mountpoint_2_LineEdit->setEnabled(false);
1608 _password_2_LineEdit->setEnabled(false);
1609 _outFile_2_LineEdit->setEnabled(false);
1610 _refSys_2_ComboBox->setEnabled(false);
1611 _CoM_2_CheckBox->setEnabled(false);
1612 }
1613 }
1614
1615 // Enable/disable Broadcast Corrections III Options
1616 // -----------------------------------------------
1617 if (sender() == 0 || sender() == _outHost_3_LineEdit) {
1618 if (!_outHost_3_LineEdit->text().isEmpty()) {
1619 _outPort_3_LineEdit->setStyleSheet("background-color: white");
1620 _mountpoint_3_LineEdit->setStyleSheet("background-color: white");
1621 _password_3_LineEdit->setStyleSheet("background-color: white");
1622 _outFile_3_LineEdit->setStyleSheet("background-color: white");
1623 _refSys_3_ComboBox->setStyleSheet("background-color: white");
1624 _CoM_3_CheckBox->setPalette(palette_white);
1625 _outPort_3_LineEdit->setEnabled(true);
1626 _mountpoint_3_LineEdit->setEnabled(true);
1627 _password_3_LineEdit->setEnabled(true);
1628 _outFile_3_LineEdit->setEnabled(true);
1629 _refSys_3_ComboBox->setEnabled(true);
1630 _CoM_3_CheckBox->setEnabled(true);
1631 }
1632 else {
1633 _outPort_3_LineEdit->setStyleSheet("background-color: lightGray");
1634 _mountpoint_3_LineEdit->setStyleSheet("background-color: lightGray");
1635 _password_3_LineEdit->setStyleSheet("background-color: lightGray");
1636 _outFile_3_LineEdit->setStyleSheet("background-color: lightGray");
1637 _refSys_3_ComboBox->setStyleSheet("background-color: lightGray");
1638 _CoM_3_CheckBox->setPalette(palette_gray);
1639 _outPort_3_LineEdit->setEnabled(false);
1640 _mountpoint_3_LineEdit->setEnabled(false);
1641 _password_3_LineEdit->setEnabled(false);
1642 _outFile_3_LineEdit->setEnabled(false);
1643 _refSys_3_ComboBox->setEnabled(false);
1644 _CoM_3_CheckBox->setEnabled(false);
1645 }
1646 }
1647
1648 // Enable/disable Broadcast Corrections IV Options
1649 // -----------------------------------------------
1650 if (sender() == 0 || sender() == _outHost_4_LineEdit) {
1651 if (!_outHost_4_LineEdit->text().isEmpty()) {
1652 _outPort_4_LineEdit->setStyleSheet("background-color: white");
1653 _mountpoint_4_LineEdit->setStyleSheet("background-color: white");
1654 _password_4_LineEdit->setStyleSheet("background-color: white");
1655 _outFile_4_LineEdit->setStyleSheet("background-color: white");
1656 _refSys_4_ComboBox->setStyleSheet("background-color: white");
1657 _CoM_4_CheckBox->setPalette(palette_white);
1658 _outPort_4_LineEdit->setEnabled(true);
1659 _mountpoint_4_LineEdit->setEnabled(true);
1660 _password_4_LineEdit->setEnabled(true);
1661 _outFile_4_LineEdit->setEnabled(true);
1662 _refSys_4_ComboBox->setEnabled(true);
1663 _CoM_4_CheckBox->setEnabled(true);
1664 }
1665 else {
1666 _outPort_4_LineEdit->setStyleSheet("background-color: lightGray");
1667 _mountpoint_4_LineEdit->setStyleSheet("background-color: lightGray");
1668 _password_4_LineEdit->setStyleSheet("background-color: lightGray");
1669 _outFile_4_LineEdit->setStyleSheet("background-color: lightGray");
1670 _refSys_4_ComboBox->setStyleSheet("background-color: lightGray");
1671 _CoM_4_CheckBox->setPalette(palette_gray);
1672 _outPort_4_LineEdit->setEnabled(false);
1673 _mountpoint_4_LineEdit->setEnabled(false);
1674 _password_4_LineEdit->setEnabled(false);
1675 _outFile_4_LineEdit->setEnabled(false);
1676 _refSys_4_ComboBox->setEnabled(false);
1677 _CoM_4_CheckBox->setEnabled(false);
1678 }
1679 }
1680
1681 // Enable/disable Broadcast Corrections V Options
1682 // ----------------------------------------------
1683 if (sender() == 0 || sender() == _outHost_5_LineEdit) {
1684 if (!_outHost_5_LineEdit->text().isEmpty()) {
1685 _outPort_5_LineEdit->setStyleSheet("background-color: white");
1686 _mountpoint_5_LineEdit->setStyleSheet("background-color: white");
1687 _password_5_LineEdit->setStyleSheet("background-color: white");
1688 _outFile_5_LineEdit->setStyleSheet("background-color: white");
1689 _refSys_5_ComboBox->setStyleSheet("background-color: white");
1690 _CoM_5_CheckBox->setPalette(palette_white);
1691 _outPort_5_LineEdit->setEnabled(true);
1692 _mountpoint_5_LineEdit->setEnabled(true);
1693 _password_5_LineEdit->setEnabled(true);
1694 _outFile_5_LineEdit->setEnabled(true);
1695 _refSys_5_ComboBox->setEnabled(true);
1696 _CoM_5_CheckBox->setEnabled(true);
1697 }
1698 else {
1699 _outPort_5_LineEdit->setStyleSheet("background-color: lightGray");
1700 _mountpoint_5_LineEdit->setStyleSheet("background-color: lightGray");
1701 _password_5_LineEdit->setStyleSheet("background-color: lightGray");
1702 _outFile_5_LineEdit->setStyleSheet("background-color: lightGray");
1703 _refSys_5_ComboBox->setStyleSheet("background-color: lightGray");
1704 _CoM_5_CheckBox->setPalette(palette_gray);
1705 _outPort_5_LineEdit->setEnabled(false);
1706 _mountpoint_5_LineEdit->setEnabled(false);
1707 _password_5_LineEdit->setEnabled(false);
1708 _outFile_5_LineEdit->setEnabled(false);
1709 _refSys_5_ComboBox->setEnabled(false);
1710 _CoM_5_CheckBox->setEnabled(false);
1711 }
1712 }
1713
1714 // Enable/disable Broadcast Corrections VI Options
1715 // -----------------------------------------------
1716 if (sender() == 0 || sender() == _outHost_6_LineEdit) {
1717 if (!_outHost_6_LineEdit->text().isEmpty()) {
1718 _outPort_6_LineEdit->setStyleSheet("background-color: white");
1719 _mountpoint_6_LineEdit->setStyleSheet("background-color: white");
1720 _password_6_LineEdit->setStyleSheet("background-color: white");
1721 _outFile_6_LineEdit->setStyleSheet("background-color: white");
1722 _refSys_6_ComboBox->setStyleSheet("background-color: white");
1723 _CoM_6_CheckBox->setPalette(palette_white);
1724 _outPort_6_LineEdit->setEnabled(true);
1725 _mountpoint_6_LineEdit->setEnabled(true);
1726 _password_6_LineEdit->setEnabled(true);
1727 _outFile_6_LineEdit->setEnabled(true);
1728 _refSys_6_ComboBox->setEnabled(true);
1729 _CoM_6_CheckBox->setEnabled(true);
1730 }
1731 else {
1732 _outPort_6_LineEdit->setStyleSheet("background-color: lightGray");
1733 _mountpoint_6_LineEdit->setStyleSheet("background-color: lightGray");
1734 _password_6_LineEdit->setStyleSheet("background-color: lightGray");
1735 _outFile_6_LineEdit->setStyleSheet("background-color: lightGray");
1736 _refSys_6_ComboBox->setStyleSheet("background-color: lightGray");
1737 _CoM_6_CheckBox->setPalette(palette_gray);
1738 _outPort_6_LineEdit->setEnabled(false);
1739 _mountpoint_6_LineEdit->setEnabled(false);
1740 _password_6_LineEdit->setEnabled(false);
1741 _outFile_6_LineEdit->setEnabled(false);
1742 _refSys_6_ComboBox->setEnabled(false);
1743 _CoM_6_CheckBox->setEnabled(false);
1744 }
1745 }
1746
1747 // Enable/disable Broadcast Corrections VII Options
1748 // ------------------------------------------------
1749 if (sender() == 0 || sender() == _outHost_7_LineEdit) {
1750 if (!_outHost_7_LineEdit->text().isEmpty()) {
1751 _outPort_7_LineEdit->setStyleSheet("background-color: white");
1752 _mountpoint_7_LineEdit->setStyleSheet("background-color: white");
1753 _password_7_LineEdit->setStyleSheet("background-color: white");
1754 _outFile_7_LineEdit->setStyleSheet("background-color: white");
1755 _refSys_7_ComboBox->setStyleSheet("background-color: white");
1756 _CoM_7_CheckBox->setPalette(palette_white);
1757 _outPort_7_LineEdit->setEnabled(true);
1758 _mountpoint_7_LineEdit->setEnabled(true);
1759 _password_7_LineEdit->setEnabled(true);
1760 _outFile_7_LineEdit->setEnabled(true);
1761 _refSys_7_ComboBox->setEnabled(true);
1762 _CoM_7_CheckBox->setEnabled(true);
1763 }
1764 else {
1765 _outPort_7_LineEdit->setStyleSheet("background-color: lightGray");
1766 _mountpoint_7_LineEdit->setStyleSheet("background-color: lightGray");
1767 _password_7_LineEdit->setStyleSheet("background-color: lightGray");
1768 _outFile_7_LineEdit->setStyleSheet("background-color: lightGray");
1769 _refSys_7_ComboBox->setStyleSheet("background-color: lightGray");
1770 _CoM_7_CheckBox->setPalette(palette_gray);
1771 _outPort_7_LineEdit->setEnabled(false);
1772 _mountpoint_7_LineEdit->setEnabled(false);
1773 _password_7_LineEdit->setEnabled(false);
1774 _outFile_7_LineEdit->setEnabled(false);
1775 _refSys_7_ComboBox->setEnabled(false);
1776 _CoM_7_CheckBox->setEnabled(false);
1777 }
1778 }
1779
1780 // Enable/disable Broadcast Corrections VIII Options
1781 // -------------------------------------------------
1782 if (sender() == 0 || sender() == _outHost_8_LineEdit) {
1783 if (!_outHost_8_LineEdit->text().isEmpty()) {
1784 _outPort_8_LineEdit->setStyleSheet("background-color: white");
1785 _mountpoint_8_LineEdit->setStyleSheet("background-color: white");
1786 _password_8_LineEdit->setStyleSheet("background-color: white");
1787 _outFile_8_LineEdit->setStyleSheet("background-color: white");
1788 _refSys_8_ComboBox->setStyleSheet("background-color: white");
1789 _CoM_8_CheckBox->setPalette(palette_white);
1790 _outPort_8_LineEdit->setEnabled(true);
1791 _mountpoint_8_LineEdit->setEnabled(true);
1792 _password_8_LineEdit->setEnabled(true);
1793 _outFile_8_LineEdit->setEnabled(true);
1794 _refSys_8_ComboBox->setEnabled(true);
1795 _CoM_8_CheckBox->setEnabled(true);
1796 }
1797 else {
1798 _outPort_8_LineEdit->setStyleSheet("background-color: lightGray");
1799 _mountpoint_8_LineEdit->setStyleSheet("background-color: lightGray");
1800 _password_8_LineEdit->setStyleSheet("background-color: lightGray");
1801 _outFile_8_LineEdit->setStyleSheet("background-color: lightGray");
1802 _refSys_8_ComboBox->setStyleSheet("background-color: lightGray");
1803 _CoM_8_CheckBox->setPalette(palette_gray);
1804 _outPort_8_LineEdit->setEnabled(false);
1805 _mountpoint_8_LineEdit->setEnabled(false);
1806 _password_8_LineEdit->setEnabled(false);
1807 _outFile_8_LineEdit->setEnabled(false);
1808 _refSys_8_ComboBox->setEnabled(false);
1809 _CoM_8_CheckBox->setEnabled(false);
1810 }
1811 }
1812
1813 // Enable/disable Broadcast Corrections IX Options
1814 // -----------------------------------------------
1815 if (sender() == 0 || sender() == _outHost_9_LineEdit) {
1816 if (!_outHost_9_LineEdit->text().isEmpty()) {
1817 _outPort_9_LineEdit->setStyleSheet("background-color: white");
1818 _mountpoint_9_LineEdit->setStyleSheet("background-color: white");
1819 _password_9_LineEdit->setStyleSheet("background-color: white");
1820 _outFile_9_LineEdit->setStyleSheet("background-color: white");
1821 _refSys_9_ComboBox->setStyleSheet("background-color: white");
1822 _CoM_9_CheckBox->setPalette(palette_white);
1823 _outPort_9_LineEdit->setEnabled(true);
1824 _mountpoint_9_LineEdit->setEnabled(true);
1825 _password_9_LineEdit->setEnabled(true);
1826 _outFile_9_LineEdit->setEnabled(true);
1827 _refSys_9_ComboBox->setEnabled(true);
1828 _CoM_9_CheckBox->setEnabled(true);
1829 }
1830 else {
1831 _outPort_9_LineEdit->setStyleSheet("background-color: lightGray");
1832 _mountpoint_9_LineEdit->setStyleSheet("background-color: lightGray");
1833 _password_9_LineEdit->setStyleSheet("background-color: lightGray");
1834 _outFile_9_LineEdit->setStyleSheet("background-color: lightGray");
1835 _refSys_9_ComboBox->setStyleSheet("background-color: lightGray");
1836 _CoM_9_CheckBox->setPalette(palette_gray);
1837 _outPort_9_LineEdit->setEnabled(false);
1838 _mountpoint_9_LineEdit->setEnabled(false);
1839 _password_9_LineEdit->setEnabled(false);
1840 _outFile_9_LineEdit->setEnabled(false);
1841 _refSys_9_ComboBox->setEnabled(false);
1842 _CoM_9_CheckBox->setEnabled(false);
1843 }
1844 }
1845
1846 // Enable/disable Broadcast Corrections X Options
1847 // ----------------------------------------------
1848 if (sender() == 0 || sender() == _outHost_10_LineEdit) {
1849 if (!_outHost_10_LineEdit->text().isEmpty()) {
1850 _outPort_10_LineEdit->setStyleSheet("background-color: white");
1851 _mountpoint_10_LineEdit->setStyleSheet("background-color: white");
1852 _password_10_LineEdit->setStyleSheet("background-color: white");
1853 _outFile_10_LineEdit->setStyleSheet("background-color: white");
1854 _refSys_10_ComboBox->setStyleSheet("background-color: white");
1855 _CoM_10_CheckBox->setPalette(palette_white);
1856 _outPort_10_LineEdit->setEnabled(true);
1857 _mountpoint_10_LineEdit->setEnabled(true);
1858 _password_10_LineEdit->setEnabled(true);
1859 _outFile_10_LineEdit->setEnabled(true);
1860 _refSys_10_ComboBox->setEnabled(true);
1861 _CoM_10_CheckBox->setEnabled(true);
1862 }
1863 else {
1864 _outPort_10_LineEdit->setStyleSheet("background-color: lightGray");
1865 _mountpoint_10_LineEdit->setStyleSheet("background-color: lightGray");
1866 _password_10_LineEdit->setStyleSheet("background-color: lightGray");
1867 _outFile_10_LineEdit->setStyleSheet("background-color: lightGray");
1868 _refSys_10_ComboBox->setStyleSheet("background-color: lightGray");
1869 _CoM_10_CheckBox->setPalette(palette_gray);
1870 _outPort_10_LineEdit->setEnabled(false);
1871 _mountpoint_10_LineEdit->setEnabled(false);
1872 _password_10_LineEdit->setEnabled(false);
1873 _outFile_10_LineEdit->setEnabled(false);
1874 _refSys_10_ComboBox->setEnabled(false);
1875 _CoM_10_CheckBox->setEnabled(false);
1876 }
1877 }
1878
1879 // Enable/disable Broadcast Ephemerides
1880 // ------------------------------------
1881 if (sender() == 0 || sender() == _outHost_Eph_LineEdit) {
1882 if (!_outHost_Eph_LineEdit->text().isEmpty()) {
1883 _outPort_Eph_LineEdit->setStyleSheet("background-color: white");
1884 _mountpoint_Eph_LineEdit->setStyleSheet("background-color: white");
1885 _password_Eph_LineEdit->setStyleSheet("background-color: white");
1886 _samplEphSpinBox->setStyleSheet("background-color: white");
1887 _outPort_Eph_LineEdit->setEnabled(true);
1888 _mountpoint_Eph_LineEdit->setEnabled(true);
1889 _password_Eph_LineEdit->setEnabled(true);
1890 _samplEphSpinBox->setEnabled(true);
1891 }
1892 else {
1893 _outPort_Eph_LineEdit->setStyleSheet("background-color: lightGray");
1894 _mountpoint_Eph_LineEdit->setStyleSheet("background-color: lightGray");
1895 _password_Eph_LineEdit->setStyleSheet("background-color: lightGray");
1896 _samplEphSpinBox->setStyleSheet("background-color: lightGray");
1897 _outPort_Eph_LineEdit->setEnabled(false);
1898 _mountpoint_Eph_LineEdit->setEnabled(false);
1899 _password_Eph_LineEdit->setEnabled(false);
1900 _samplEphSpinBox->setEnabled(false);
1901 }
1902 }
1903
1904 // Enable/disable RINEX Clocks Options
1905 // -----------------------------------
1906 if (sender() == 0 || sender() == _rnxPathLineEdit) {
1907 if (!_rnxPathLineEdit->text().isEmpty()) {
1908 _rnxIntrComboBox->setStyleSheet("background-color: white");
1909 _rnxSamplSpinBox->setStyleSheet("background-color: white");
1910 _rnxIntrComboBox->setEnabled(true);
1911 _rnxSamplSpinBox->setEnabled(true);
1912 }
1913 else {
1914 _rnxIntrComboBox->setStyleSheet("background-color: lightGray");
1915 _rnxSamplSpinBox->setStyleSheet("background-color: lightGray");
1916 _rnxIntrComboBox->setEnabled(false);
1917 _rnxSamplSpinBox->setEnabled(false);
1918 }
1919 }
1920
1921 // Enable/disable SP3 Orbits Options
1922 // ---------------------------------
1923 if (sender() == 0 || sender() == _sp3PathLineEdit) {
1924 if (!_sp3PathLineEdit->text().isEmpty()) {
1925 _sp3IntrComboBox->setStyleSheet("background-color: white");
1926 _sp3SamplSpinBox->setStyleSheet("background-color: white");
1927 _sp3IntrComboBox->setEnabled(true);
1928 _sp3SamplSpinBox->setEnabled(true);
1929 }
1930 else {
1931 _sp3IntrComboBox->setStyleSheet("background-color: lightGray");
1932 _sp3SamplSpinBox->setStyleSheet("background-color: lightGray");
1933 _sp3IntrComboBox->setEnabled(false);
1934 _sp3SamplSpinBox->setEnabled(false);
1935 }
1936 }
1937
1938}
1939
1940// Custom transformation parameters
1941////////////////////////////////////////////////////////////////////////////
1942void bnsWindow::customTrafo(const QString &text){
1943 if (text == "Custom" ) {
1944 bnsCustomTrafo* dlg = new bnsCustomTrafo(this);
1945 dlg->exec();
1946 delete dlg;
1947 }
1948}
1949
Note: See TracBrowser for help on using the repository browser.