source: ntrip/trunk/BNC/src/PPP/pppObsPool.cpp@ 11041

Last change on this file since 11041 was 11041, checked in by stuerze, 13 hours ago

updates regarding RTCM-SSR

  • Property svn:keywords set to Author Date Id Rev URL;svn:eol-style=native
  • Property svn:mime-type set to text/plain
File size: 5.2 KB
Line 
1/* -------------------------------------------------------------------------
2 * BKG NTRIP Client
3 * -------------------------------------------------------------------------
4 *
5 * Class: t_pppObsPool
6 *
7 * Purpose: Buffer with observations
8 *
9 * Author: L. Mervart
10 *
11 * Created: 29-Jul-2014
12 *
13 * Changes:
14 *
15 * -----------------------------------------------------------------------*/
16
17#include <iomanip>
18#include "pppObsPool.h"
19#include "pppClient.h"
20
21using namespace BNC_PPP;
22using namespace std;
23
24// Constructor
25/////////////////////////////////////////////////////////////////////////////
26t_pppObsPool::t_epoch::t_epoch(const bncTime& epoTime, vector<t_pppSatObs*>& obsVector,
27 bool pseudoObsIono) {
28 _epoTime = epoTime;
29 _pseudoObsIono = pseudoObsIono;
30 for (unsigned ii = 0; ii < obsVector.size(); ii++) {
31 _obsVector.push_back(obsVector[ii]);
32 }
33 obsVector.clear();
34}
35
36// Destructor
37/////////////////////////////////////////////////////////////////////////////
38t_pppObsPool::t_epoch::~t_epoch() {
39 for (unsigned ii = 0; ii < _obsVector.size(); ii++) {
40 delete _obsVector[ii];
41 }
42}
43
44// Constructor
45/////////////////////////////////////////////////////////////////////////////
46t_pppObsPool::t_pppObsPool() {
47 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
48 _satCodeBiases[ii] = 0;
49 }
50 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
51 _satPhaseBiases[ii] = 0;
52 }
53 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
54 _satAntennas[ii] = 0;
55 }
56 _vTec = 0;
57 _metaData = 0;
58}
59
60// Destructor
61/////////////////////////////////////////////////////////////////////////////
62t_pppObsPool::~t_pppObsPool() {
63 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
64 delete _satCodeBiases[ii];
65 }
66 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
67 delete _satPhaseBiases[ii];
68 }
69 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
70 delete _satAntennas[ii];
71 }
72 delete _vTec;
73 delete _metaData;
74 while (_epochs.size() > 0) {
75 delete _epochs.front();
76 _epochs.pop_front();
77 }
78}
79
80//
81/////////////////////////////////////////////////////////////////////////////
82void t_pppObsPool::putCodeBias(t_satCodeBias* satCodeBias) {
83 int iPrn = satCodeBias->_prn.toInt();
84 delete _satCodeBiases[iPrn];
85 _satCodeBiases[iPrn] = satCodeBias;
86 if (OPT->_logMode > t_pppOptions::normal) {
87 LOG << "codeBias " << string(satCodeBias->_time) << ' ' << satCodeBias->_prn.toString();
88 for (const auto& bias : satCodeBias->_bias) {
89 LOG << " " << bias._rnxType2ch << ' ' << setw(7) << setprecision(3) << bias._value;
90 }
91 LOG << endl;
92 }
93}
94
95//
96/////////////////////////////////////////////////////////////////////////////
97void t_pppObsPool::putPhaseBias(t_satPhaseBias* satPhaseBias) {
98 int iPrn = satPhaseBias->_prn.toInt();
99 delete _satPhaseBiases[iPrn];
100 _satPhaseBiases[iPrn] = satPhaseBias;
101 if (OPT->_logMode > t_pppOptions::normal) {
102 LOG.setf(ios::fixed);
103 LOG << "phaseBias " << string(satPhaseBias->_time) << ' ' << satPhaseBias->_prn.toString()
104 << ' ' << setw(7) << setprecision(2) << satPhaseBias->_yaw * 180.0 / M_PI
105 << ' ' << setw(7) << setprecision(3) << satPhaseBias->_yawRate * 180.0 / M_PI;
106 for (const auto& bias : satPhaseBias->_bias) {
107 LOG << " " << bias._rnxType2ch << ' ' << setw(2) << bias._jumpCounter;
108 if (bias._fixIndicator) {
109 LOG << " x ";
110 }
111 else {
112 LOG << " . ";
113 }
114 LOG << setw(6) << setprecision(3) << bias._value;
115 }
116 LOG << endl;
117 }
118}
119
120//
121/////////////////////////////////////////////////////////////////////////////
122void t_pppObsPool::putSatAntenna(t_satAntenna* satAntenna) {
123 int iPrn = satAntenna->_prn.toInt();
124 delete _satAntennas[iPrn];
125 _satAntennas[iPrn] = satAntenna;
126}
127
128//
129/////////////////////////////////////////////////////////////////////////////
130void t_pppObsPool::clearCodeBiases(char sys) {
131 for (unsigned iPrn = 1; iPrn <= t_prn::MAXPRN; ++iPrn) {
132 t_prn prn; prn.set(iPrn);
133 if (prn.system() == sys) {
134 delete _satCodeBiases[iPrn];
135 _satCodeBiases[iPrn] = 0;
136 }
137 }
138}
139
140//
141/////////////////////////////////////////////////////////////////////////////
142void t_pppObsPool::clearPhaseBiases(char sys) {
143 for (unsigned iPrn = 1; iPrn <= t_prn::MAXPRN; ++iPrn) {
144 t_prn prn; prn.set(iPrn);
145 if (prn.system() == sys) {
146 delete _satPhaseBiases[iPrn];
147 _satPhaseBiases[iPrn] = 0;
148 }
149 }
150}
151
152//
153/////////////////////////////////////////////////////////////////////////////
154void t_pppObsPool::putTec(t_vTec* vTec) {
155 delete _vTec;
156 _vTec = new t_vTec(*vTec);
157 delete vTec;
158}
159
160//
161/////////////////////////////////////////////////////////////////////////////
162void t_pppObsPool::putMetaData(t_metaData* metaData) {
163 delete _metaData;
164 _metaData = new t_metaData(*metaData);
165 delete metaData;
166}
167
168//
169/////////////////////////////////////////////////////////////////////////////
170void t_pppObsPool::putEpoch(const bncTime& epoTime, vector<t_pppSatObs*>& obsVector,
171 bool pseudoObsIono) {
172 const unsigned MAXSIZE = 2;
173 _epochs.push_back(new t_epoch(epoTime, obsVector, pseudoObsIono));
174
175 if (_epochs.size() > MAXSIZE) {
176 delete _epochs.front();
177 _epochs.pop_front();
178 }
179}
Note: See TracBrowser for help on using the repository browser.