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

Last change on this file since 6498 was 6498, checked in by mervart, 9 years ago
File size: 4.1 KB
RevLine 
[6135]1#ifndef SATOBS_H
2#define SATOBS_H
3
4#include <string>
5#include <vector>
6#include <newmat.h>
7
[6455]8#include <QtCore>
9
[6135]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() {}
[6137]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 }
[6135]54 ~t_satObs() {for (unsigned ii = 0; ii < _obs.size(); ii++) delete _obs[ii];}
[6137]55 std::string _staID;
[6135]56 t_prn _prn;
57 bncTime _time;
58 std::vector<t_frqObs*> _obs;
59};
60
61class t_orbCorr {
62 public:
[6466]63 t_orbCorr();
[6455]64 static void writeEpoch(std::ostream* out, const QList<t_orbCorr>& corrList);
[6498]65 static void readEpoch(const std::string epoLine, std::istream& in, QList<t_orbCorr>& corrList);
[6141]66 std::string _staID;
[6135]67 t_prn _prn;
68 unsigned short _iod;
69 bncTime _time;
70 char _system;
[6157]71 ColumnVector _xr;
72 ColumnVector _dotXr;
[6135]73};
74
75class t_clkCorr {
76 public:
[6466]77 t_clkCorr();
[6455]78 static void writeEpoch(std::ostream* out, const QList<t_clkCorr>& corrList);
[6498]79 static void readEpoch(const std::string epoLine, std::istream& in, QList<t_clkCorr>& corrList);
[6141]80 std::string _staID;
[6135]81 t_prn _prn;
82 unsigned short _iod;
83 bncTime _time;
84 double _dClk;
85 double _dotDClk;
86 double _dotDotDClk;
87};
88
[6463]89class t_frqCodeBias {
[6135]90 public:
[6463]91 t_frqCodeBias() {
92 _value = 0.0;
[6135]93 }
94 std::string _rnxType2ch;
[6463]95 double _value;
[6135]96};
97
[6463]98class t_satCodeBias {
[6135]99 public:
[6475]100 static void writeEpoch(std::ostream* out, const QList<t_satCodeBias>& biasList);
[6498]101 static void readEpoch(const std::string epoLine, std::istream& in, QList<t_satCodeBias>& biasList);
[6463]102 std::string _staID;
103 t_prn _prn;
104 bncTime _time;
105 std::vector<t_frqCodeBias> _bias;
[6135]106};
107
[6481]108class t_frqPhaseBias {
109 public:
110 t_frqPhaseBias() {
111 _value = 0.0;
112 _fixIndicator = 0;
113 _fixWideLaneIndicator = 0;
114 _jumpCounter = 0;
115 }
116 std::string _rnxType2ch;
117 double _value;
118 int _fixIndicator;
119 int _fixWideLaneIndicator;
120 int _jumpCounter;
121};
122
123class t_satPhaseBias {
124 public:
125 t_satPhaseBias() {
126 _yawDeg = 0.0;
127 _yawDegRate = 0.0;
128 }
129 static void writeEpoch(std::ostream* out, const QList<t_satPhaseBias>& biasList);
[6498]130 static void readEpoch(const std::string epoLine, std::istream& in, QList<t_satPhaseBias>& biasList);
[6481]131 std::string _staID;
132 t_prn _prn;
133 bncTime _time;
134 double _yawDeg;
135 double _yawDegRate;
136 std::vector<t_frqPhaseBias> _bias;
137};
138
[6482]139class t_vTecLayer {
140 public:
141 double _height;
142 Matrix _C;
143 Matrix _S;
144};
145
146class t_vTec {
147 public:
148 static void write(std::ostream* out, const t_vTec& vTec);
[6498]149 static void read(const std::string epoLine, std::istream& in, t_vTec& vTec);
[6482]150 std::string _staID;
151 bncTime _time;
152 std::vector<t_vTecLayer> _layers;
153};
154
[6498]155class t_corrSSR {
156 public:
157 enum e_type {clkCorr, orbCorr, codeBias, phaseBias, vTec, unknown};
158 static e_type readEpoLine(const std::string line, bncTime& epoTime);
159};
160
[6135]161#endif
Note: See TracBrowser for help on using the repository browser.