Changeset 10791 in ntrip for trunk/BNC/src/pppOptions.h


Ignore:
Timestamp:
Dec 3, 2025, 5:37:16 PM (2 days ago)
Author:
mervart
Message:

BNC Multifrequency and PPPAR Client (initial version)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/pppOptions.h

    r10256 r10791  
    44#include <string>
    55#include <vector>
     6#include <set>
    67#include <newmat.h>
    78#include "pppInclude.h"
     
    1112class t_pppOptions {
    1213 public:
    13   enum iono_type {est,PPP_RTK};
     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 
    1440  t_pppOptions();
    1541  ~t_pppOptions();
    1642
    17   std::vector<char>              systems() const;
    18   const std::vector<t_lc::type>& LCs(char system) const;
    19   const std::vector<char>&       frqBands(char system) const;
    20   std::vector<t_lc::type>        ambLCs(char system) const;
    21   std::vector<t_lc::type>        codeLCs(char system) const;
    22   std::vector<t_lc::type>        ionoLCs(char system) const;
    23   bool useSystem(char system) const {return LCs(system).size() > 0;}
    24   bool useOrbClkCorr() const;
    25   bool estTrp() const {return _aprSigTrp > 0.0 || _noiseTrp > 0.0;}
     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;}
    2649  bool xyzAprRoverSet() const {
    2750    return (_xyzAprRover[0] != 0.0 || _xyzAprRover[1] != 0.0 || _xyzAprRover[2] != 0.0);
    2851  }
     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();}
    2961
    30   iono_type               _ionoModelType;
    31   bool                    _realTime;
    32   std::string             _crdFile;
    33   std::string             _corrMount;
    34   std::string             _ionoMount;
    35   bool                    _isAPC;
    36   std::string             _rinexObs;
    37   std::string             _rinexNav;
    38   std::string             _corrFile;
    39   std::string             _ionoFile;
    40   double                  _corrWaitTime;
    41   std::string             _roverName;
    42   ColumnVector            _xyzAprRover;
    43   ColumnVector            _neuEccRover;
    44   std::string             _recNameRover;
    45   std::string             _antNameRover;
    46   std::string             _antexFileName;
    47   std::string             _blqFileName;
    48   double                  _sigmaC1;
    49   double                  _sigmaL1;
    50   double                  _sigmaGIM;
    51   double                  _maxResC1;
    52   double                  _maxResL1;
    53   double                  _maxResGIM;
    54   bool                    _eleWgtCode;
    55   bool                    _eleWgtPhase;
    56   double                  _minEle;
    57   int                     _minObs;
    58   ColumnVector            _aprSigCrd;
    59   double                  _aprSigClk;
    60   double                  _aprSigClkOff;
    61   double                  _aprSigTrp;
    62   double                  _aprSigIon;
    63   double                  _aprSigAmb;
    64   double                  _aprSigCodeBias;
    65   double                  _aprSigPhaseBias;
    66   ColumnVector            _noiseCrd;
    67   double                  _noiseTrp;
    68   double                  _noiseIon;
    69   double                  _noiseCodeBias;
    70   double                  _noisePhaseBias;
    71   int                     _nmeaPort;
    72   std::string             _signalPriorities;
    73   double                  _seedingTime;
    74   std::vector<t_lc::type> _LCsGPS;
    75   std::vector<t_lc::type> _LCsGLONASS;
    76   std::vector<t_lc::type> _LCsGalileo;
    77   std::vector<t_lc::type> _LCsBDS;
    78   std::vector<char>       _frqBandsGPS;
    79   std::vector<char>       _frqBandsGLONASS;
    80   std::vector<char>       _frqBandsGalileo;
    81   std::vector<char>       _frqBandsBDS;
    82   bool                    _pseudoObsIono;
    83   bool                    _refSatRequired;
     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;
     110private: 
     111  std::map<char, SysTrkModes>   _trkModesMap;
    84112};
    85113
Note: See TracChangeset for help on using the changeset viewer.