source: ntrip/trunk/BNC/src/pppOptions.h@ 10993

Last change on this file since 10993 was 10942, checked in by stuerze, 2 months ago

handling of ionospheric constraints descrived/updated

File size: 3.9 KB
Line 
1#ifndef OPTIONS_H
2#define OPTIONS_H
3
4#include <string>
5#include <vector>
6#include <set>
7#include <newmat.h>
8#include "pppInclude.h"
9
10namespace BNC_PPP {
11
12class t_pppOptions {
13 public:
14 enum iono_type {est};
15 enum e_logMode {normal, debug, all};
16
17 class SysTrkModes {
18 public:
19 class FrqTrkModes {
20 public:
21 FrqTrkModes(t_frequency::type frq, const std::string trkModes)
22 : _frq(frq), _trkModes(trkModes) {}
23 t_frequency::type _frq;
24 std::string _trkModes;
25 };
26 std::vector<FrqTrkModes> _frqTrkModes;
27 };
28
29 class ArOptions {
30 public:
31 std::set<char> _systems;
32 double _minEle = 0.0;
33 unsigned _minNumEpo = 0;
34 int _minNumSat = 0;
35 bool _useYaw = false;
36 double _maxFrac = 0.0;
37 double _maxSig = 0.0;
38 };
39
40 t_pppOptions();
41 ~t_pppOptions();
42
43 std::vector<char> systems() const;
44 const std::vector<t_lc>& LCs(char system) const;
45 std::vector<t_lc> ambLCs(char system) const;
46 bool useSystem(char system) const {return LCs(system).size() > 0;}
47 bool useOrbClkCorr() const;
48 bool estTrp() const {return _aprSigTrp > 0.0 || _noiseTrp > 0.0;}
49 bool xyzAprRoverSet() const {
50 return (_xyzAprRover[0] != 0.0 || _xyzAprRover[1] != 0.0 || _xyzAprRover[2] != 0.0);
51 }
52 void setTrkModes(const std::string& trkStr);
53 const SysTrkModes* sysTrkModes(char sys) const {
54 auto it = _trkModesMap.find(sys);
55 return (it != _trkModesMap.end() ? &it->second : 0);
56 }
57 void setLCs(char sys, const std::string& lcStr);
58 void defaultFrqs(char sys, t_frequency::type& frq1, t_frequency::type& frq2) const;
59 bool ambRes() const {return _ar._systems.size() > 0;}
60 bool arSystem(char sys) const {return _ar._systems.find(sys) != _ar._systems.end();}
61
62 iono_type _ionoModelType;
63 bool _realTime;
64 std::string _crdFile;
65 std::string _corrMount;
66 std::string _biasMount;
67 std::string _ionoMount;
68 bool _isAPC;
69 std::string _rinexObs;
70 std::string _rinexNav;
71 std::string _corrFile;
72 std::string _biasFile;
73 std::string _ionoFile;
74 double _corrWaitTime;
75 std::string _roverName;
76 ColumnVector _xyzAprRover;
77 ColumnVector _neuEccRover;
78 std::string _recNameRover;
79 std::string _antNameRover;
80 std::string _antexFileName;
81 std::string _blqFileName;
82 double _sigmaC1;
83 double _sigmaL1;
84 double _sigmaGIM;
85 double _maxResC1;
86 double _maxResL1;
87 bool _eleWgtCode;
88 bool _eleWgtPhase;
89 double _minEle;
90 int _minObs;
91 ColumnVector _aprSigCrd;
92 double _aprSigClk;
93 double _aprSigTrp;
94 double _aprSigIon;
95 double _aprSigAmb;
96 double _aprSigCodeBias;
97 ColumnVector _noiseCrd;
98 double _noiseTrp;
99 int _nmeaPort;
100 double _seedingTime;
101 std::vector<t_lc> _LCsGPS;
102 std::vector<t_lc> _LCsGLONASS;
103 std::vector<t_lc> _LCsGalileo;
104 std::vector<t_lc> _LCsBDS;
105 bool _pseudoObsIono;
106 bool _refSatRequired;
107 ArOptions _ar;
108 e_logMode _logMode;
109private:
110 std::map<char, SysTrkModes> _trkModesMap;
111};
112
113}
114
115#endif
Note: See TracBrowser for help on using the repository browser.