source: ntrip/branches/BNC_2.12/src/bncsettings.cpp @ 8351

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

individual satellite system will be considerred now during concatenation of ephemeris files

File size: 9.1 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",            "0");
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",        "");
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
132    setValue_p("reqcUseObsTypes",     "");
133    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_");
134    // SP3
135    setValue_p("sp3CompFile",         "");
136    setValue_p("sp3CompExclude",      "");
137    setValue_p("sp3CompOutLogFile",   "");
138    // Braodcast Corrections
139    setValue_p("corrPath",            "");
140    setValue_p("corrIntr",            "1 day");
141    setValue_p("corrPort",            "");
142    // Feed Engine
143    setValue_p("outPort",             "");
144    setValue_p("outWait",             "5");
145    setValue_p("outSampl",            "0");
146    setValue_p("outFile",             "");
147    setValue_p("outUPort",            "");
148    // Serial Output
149    setValue_p("serialMountPoint",    "");
150    setValue_p("serialPortName",      "");
151    setValue_p("serialBaudRate",      "9600");
152    setValue_p("serialFlowControl",   "OFF");
153    setValue_p("serialDataBits",      "8");
154    setValue_p("serialParity",        "NONE");
155    setValue_p("serialStopBits",      "1");
156    setValue_p("serialAutoNMEA",      "Auto");
157    setValue_p("serialFileNMEA",      "");
158    setValue_p("serialHeightNMEA",    "");
159    setValue_p("serialManualNMEASampling", "");
160    // Outages
161    setValue_p("adviseObsRate",       "");
162    setValue_p("adviseFail",          "15");
163    setValue_p("adviseReco",          "5");
164    setValue_p("adviseScript",        "");
165    // Miscellaneous
166    setValue_p("miscMount",           "");
167    setValue_p("miscIntr",            "");
168    setValue_p("miscScanRTCM",        "0");
169    setValue_p("miscPort",            "");
170    // Combination
171    setValue_p("cmbStreams",          "");
172    setValue_p("cmbMethod",           "");
173    setValue_p("cmbMaxres",           "");
174    setValue_p("cmbSampl",            "10");
175    setValue_p("cmbUseGlonass",       "");
176    // Upload (clk)
177    setValue_p("uploadMountpointsOut","");
178    setValue_p("uploadIntr",          "1 day");
179    setValue_p("uploadSamplRtcmEphCorr", "0");
180    setValue_p("uploadSamplSp3",      "1");
181    setValue_p("uploadSamplClkRnx",   "10");
182    setValue_p("trafo_dx",            "");
183    setValue_p("trafo_dy",            "");
184    setValue_p("trafo_dz",            "");
185    setValue_p("trafo_dxr",           "");
186    setValue_p("trafo_dyr",           "");
187    setValue_p("trafo_dzr",           "");
188    setValue_p("trafo_ox",            "");
189    setValue_p("trafo_oy",            "");
190    setValue_p("trafo_oz",            "");
191    setValue_p("trafo_oxr",           "");
192    setValue_p("trafo_oyr",           "");
193    setValue_p("trafo_ozr",           "");
194    setValue_p("trafo_sc",            "");
195    setValue_p("trafo_scr",           "");
196    setValue_p("trafo_t0",            "");
197    // Upload (eph)
198    setValue_p("uploadEphHost",       "");
199    setValue_p("uploadEphPort",       "");
200    setValue_p("uploadAntexFile",     "");
201    setValue_p("uploadEphMountpoint", "");
202    setValue_p("uploadEphPassword",   "");
203    setValue_p("uploadEphSample",     "5");
204  }
205#ifdef GNSSCENTER_PLUGIN
206  settings.endGroup();
207#endif
208}
209
210//
211////////////////////////////////////////////////////////////////////////////
212QVariant bncSettings::value(const QString& key,
213                            const QVariant& defaultValue) const {
214  QMutexLocker locker(&_mutex);
215
216  if (BNC_CORE->_settings.contains(key)) {
217    return BNC_CORE->_settings[key];
218  }
219  else {
220    return defaultValue;
221  }
222}
223
224//
225////////////////////////////////////////////////////////////////////////////
226void bncSettings::setValue(const QString &key, const QVariant& value) {
227  QMutexLocker locker(&_mutex);
228  setValue_p(key, value);
229}
230
231//
232////////////////////////////////////////////////////////////////////////////
233void bncSettings::setValue_p(const QString &key, const QVariant& value) {
234  BNC_CORE->_settings[key] = value;
235}
236
237//
238////////////////////////////////////////////////////////////////////////////
239void bncSettings::remove(const QString& key ) {
240  QMutexLocker locker(&_mutex);
241  BNC_CORE->_settings.remove(key);
242}
243
244//
245////////////////////////////////////////////////////////////////////////////
246bool bncSettings::contains(const QString& key) const {
247  QMutexLocker locker(&_mutex);
248  return BNC_CORE->_settings.contains(key);
249}
250
251//
252////////////////////////////////////////////////////////////////////////////
253void bncSettings::sync() {
254  QMutexLocker locker(&_mutex);
255  QSettings settings(BNC_CORE->confFileName(), QSettings::IniFormat);
256  settings.clear();
257  QMapIterator<QString, QVariant> it(BNC_CORE->_settings);
258#ifdef GNSSCENTER_PLUGIN
259  settings.beginGroup("BNC");
260#endif
261  while (it.hasNext()) {
262    it.next();
263    settings.setValue(it.key(), it.value());
264  }
265#ifdef GNSSCENTER_PLUGIN
266  settings.endGroup();
267#endif
268  settings.sync();
269}
Note: See TracBrowser for help on using the repository browser.