source: ntrip/trunk/BNC/pppopt.cpp@ 4242

Last change on this file since 4242 was 4079, checked in by mervart, 13 years ago
File size: 4.5 KB
Line 
1// Part of BNC, a utility for retrieving decoding and
2// converting GNSS data streams from NTRIP broadcasters.
3//
4// Copyright (C) 2007
5// German Federal Agency for Cartography and Geodesy (BKG)
6// http://www.bkg.bund.de
7// Czech Technical University Prague, Department of Geodesy
8// http://www.fsv.cvut.cz
9//
10// Email: euref-ip@bkg.bund.de
11//
12// This program is free software; you can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// as published by the Free Software Foundation, version 2.
15//
16// This program is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program; if not, write to the Free Software
23// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24
25/* -------------------------------------------------------------------------
26 * BKG NTRIP Client
27 * -------------------------------------------------------------------------
28 *
29 * Class: t_pppOpt
30 *
31 * Purpose: Options for Precise Point Positioning
32 *
33 * Author: L. Mervart
34 *
35 * Created: 22-Jan-2012
36 *
37 * Changes:
38 *
39 * -----------------------------------------------------------------------*/
40
41#include <iostream>
42#include "pppopt.h"
43#include "bncsettings.h"
44
45using namespace std;
46
47// Constructor
48////////////////////////////////////////////////////////////////////////////
49t_pppOpt::t_pppOpt() {
50 bncSettings settings;
51
52 sigP3 = settingsToDouble("pppSigmaCode", 5.0);
53 sigL3 = settingsToDouble("pppSigmaPhase", 0.02);
54 sigCrd0 = settingsToDouble("pppSigCrd0", 100.0);
55 sigCrdP = settingsToDouble("pppSigCrdP", 100.0);
56 sigTrp0 = settingsToDouble("pppSigTrp0", 0.1);
57 sigTrpP = settingsToDouble("pppSigTrpP", 1e-6);
58 refCrd[0] = settingsToDouble("pppRefCrdX");
59 refCrd[1] = settingsToDouble("pppRefCrdY");
60 refCrd[2] = settingsToDouble("pppRefCrdZ");
61 antEccNEU[0] = settingsToDouble("pppRefdN");
62 antEccNEU[1] = settingsToDouble("pppRefdE");
63 antEccNEU[2] = settingsToDouble("pppRefdU");
64 maxSolGap = settingsToDouble("pppMaxSolGap");
65 quickStart = settingsToDouble("pppQuickStart");
66 corrSync = settingsToDouble("pppSync");
67 pppAverage = settingsToDouble("pppAverage") * 60.0;
68 if (pppAverage < 0.0) {
69 pppAverage = 0.0;
70 }
71 else if (pppAverage > 86400.0) {
72 pppAverage = 86400.0;
73 }
74
75 pppCorrMount = settings.value("pppCorrMount").toString();
76 nmeaFile = settings.value("nmeaFile").toString();
77 antexFile = settings.value("pppAntex").toString();
78 antennaName = settings.value("pppAntenna").toString();
79 obsFileName = settings.value("postObsFile").toString();
80 navFileName = settings.value("postNavFile").toString();
81 corrFileName = settings.value("postCorrFile").toString();
82
83 if (settings.value("pppSPP").toString() == "Post-Processing") {
84 corrSync = 0.0;
85 pppCorrMount = "";
86 if (corrFileName.isEmpty()) {
87 pppMode = false;
88 }
89 else {
90 pppMode = true;
91 }
92 }
93 else if (settings.value("pppSPP").toString() == "Realtime-PPP") {
94 pppMode = true;
95 }
96 else {
97 pppMode = false;
98 }
99
100 rnxAppend = settingsChecked("rnxAppend");
101 usePhase = settingsChecked("pppUsePhase");
102 estTropo = settingsChecked("pppEstTropo");
103 useGlonass = settingsChecked("pppGLONASS");
104 useGalileo = settingsChecked("pppGalileo");
105
106 if (!refCrdSet()) quickStart = 0.0;
107 if (!pppMode) corrSync = 0.0;
108
109 sigGalileoOffset0 = 1000.0;
110 sigGalileoOffsetP = 0.0;
111 sigClk0 = 1000.0;
112 sigAmb0 = 1000.0;
113}
114
115// Destructor
116////////////////////////////////////////////////////////////////////////////
117t_pppOpt::~t_pppOpt() {
118}
119
120// Settings Value with Default
121////////////////////////////////////////////////////////////////////////////
122double t_pppOpt::settingsToDouble(const QByteArray& keyName,
123 double defaultValue) const {
124 bncSettings settings;
125 if (settings.value(keyName).toString().isEmpty()) {
126 return defaultValue;
127 }
128 else {
129 return settings.value(keyName).toDouble();
130 }
131}
132
133// Settings Checked
134////////////////////////////////////////////////////////////////////////////
135bool t_pppOpt::settingsChecked(const QByteArray& keyName) const {
136 bncSettings settings;
137 if (Qt::CheckState(settings.value(keyName).toInt()) == Qt::Checked) {
138 return true;
139 }
140 else {
141 return false;
142 }
143}
Note: See TracBrowser for help on using the repository browser.