source: ntrip/trunk/BNC/src/PPP/pppClient.h@ 10993

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

bugfix regarding ionospheric constraints

  • Property svn:keywords set to Author Date Id Rev URL;svn:eol-style=native
  • Property svn:mime-type set to text/plain
File size: 2.8 KB
Line 
1#ifndef PPPCLIENT_H
2#define PPPCLIENT_H
3
4#include <map>
5#include <sstream>
6#include <vector>
7#include "pppInclude.h"
8#include "ephemeris.h"
9#include "pppOptions.h"
10#include "pppModel.h"
11
12class bncAntex;
13
14namespace BNC_PPP {
15
16class t_pppEphPool;
17class t_pppObsPool;
18class t_pppSatObs;
19class t_pppStation;
20class t_pppFilter;
21class t_tides;
22
23class t_pppClient : public interface_pppClient {
24 public:
25 t_pppClient(const t_pppOptions* opt);
26 ~t_pppClient();
27
28 void putEphemeris(const t_eph* eph);
29 void putTec(const t_vTec* vTec);
30 void putOrbCorrections(const std::vector<t_orbCorr*>& corr);
31 void putClkCorrections(const std::vector<t_clkCorr*>& corr);
32 void putCodeBiases(const std::vector<t_satCodeBias*>& biases);
33 void putPhaseBiases(const std::vector<t_satPhaseBias*>& biases);
34 void processEpoch(const std::vector<t_satObs*>& satObs, t_output* output);
35
36 const t_pppEphPool* ephPool() const {return _ephPool;}
37 const t_pppObsPool* obsPool() const {return _obsPool;}
38 const bncAntex* antex() const {return _antex;}
39 const t_pppStation* staRover() const {return _staRover;}
40
41 std::ostringstream& log() {return *_log;}
42 const t_pppOptions* opt() const {return _opt;}
43 static t_irc 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, int ind);
52 void clearObs();
53 t_irc prepareObs(const std::vector<t_satObs*>& satObs,
54 std::vector<t_pppSatObs*>& obsVector, bncTime& epoTime);
55 bool preparePseudoObs(std::vector<t_pppSatObs*>& obsVector);
56 t_irc cmpModel(t_pppStation* station, const ColumnVector& xyzc,
57 std::vector<t_pppSatObs*>& obsVector);
58 t_irc cmpBancroft(const bncTime& epoTime, std::vector<t_pppSatObs*>& obsVector,
59 ColumnVector& xyzc, bool print);
60 double cmpOffGps(std::vector<t_pppSatObs*>& obsVector);
61 double cmpOffGlo(std::vector<t_pppSatObs*>& obsVector);
62 double cmpOffGal(std::vector<t_pppSatObs*>& obsVector);
63 double cmpOffBds(std::vector<t_pppSatObs*>& obsVector);
64 void useObsWithBiasesOnly(std::vector<t_pppSatObs*>& obsVector) const;
65
66 t_output* _output;
67 t_pppEphPool* _ephPool;
68 t_pppObsPool* _obsPool;
69 bncTime _epoTimeRover;
70 t_pppStation* _staRover;
71 bncAntex* _antex;
72 t_pppFilter* _filter;
73 std::vector<t_pppSatObs*> _obsRover;
74 std::ostringstream* _log;
75 t_pppOptions* _opt;
76 t_tides* _tides;
77 bool _pseudoObsIono;
78 bool _running;
79 std::map<char, t_prn> _refPrnMap;
80};
81
82}; // namespace BNC_PPP
83
84#define PPP_CLIENT (BNC_PPP::t_pppClient::instance())
85#define LOG (BNC_PPP::t_pppClient::instance()->log())
86#define OPT (BNC_PPP::t_pppClient::instance()->opt())
87
88#endif
Note: See TracBrowser for help on using the repository browser.