source: ntrip/trunk/BNC/src/bncsettings.cpp@ 10792

Last change on this file since 10792 was 10753, checked in by stuerze, 4 months ago

NtripSever functionallity added

File size: 9.0 KB
RevLine 
[1535]1/* -------------------------------------------------------------------------
2 * BKG NTRIP Client
3 * -------------------------------------------------------------------------
4 *
5 * Class: bncSettings
6 *
7 * Purpose: Subclasses the QSettings
8 *
9 * Author: L. Mervart
10 *
11 * Created: 25-Jan-2009
12 *
[7297]13 * Changes:
[1535]14 *
15 * -----------------------------------------------------------------------*/
16
[4072]17#include <QSettings>
18
[1535]19#include "bncsettings.h"
[5070]20#include "bnccore.h"
[1535]21
[7297]22QMutex bncSettings::_mutex; // static mutex
[4073]23
[1535]24// Constructor
25////////////////////////////////////////////////////////////////////////////
[4077]26bncSettings::bncSettings() {
[10657]27 QMutexLocker locker(&_mutex);
[1536]28
[10657]29 // First fill the options
30 // ----------------------
31 if (BNC_CORE->_settings.size() == 0) {
32 reRead();
33 }
[1535]34}
35
[4070]36// Destructor
37////////////////////////////////////////////////////////////////////////////
38bncSettings::~bncSettings() {
39}
40
[4251]41// (Re-)read the Options from File or Set the Defaults
42////////////////////////////////////////////////////////////////////////////
43void bncSettings::reRead() {
44
[10657]45 QSettings settings(BNC_CORE->confFileName(), QSettings::IniFormat);
[4251]46
[10657]47 // Read from File
48 // --------------
49 if (settings.allKeys().size() > 0) {
50 QStringListIterator it(settings.allKeys());
51 while (it.hasNext()) {
52 QString key = it.next();
53 BNC_CORE->_settings[key] = settings.value(key);
54 }
[4251]55 }
56
[10657]57 // Set Defaults
58 // ------------
59 else {
60 setValue_p("startTab", "0");
61 setValue_p("statusTab", "0");
62 setValue_p("font", "");
63 setValue_p("casterUrlList", (QStringList()
[10753]64 << "http://user:pass@euref-ip.net:443"
65 << "http://user:pass@igs-ip.net:443"
66 << "http://user:pass@products.igs-ip.net:443"
67 << "http://user:pass@mgex.igs-ip.net:443"));
[10657]68 setValue_p("mountPoints", "");
[10753]69 setValue_p("ntripVersion", "2s");
[10657]70 // Network
71 setValue_p("proxyHost", "");
72 setValue_p("proxyPort", "");
73 setValue_p("sslCaCertPath", "");
74 setValue_p("sslClientCertPath", "");
75 setValue_p("sslIgnoreErrors", "0");
76 // General
77 setValue_p("logFile", "");
78 setValue_p("rnxAppend", "0");
79 setValue_p("onTheFlyInterval", "no");
80 setValue_p("autoStart", "0");
81 setValue_p("rawOutFile", "");
82 // RINEX Observations
83 setValue_p("rnxPath", "");
84 setValue_p("rnxIntr", "1 day");
85 setValue_p("rnxOnlyWithSKL", "");
86 setValue_p("rnxSampl", "1 sec");
87 setValue_p("rnxSkel", "skl");
88 setValue_p("rnxSkelPath", "");
89 setValue_p("rnxV2Priority", "");
90 setValue_p("rnxScript", "");
91 setValue_p("rnxVersion", "3");
92 // RINEX Ephemeris
93 setValue_p("ephPath", "");
94 setValue_p("ephIntr", "1 day");
95 setValue_p("ephOutPort", "");
96 setValue_p("ephVersion", "3");
97 // Reqc
98 setValue_p("reqcAction", "");
99 setValue_p("reqcObsFile", "");
100 setValue_p("reqcNavFile", "");
101 setValue_p("reqcOutObsFile", "");
102 setValue_p("reqcOutNavFile", "");
103 setValue_p("reqcOutLogFile", "");
104 setValue_p("reqcSkyPlotSignals", "G:1&2&5 R:1&2&3 E:1&7 C:2&6 J:1&2 I:5&9 S:1&5");
105 setValue_p("reqcPlotDir", "");
106 setValue_p("reqcRnxVersion", "");
107 setValue_p("reqcSampling", "1 sec");
108 setValue_p("reqcStartDateTime", "1967-11-02T00:00:00");
109 setValue_p("reqcEndDateTime", "2099-01-01T00:00:00");
110 setValue_p("reqcLogSummaryOnly", "");
111 setValue_p("reqcRunBy", "");
112 setValue_p("reqcComment", "");
113 setValue_p("reqcOldMarkerName", "");
114 setValue_p("reqcNewMarkerName", "");
115 setValue_p("reqcOldAntennaName", "");
116 setValue_p("reqcNewAntennaName", "");
117 setValue_p("reqcOldReceiverName", "");
118 setValue_p("reqcNewReceiverName", "");
119 setValue_p("reqcOldAntennaNumber", "");
120 setValue_p("reqcNewAntennaNumber", "");
121 setValue_p("reqcOldAntennadE", "");
122 setValue_p("reqcNewAntennadE", "");
123 setValue_p("reqcOldAntennadN", "");
124 setValue_p("reqcNewAntennadN", "");
125 setValue_p("reqcOldAntennadU", "");
126 setValue_p("reqcNewAntennadU", "");
127 setValue_p("reqcOldReceiverNumber", "");
128 setValue_p("reqcNewReceiverNumber", "");
129 setValue_p("reqcUseObsTypes", "");
130 setValue_p("reqcV2Priority", "G:12&PWCSLX G:5&IQX R:12&PC R:3&IQX R:46&ABX E:16&BCXZ E:578&IQX J:1&SLXCZ J:26&SLX J:5&IQX C:267&IQX C:18&DPX I:ABCX S:1&C S:5&IQX");
131 // SP3
132 setValue_p("sp3CompFile", "");
133 setValue_p("sp3CompExclude", "");
134 setValue_p("sp3CompOutLogFile", "");
135 setValue_p("sp3CompSummaryOnly", "");
136 // Braodcast Corrections
137 setValue_p("corrPath", "");
138 setValue_p("corrIntr", "1 day");
139 setValue_p("corrPort", "");
140 // Feed Engine
141 setValue_p("outPort", "");
142 setValue_p("outWait", "5");
143 setValue_p("outSampl", "1 sec");
144 setValue_p("outFile", "");
145 setValue_p("outUPort", "");
146 setValue_p("outLockTime", "0");
147 // Serial Output
148 setValue_p("serialMountPoint", "");
149 setValue_p("serialPortName", "");
150 setValue_p("serialBaudRate", "9600");
151 setValue_p("serialFlowControl", "OFF");
152 setValue_p("serialDataBits", "8");
153 setValue_p("serialParity", "NONE");
154 setValue_p("serialStopBits", "1");
155 setValue_p("serialAutoNMEA", "Auto");
156 setValue_p("serialFileNMEA", "");
157 setValue_p("serialHeightNMEA", "");
158 setValue_p("serialNMEASampling", "10");
159 // Outages
160 setValue_p("adviseObsRate", "");
161 setValue_p("adviseFail", "15");
162 setValue_p("adviseReco", "5");
163 setValue_p("adviseScript", "");
164 // Miscellaneous
165 setValue_p("miscMount", "");
166 setValue_p("miscIntr", "");
167 setValue_p("miscScanRTCM", "0");
168 setValue_p("miscPort", "");
169 // Combination
170 setValue_p("cmbStreams", "");
171 setValue_p("cmbMethod", "");
172 setValue_p("cmbMaxres", "");
173 setValue_p("cmbMaxdisplacement", "");
174 setValue_p("cmbSampl", "10 sec");
175 setValue_p("cmbLogpath", "");
176 setValue_p("cmbGps", "2");
177 setValue_p("cmbGlo", "2");
178 setValue_p("cmbGal", "2");
179 setValue_p("cmbBds", "2");
180 setValue_p("cmbQzss", "0");
181 setValue_p("cmbSbas", "0");
182 setValue_p("cmbNavic", "0");
183 // Upload (clk)
184 setValue_p("uploadMountpointsOut", "");
185 setValue_p("uploadIntr", "1 day");
186 setValue_p("uploadSamplRtcmEphCorr", "5 sec");
187 setValue_p("uploadSamplSp3", "30 sec");
[10667]188 setValue_p("uploadSamplClkRnx", "5");
189 setValue_p("uploadSamplBiaSnx", "5");
[10657]190 setValue_p("trafo_dx", "");
191 setValue_p("trafo_dy", "");
192 setValue_p("trafo_dz", "");
193 setValue_p("trafo_dxr", "");
194 setValue_p("trafo_dyr", "");
195 setValue_p("trafo_dzr", "");
196 setValue_p("trafo_ox", "");
197 setValue_p("trafo_oy", "");
198 setValue_p("trafo_oz", "");
199 setValue_p("trafo_oxr", "");
200 setValue_p("trafo_oyr", "");
201 setValue_p("trafo_ozr", "");
202 setValue_p("trafo_sc", "");
203 setValue_p("trafo_scr", "");
204 setValue_p("trafo_t0", "");
[10753]205 // Upload Eph
[10657]206 setValue_p("uploadEphMountpointsOut", "");
207 setValue_p("uploadSamplRtcmEph", "5");
[10753]208 // Upload Raw
209 setValue_p("uploadRawMountpointsOut", "");
[10657]210 }
[4251]211}
212
[7297]213//
[4070]214////////////////////////////////////////////////////////////////////////////
215QVariant bncSettings::value(const QString& key,
[10657]216 const QVariant& defaultValue) const {
217 QMutexLocker locker(&_mutex);
[4073]218
[10657]219 if (BNC_CORE->_settings.contains(key)) {
220 return BNC_CORE->_settings[key];
221 }
222 else {
223 return defaultValue;
224 }
[4070]225}
226
[7297]227//
[4070]228////////////////////////////////////////////////////////////////////////////
[10657]229void bncSettings::setValue(const QString& key, const QVariant& value) {
230 QMutexLocker locker(&_mutex);
231 setValue_p(key, value);
[4078]232}
233
[7297]234//
[4078]235////////////////////////////////////////////////////////////////////////////
[10657]236void bncSettings::setValue_p(const QString& key, const QVariant& value) {
237 BNC_CORE->_settings[key] = value;
[4070]238}
239
[7297]240//
[4070]241////////////////////////////////////////////////////////////////////////////
[10657]242void bncSettings::remove(const QString& key) {
243 QMutexLocker locker(&_mutex);
244 BNC_CORE->_settings.remove(key);
[4070]245}
246
[7297]247//
[4070]248////////////////////////////////////////////////////////////////////////////
[6411]249bool bncSettings::contains(const QString& key) const {
[10657]250 QMutexLocker locker(&_mutex);
251 return BNC_CORE->_settings.contains(key);
[6411]252}
253
[7297]254//
[6411]255////////////////////////////////////////////////////////////////////////////
[4070]256void bncSettings::sync() {
[10657]257 QMutexLocker locker(&_mutex);
258 QSettings settings(BNC_CORE->confFileName(), QSettings::IniFormat);
259 settings.clear();
260 QMapIterator<QString, QVariant> it(BNC_CORE->_settings);
[9854]261
[10657]262 while (it.hasNext()) {
263 it.next();
264 settings.setValue(it.key(), it.value());
265 }
[9854]266
[10657]267 settings.sync();
[4070]268}
Note: See TracBrowser for help on using the repository browser.