| 1 | #ifndef PPPCLIENT_H
 | 
|---|
| 2 | #define PPPCLIENT_H
 | 
|---|
| 3 | 
 | 
|---|
| 4 | #include <sstream>
 | 
|---|
| 5 | #include <vector>
 | 
|---|
| 6 | #include "pppInclude.h"
 | 
|---|
| 7 | #include "ephemeris.h"
 | 
|---|
| 8 | #include "pppOptions.h"
 | 
|---|
| 9 | #include "pppModel.h"
 | 
|---|
| 10 | 
 | 
|---|
| 11 | class bncAntex;
 | 
|---|
| 12 | 
 | 
|---|
| 13 | namespace BNC_PPP {
 | 
|---|
| 14 | 
 | 
|---|
| 15 | class t_pppEphPool;
 | 
|---|
| 16 | class t_pppObsPool;
 | 
|---|
| 17 | class t_pppSatObs;
 | 
|---|
| 18 | class t_pppStation;
 | 
|---|
| 19 | class t_pppFilter;
 | 
|---|
| 20 | 
 | 
|---|
| 21 | class t_pppClient : public interface_pppClient {
 | 
|---|
| 22 |  public:
 | 
|---|
| 23 |   t_pppClient(const t_pppOptions* opt);
 | 
|---|
| 24 |   ~t_pppClient();
 | 
|---|
| 25 | 
 | 
|---|
| 26 |   void putEphemeris(const t_eph* eph);
 | 
|---|
| 27 |   void putTec(const t_vTec* vTec);
 | 
|---|
| 28 |   void putOrbCorrections(const std::vector<t_orbCorr*>& corr);
 | 
|---|
| 29 |   void putClkCorrections(const std::vector<t_clkCorr*>& corr);
 | 
|---|
| 30 |   void putCodeBiases(const std::vector<t_satCodeBias*>& biases);
 | 
|---|
| 31 |   void putPhaseBiases(const std::vector<t_satPhaseBias*>& biases);
 | 
|---|
| 32 |   void processEpoch(const std::vector<t_satObs*>& satObs, t_output* output);
 | 
|---|
| 33 | 
 | 
|---|
| 34 |   const t_pppEphPool* ephPool() const {return _ephPool;}
 | 
|---|
| 35 |   const t_pppObsPool* obsPool() const {return _obsPool;}
 | 
|---|
| 36 |   const bncAntex*  antex() const {return _antex;}
 | 
|---|
| 37 |   const t_pppStation* staRover() const {return _staRover;}
 | 
|---|
| 38 |   double           offGG() const {return _offGG;}
 | 
|---|
| 39 | 
 | 
|---|
| 40 |   std::ostringstream& log() {return *_log;}
 | 
|---|
| 41 |   const t_pppOptions* opt() const {return _opt;}
 | 
|---|
| 42 | 
 | 
|---|
| 43 |   static void bancroft(const Matrix& BBpass, ColumnVector& pos);
 | 
|---|
| 44 | 
 | 
|---|
| 45 |   static t_pppClient* instance();
 | 
|---|
| 46 | 
 | 
|---|
| 47 |   void reset();
 | 
|---|
| 48 | 
 | 
|---|
| 49 |  private:
 | 
|---|
| 50 |   void initOutput(t_output* output);
 | 
|---|
| 51 |   void finish(t_irc irc);
 | 
|---|
| 52 |   void clearObs();
 | 
|---|
| 53 |   t_irc prepareObs(const std::vector<t_satObs*>& satObs,
 | 
|---|
| 54 |                    std::vector<t_pppSatObs*>& obsVector, bncTime& epoTime);
 | 
|---|
| 55 |   t_irc cmpModel(t_pppStation* station, const ColumnVector& xyzc,
 | 
|---|
| 56 |                  std::vector<t_pppSatObs*>& obsVector);
 | 
|---|
| 57 |   t_irc cmpBancroft(const bncTime& epoTime, std::vector<t_pppSatObs*>& obsVector,
 | 
|---|
| 58 |                     ColumnVector& xyzc, bool print);
 | 
|---|
| 59 |   double cmpOffGG(std::vector<t_pppSatObs*>& obsVector);
 | 
|---|
| 60 | 
 | 
|---|
| 61 |   t_output*                 _output;
 | 
|---|
| 62 |   t_pppEphPool*             _ephPool;
 | 
|---|
| 63 |   t_pppObsPool*             _obsPool;
 | 
|---|
| 64 |   bncTime                   _epoTimeRover;
 | 
|---|
| 65 |   t_pppStation*             _staRover;
 | 
|---|
| 66 |   bncAntex*                 _antex;
 | 
|---|
| 67 |   t_pppFilter*              _filter;
 | 
|---|
| 68 |   double                    _offGG;
 | 
|---|
| 69 |   std::vector<t_pppSatObs*> _obsRover;
 | 
|---|
| 70 |   std::ostringstream*       _log;
 | 
|---|
| 71 |   t_pppOptions*             _opt;
 | 
|---|
| 72 |   t_tides*                  _tides;
 | 
|---|
| 73 | };
 | 
|---|
| 74 | 
 | 
|---|
| 75 | }; // namespace BNC_PPP
 | 
|---|
| 76 | 
 | 
|---|
| 77 | #define PPP_CLIENT (BNC_PPP::t_pppClient::instance())
 | 
|---|
| 78 | #define LOG        (BNC_PPP::t_pppClient::instance()->log())
 | 
|---|
| 79 | #define OPT        (BNC_PPP::t_pppClient::instance()->opt())
 | 
|---|
| 80 | 
 | 
|---|
| 81 | #endif
 | 
|---|