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

Last change on this file since 8351 was 8351, checked in by stuerze, 11 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.