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

Last change on this file since 8397 was 8397, checked in by stuerze, 2 years ago

some changes to allow 10 Hz observation data generation with correct file names and observation data resampling (RINEX files, feed engine) and harmonization of all 3 applications

File size: 8.9 KB
Line 
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 *
13 * Changes:
14 *
15 * -----------------------------------------------------------------------*/
16
17#include <QSettings>
18
19#include "bncsettings.h"
20#include "bnccore.h"
21
22QMutex bncSettings::_mutex;  // static mutex
23
24// Constructor
25////////////////////////////////////////////////////////////////////////////
26bncSettings::bncSettings() {
27  QMutexLocker locker(&_mutex);
28
29  // First fill the options
30  // ----------------------
31  if (BNC_CORE->_settings.size() == 0) {
32    reRead();
33  }
34}
35
36// Destructor
37////////////////////////////////////////////////////////////////////////////
38bncSettings::~bncSettings() {
39}
40
41// (Re-)read the Options from File or Set the Defaults
42////////////////////////////////////////////////////////////////////////////
43void bncSettings::reRead() {
44
45  QSettings settings(BNC_CORE->confFileName(), QSettings::IniFormat);
46
47#ifdef GNSSCENTER_PLUGIN
48  settings.beginGroup("BNC");
49#endif
50
51  // Read from File
52  // --------------
53  if (settings.allKeys().size() > 0) {
54    QStringListIterator it(settings.allKeys());
55    while (it.hasNext()) {
56      QString key = it.next();
57      BNC_CORE->_settings[key] = settings.value(key);
58    }
59  }
60
61  // Set Defaults
62  // ------------
63  else {
64    setValue_p("startTab",            "0");
65    setValue_p("statusTab",           "0");
66    setValue_p("font",                "");
67    setValue_p("casterUrlList", (QStringList()
68                               << "http://user:pass@www.euref-ip.net:2101"
69                               << "http://user:pass@www.igs-ip.net:2101"
70                               << "http://user:pass@products.igs-ip.net:2101"
71                               << "http://user:pass@mgex.igs-ip.net:2101"));
72    setValue_p("mountPoints",         "");
73    setValue_p("ntripVersion",        "2");
74    // Network
75    setValue_p("proxyHost",           "");
76    setValue_p("proxyPort",           "");
77    setValue_p("sslCaCertPath",       "");
78    setValue_p("sslIgnoreErrors",     "0");
79    // General
80    setValue_p("logFile",             "");
81    setValue_p("rnxAppend",           "0");
82    setValue_p("onTheFlyInterval",    "no");
83    setValue_p("autoStart",           "0");
84    setValue_p("rawOutFile",          "");
85    // RINEX Observations
86    setValue_p("rnxPath",             "");
87    setValue_p("rnxIntr",             "1 day");
88    setValue_p("rnxOnlyWithSKL",      "");
89    setValue_p("rnxSampl",            "1 sec");
90    setValue_p("rnxSkel",             "SKL");
91    setValue_p("rnxV2Priority",       "");
92    setValue_p("rnxScript",           "");
93    setValue_p("rnxV3",               "0");
94    // RINEX Ephemeris
95    setValue_p("ephPath",             "");
96    setValue_p("ephIntr",             "1 day");
97    setValue_p("ephOutPort",          "");
98    setValue_p("ephV3",               "0");
99    // Reqc
100    setValue_p("reqcAction",          "");
101    setValue_p("reqcObsFile",         "");
102    setValue_p("reqcNavFile",         "");
103    setValue_p("reqcOutObsFile",      "");
104    setValue_p("reqcOutNavFile",      "");
105    setValue_p("reqcOutLogFile",      "");
106    setValue_p("reqcSkyPlotSignals",  "C:2&7 E:1&5 G:1&2 J:1&2 R:1&2 S:1&5 I:5&9");
107    setValue_p("reqcPlotDir",         "");
108    setValue_p("reqcRnxVersion",      "");
109    setValue_p("reqcSampling",        "1 sec");
110    setValue_p("reqcStartDateTime",   "1967-11-02T00:00:00");
111    setValue_p("reqcEndDateTime",     "2099-01-01T00:00:00");
112    setValue_p("reqcLogSummaryOnly",  "");
113    setValue_p("reqcRunBy",           "");
114    setValue_p("reqcComment",         "");
115    setValue_p("reqcOldMarkerName",   "");
116    setValue_p("reqcNewMarkerName",   "");
117    setValue_p("reqcOldAntennaName",  "");
118    setValue_p("reqcNewAntennaName",  "");
119    setValue_p("reqcOldReceiverName", "");
120    setValue_p("reqcNewReceiverName", "");
121    setValue_p("reqcOldAntennaNumber", "");
122    setValue_p("reqcNewAntennaNumber","");
123    setValue_p("reqcOldAntennadE",    "");
124    setValue_p("reqcNewAntennadE",    "");
125    setValue_p("reqcOldAntennadN",    "");
126    setValue_p("reqcNewAntennadN",    "");
127    setValue_p("reqcOldAntennadU",    "");
128    setValue_p("reqcNewAntennadU",    "");
129    setValue_p("reqcOldReceiverNumber", "");
130    setValue_p("reqcNewReceiverNumber", "");
131    setValue_p("reqcUseObsTypes",     "");
132    setValue_p("reqcV2Priority",      "G:12&PWCSLXYN_ G:5&IQX_ R:12&PC_ R:3&IQX_ E:16&BCX_ E:578&IQX_ J:1&SLXCZ_ J:26&SLX_ J:5&IQX_ C:IQX_ I:ABCX_ S:1&C_ S:5&IQX_");
133    // SP3
134    setValue_p("sp3CompFile",         "");
135    setValue_p("sp3CompExclude",      "");
136    setValue_p("sp3CompOutLogFile",   "");
137    // Braodcast Corrections
138    setValue_p("corrPath",            "");
139    setValue_p("corrIntr",            "1 day");
140    setValue_p("corrPort",            "");
141    // Feed Engine
142    setValue_p("outPort",             "");
143    setValue_p("outWait",             "5");
144    setValue_p("outSampl",            "1 sec");
145    setValue_p("outFile",             "");
146    setValue_p("outUPort",            "");
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("serialManualNMEASampling", "");
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("cmbSampl",            "10");
174    setValue_p("cmbUseGlonass",       "");
175    // Upload (clk)
176    setValue_p("uploadMountpointsOut","");
177    setValue_p("uploadIntr",          "1 day");
178    setValue_p("uploadSamplRtcmEphCorr", "0");
179    setValue_p("uploadSamplSp3",      "1");
180    setValue_p("uploadSamplClkRnx",   "10");
181    setValue_p("trafo_dx",            "");
182    setValue_p("trafo_dy",            "");
183    setValue_p("trafo_dz",            "");
184    setValue_p("trafo_dxr",           "");
185    setValue_p("trafo_dyr",           "");
186    setValue_p("trafo_dzr",           "");
187    setValue_p("trafo_ox",            "");
188    setValue_p("trafo_oy",            "");
189    setValue_p("trafo_oz",            "");
190    setValue_p("trafo_oxr",           "");
191    setValue_p("trafo_oyr",           "");
192    setValue_p("trafo_ozr",           "");
193    setValue_p("trafo_sc",            "");
194    setValue_p("trafo_scr",           "");
195    setValue_p("trafo_t0",            "");
196    // Upload (eph)
197    setValue_p("uploadEphMountpointsOut","");
198    setValue_p("uploadSamplRtcmEph", "0");
199  }
200#ifdef GNSSCENTER_PLUGIN
201  settings.endGroup();
202#endif
203}
204
205//
206////////////////////////////////////////////////////////////////////////////
207QVariant bncSettings::value(const QString& key,
208                            const QVariant& defaultValue) const {
209  QMutexLocker locker(&_mutex);
210
211  if (BNC_CORE->_settings.contains(key)) {
212    return BNC_CORE->_settings[key];
213  }
214  else {
215    return defaultValue;
216  }
217}
218
219//
220////////////////////////////////////////////////////////////////////////////
221void bncSettings::setValue(const QString &key, const QVariant& value) {
222  QMutexLocker locker(&_mutex);
223  setValue_p(key, value);
224}
225
226//
227////////////////////////////////////////////////////////////////////////////
228void bncSettings::setValue_p(const QString &key, const QVariant& value) {
229  BNC_CORE->_settings[key] = value;
230}
231
232//
233////////////////////////////////////////////////////////////////////////////
234void bncSettings::remove(const QString& key ) {
235  QMutexLocker locker(&_mutex);
236  BNC_CORE->_settings.remove(key);
237}
238
239//
240////////////////////////////////////////////////////////////////////////////
241bool bncSettings::contains(const QString& key) const {
242  QMutexLocker locker(&_mutex);
243  return BNC_CORE->_settings.contains(key);
244}
245
246//
247////////////////////////////////////////////////////////////////////////////
248void bncSettings::sync() {
249  QMutexLocker locker(&_mutex);
250  QSettings settings(BNC_CORE->confFileName(), QSettings::IniFormat);
251  settings.clear();
252  QMapIterator<QString, QVariant> it(BNC_CORE->_settings);
253#ifdef GNSSCENTER_PLUGIN
254  settings.beginGroup("BNC");
255#endif
256  while (it.hasNext()) {
257    it.next();
258    settings.setValue(it.key(), it.value());
259  }
260#ifdef GNSSCENTER_PLUGIN
261  settings.endGroup();
262#endif
263  settings.sync();
264}
Note: See TracBrowser for help on using the repository browser.