source: ntrip/trunk/BNC/src/satObs.h@ 6561

Last change on this file since 6561 was 6556, checked in by stuerze, 9 years ago

separate consideration of ssr update interval

File size: 4.4 KB
Line 
1#ifndef SATOBS_H
2#define SATOBS_H
3
4#include <string>
5#include <vector>
6#include <newmat.h>
7
8#include <QtCore>
9
10#include "bncconst.h"
11#include "bnctime.h"
12#include "t_prn.h"
13
14class t_frqObs {
15 public:
16 t_frqObs() {
17 _code = 0.0;
18 _codeValid = false;
19 _phase = 0.0;
20 _phaseValid = false;
21 _doppler = 0.0;
22 _dopplerValid = false;
23 _snr = 0.0;
24 _snrValid = false;
25 _slip = false;
26 _slipCounter = 0;
27 _biasJumpCounter = 0;
28 }
29 std::string _rnxType2ch;
30 double _code;
31 bool _codeValid;
32 double _phase;
33 bool _phaseValid;
34 double _doppler;
35 bool _dopplerValid;
36 double _snr;
37 bool _snrValid;
38 bool _slip;
39 int _slipCounter;
40 int _biasJumpCounter;
41};
42
43class t_satObs {
44 public:
45 t_satObs() {}
46 t_satObs(const t_satObs& old) { // copy constructor (deep copy)
47 _staID = old._staID;
48 _prn = old._prn;
49 _time = old._time;
50 for (unsigned ii = 0; ii < old._obs.size(); ii++) {
51 _obs.push_back(new t_frqObs(*old._obs[ii]));
52 }
53 }
54 ~t_satObs() {for (unsigned ii = 0; ii < _obs.size(); ii++) delete _obs[ii];}
55 std::string _staID;
56 t_prn _prn;
57 bncTime _time;
58 std::vector<t_frqObs*> _obs;
59};
60
61class t_orbCorr {
62 public:
63 t_orbCorr();
64 static void writeEpoch(std::ostream* out, const QList<t_orbCorr>& corrList);
65 static void readEpoch(const std::string& epoLine, std::istream& in, QList<t_orbCorr>& corrList);
66 std::string _staID;
67 t_prn _prn;
68 unsigned short _iod;
69 bncTime _time;
70 unsigned int _updateInt;
71 char _system;
72 ColumnVector _xr;
73 ColumnVector _dotXr;
74};
75
76class t_clkCorr {
77 public:
78 t_clkCorr();
79 static void writeEpoch(std::ostream* out, const QList<t_clkCorr>& corrList);
80 static void readEpoch(const std::string& epoLine, std::istream& in, QList<t_clkCorr>& corrList);
81 std::string _staID;
82 t_prn _prn;
83 unsigned short _iod;
84 bncTime _time;
85 unsigned int _updateInt;
86 double _dClk;
87 double _dotDClk;
88 double _dotDotDClk;
89};
90
91class t_frqCodeBias {
92 public:
93 t_frqCodeBias() {
94 _value = 0.0;
95 }
96 std::string _rnxType2ch;
97 double _value;
98};
99
100class t_satCodeBias {
101 public:
102 static void writeEpoch(std::ostream* out, const QList<t_satCodeBias>& biasList);
103 static void readEpoch(const std::string& epoLine, std::istream& in, QList<t_satCodeBias>& biasList);
104 std::string _staID;
105 t_prn _prn;
106 bncTime _time;
107 unsigned int _updateInt;
108 std::vector<t_frqCodeBias> _bias;
109};
110
111class t_frqPhaseBias {
112 public:
113 t_frqPhaseBias() {
114 _value = 0.0;
115 _fixIndicator = 0;
116 _fixWideLaneIndicator = 0;
117 _jumpCounter = 0;
118 }
119 std::string _rnxType2ch;
120 double _value;
121 int _fixIndicator;
122 int _fixWideLaneIndicator;
123 int _jumpCounter;
124};
125
126class t_satPhaseBias {
127 public:
128 t_satPhaseBias() {
129 _yawDeg = 0.0;
130 _yawDegRate = 0.0;
131 }
132 static void writeEpoch(std::ostream* out, const QList<t_satPhaseBias>& biasList);
133 static void readEpoch(const std::string& epoLine, std::istream& in, QList<t_satPhaseBias>& biasList);
134 std::string _staID;
135 t_prn _prn;
136 bncTime _time;
137 unsigned int _updateInt;
138 double _yawDeg;
139 double _yawDegRate;
140 std::vector<t_frqPhaseBias> _bias;
141};
142
143class t_vTecLayer {
144 public:
145 double _height;
146 Matrix _C;
147 Matrix _S;
148};
149
150class t_vTec {
151 public:
152 static void write(std::ostream* out, const t_vTec& vTec);
153 static void read(const std::string& epoLine, std::istream& in, t_vTec& vTec);
154 std::string _staID;
155 bncTime _time;
156 unsigned int _updateInt;
157 std::vector<t_vTecLayer> _layers;
158};
159
160class t_corrSSR {
161 public:
162 enum e_type {clkCorr, orbCorr, codeBias, phaseBias, vTec, unknown};
163 static e_type readEpoLine(const std::string& line, bncTime& epoTime,
164 unsigned int& updateInt, int& numEntries, std::string& staID);
165};
166
167#endif
Note: See TracBrowser for help on using the repository browser.