| 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 |
|
|---|
| 10 | namespace BNC_PPP {
|
|---|
| 11 |
|
|---|
| 12 | class 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 | double _maxResGIM;
|
|---|
| 88 | bool _eleWgtCode;
|
|---|
| 89 | bool _eleWgtPhase;
|
|---|
| 90 | double _minEle;
|
|---|
| 91 | int _minObs;
|
|---|
| 92 | ColumnVector _aprSigCrd;
|
|---|
| 93 | double _aprSigClk;
|
|---|
| 94 | double _aprSigTrp;
|
|---|
| 95 | double _aprSigIon;
|
|---|
| 96 | double _aprSigAmb;
|
|---|
| 97 | double _aprSigCodeBias;
|
|---|
| 98 | ColumnVector _noiseCrd;
|
|---|
| 99 | double _noiseTrp;
|
|---|
| 100 | int _nmeaPort;
|
|---|
| 101 | double _seedingTime;
|
|---|
| 102 | std::vector<t_lc> _LCsGPS;
|
|---|
| 103 | std::vector<t_lc> _LCsGLONASS;
|
|---|
| 104 | std::vector<t_lc> _LCsGalileo;
|
|---|
| 105 | std::vector<t_lc> _LCsBDS;
|
|---|
| 106 | bool _pseudoObsIono;
|
|---|
| 107 | bool _refSatRequired;
|
|---|
| 108 | ArOptions _ar;
|
|---|
| 109 | e_logMode _logMode;
|
|---|
| 110 | private:
|
|---|
| 111 | std::map<char, SysTrkModes> _trkModesMap;
|
|---|
| 112 | };
|
|---|
| 113 |
|
|---|
| 114 | }
|
|---|
| 115 |
|
|---|
| 116 | #endif
|
|---|