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

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