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

Last change on this file since 3642 was 3642, checked in by mervart, 12 years ago
File size: 4.3 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 pppMode = settings.value("pppSPP").toString() == "PPP";
84 rnxAppend = settingsChecked("rnxAppend");
85 usePhase = settingsChecked("pppUsePhase");
86 estTropo = settingsChecked("pppEstTropo");
87 useGlonass = settingsChecked("pppGLONASS");
88 useGalileo = settingsChecked("pppGalileo");
89
90 if (!refCrdSet()) quickStart = 0.0;
91 if (!pppMode) corrSync = 0.0;
92
93 sigGalileoOffset0 = 1000.0;
94 sigGalileoOffsetP = 0.0;
95 sigClk0 = 1000.0;
96 sigAmb0 = 1000.0;
97}
98
99// Destructor
100////////////////////////////////////////////////////////////////////////////
101t_pppOpt::~t_pppOpt() {
102}
103
104// Settings Value with Default
105////////////////////////////////////////////////////////////////////////////
106double t_pppOpt::settingsToDouble(const QByteArray& keyName,
107 double defaultValue) const {
108 bncSettings settings;
109 if (settings.value(keyName).toString().isEmpty()) {
110 return defaultValue;
111 }
112 else {
113 return settings.value(keyName).toDouble();
114 }
115}
116
117// Settings Checked
118////////////////////////////////////////////////////////////////////////////
119bool t_pppOpt::settingsChecked(const QByteArray& keyName) const {
120 bncSettings settings;
121 if (Qt::CheckState(settings.value(keyName).toInt()) == Qt::Checked) {
122 return true;
123 }
124 else {
125 return false;
126 }
127}
Note: See TracBrowser for help on using the repository browser.