source: ntrip/trunk/BNC/src/pppInclude.h@ 9768

Last change on this file since 9768 was 9547, checked in by stuerze, 2 years ago

update regarding PPP

File size: 3.0 KB
Line 
1#ifndef PPP_H
2#define PPP_H
3
4#include <string>
5#include <vector>
6#include <newmat.h>
7
8#include "bncconst.h"
9#include "bnctime.h"
10#include "ephemeris.h"
11#include "t_prn.h"
12#include "satObs.h"
13
14namespace BNC_PPP {
15
16class t_except {
17 public:
18 t_except(const char* msg) {
19 _msg = msg;
20 }
21 ~t_except() {}
22 std::string what() {return _msg;}
23 private:
24 std::string _msg;
25};
26
27class t_output {
28 public:
29 bncTime _epoTime;
30 double _xyzRover[3];
31 double _covMatrix[6];
32 double _neu[3];
33 double _trp0;
34 double _trp;
35 double _trpStdev;
36 int _numSat;
37 double _hDop;
38 std::string _log;
39 bool _error;
40};
41
42class t_lc {
43 public:
44 enum type {dummy = 0, l1, l2, c1, c2, lIF, cIF, MW, CL, GIM, maxLc};
45
46 static bool includesPhase(type tt) {
47 switch (tt) {
48 case l1:
49 case l2:
50 case lIF:
51 case MW:
52 case CL:
53 return true;
54 case c1:
55 case c2:
56 case cIF:
57 return false;
58 case dummy:
59 case maxLc:
60 case GIM:
61 return false;
62 }
63 return false;
64 }
65
66 static bool includesCode(type tt) {
67 switch (tt) {
68 case c1:
69 case c2:
70 case cIF:
71 case MW:
72 case CL:
73 return true;
74 case l1:
75 case l2:
76 case lIF:
77 return false;
78 case dummy:
79 case maxLc:
80 case GIM:
81 return false;
82 }
83 return false;
84 }
85
86 static t_frequency::type toFreq(char sys, type tt) {
87 switch (tt) {
88 case l1: case c1:
89 if (sys == 'G') return t_frequency::G1;
90 else if (sys == 'R') return t_frequency::R1;
91 else if (sys == 'E') return t_frequency::E1;
92 else if (sys == 'C') return t_frequency::C2;
93 else return t_frequency::dummy;
94 case l2: case c2:
95 if (sys == 'G') return t_frequency::G2;
96 else if (sys == 'R') return t_frequency::R2;
97 else if (sys == 'E') return t_frequency::E5;
98 else if (sys == 'C') return t_frequency::C6;
99 else return t_frequency::dummy;
100 case lIF: case cIF: case MW: case CL:
101 return t_frequency::dummy;
102 case dummy:
103 case maxLc:
104 case GIM:
105 return t_frequency::dummy;
106 }
107 return t_frequency::dummy;
108 }
109
110 static std::string toString(type tt) {
111 switch (tt) {
112 case l1: return "l1";
113 case l2: return "l2";
114 case lIF: return "lIF";
115 case MW: return "MW";
116 case CL: return "CL";
117 case c1: return "c1";
118 case c2: return "c2";
119 case cIF: return "cIF";
120 case GIM: return "GIM";
121 case dummy:
122 case maxLc:
123 return "";
124 }
125 return "";
126 }
127};
128
129class interface_pppClient {
130 public:
131 virtual ~interface_pppClient() {};
132 virtual void processEpoch(const std::vector<t_satObs*>& satObs, t_output* output) = 0;
133 virtual void putEphemeris(const t_eph* eph) = 0;
134 virtual void putOrbCorrections(const std::vector<t_orbCorr*>& corr) = 0;
135 virtual void putClkCorrections(const std::vector<t_clkCorr*>& corr) = 0;
136 virtual void putCodeBiases(const std::vector<t_satCodeBias*>& satCodeBias) = 0;
137};
138
139} // namespace BNC_PPP
140
141#endif
Note: See TracBrowser for help on using the repository browser.