| 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 | t_loading*                _loading; | 
|---|
| 74 | }; | 
|---|
| 75 |  | 
|---|
| 76 | }; // namespace BNC_PPP | 
|---|
| 77 |  | 
|---|
| 78 | #define PPP_CLIENT (BNC_PPP::t_pppClient::instance()) | 
|---|
| 79 | #define LOG        (BNC_PPP::t_pppClient::instance()->log()) | 
|---|
| 80 | #define OPT        (BNC_PPP::t_pppClient::instance()->opt()) | 
|---|
| 81 |  | 
|---|
| 82 | #endif | 
|---|