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

Last change on this file since 10793 was 10791, checked in by mervart, 3 weeks ago

BNC Multifrequency and PPPAR Client (initial version)

  • Property svn:keywords set to Author Date Id Rev URL;svn:eol-style=native
  • Property svn:mime-type set to text/plain
File size: 4.5 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 _vTec = 0;
54}
55
56// Destructor
57/////////////////////////////////////////////////////////////////////////////
58t_pppObsPool::~t_pppObsPool() {
59 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
60 delete _satCodeBiases[ii];
61 }
62 for (unsigned ii = 0; ii <= t_prn::MAXPRN; ii++) {
63 delete _satPhaseBiases[ii];
64 }
65 delete _vTec;
66 while (_epochs.size() > 0) {
67 delete _epochs.front();
68 _epochs.pop_front();
69 }
70}
71
72//
73/////////////////////////////////////////////////////////////////////////////
74void t_pppObsPool::putCodeBias(t_satCodeBias* satCodeBias) {
75 int iPrn = satCodeBias->_prn.toInt();
76 delete _satCodeBiases[iPrn];
77 _satCodeBiases[iPrn] = satCodeBias;
78 if (OPT->_logMode > t_pppOptions::normal) {
79 LOG << "codeBias " << string(satCodeBias->_time) << ' ' << satCodeBias->_prn.toString();
80 for (const auto& bias : satCodeBias->_bias) {
81 LOG << " " << bias._rnxType2ch << ' ' << setw(7) << setprecision(3) << bias._value;
82 }
83 LOG << endl;
84 }
85}
86
87//
88/////////////////////////////////////////////////////////////////////////////
89void t_pppObsPool::putPhaseBias(t_satPhaseBias* satPhaseBias) {
90 int iPrn = satPhaseBias->_prn.toInt();
91 delete _satPhaseBiases[iPrn];
92 _satPhaseBiases[iPrn] = satPhaseBias;
93 if (OPT->_logMode > t_pppOptions::normal) {
94 LOG.setf(ios::fixed);
95 LOG << "phaseBias " << string(satPhaseBias->_time) << ' ' << satPhaseBias->_prn.toString()
96 << ' ' << setw(7) << setprecision(2) << satPhaseBias->_yaw * 180.0 / M_PI
97 << ' ' << setw(7) << setprecision(3) << satPhaseBias->_yawRate * 180.0 / M_PI;
98 for (const auto& bias : satPhaseBias->_bias) {
99 LOG << " " << bias._rnxType2ch << ' ' << setw(2) << bias._jumpCounter;
100 if (bias._fixIndicator) {
101 LOG << " x ";
102 }
103 else {
104 LOG << " . ";
105 }
106 LOG << setw(6) << setprecision(3) << bias._value;
107 }
108 LOG << endl;
109 }
110}
111
112//
113/////////////////////////////////////////////////////////////////////////////
114void t_pppObsPool::clearCodeBiases(char sys) {
115 for (unsigned iPrn = 1; iPrn <= t_prn::MAXPRN; ++iPrn) {
116 t_prn prn; prn.set(iPrn);
117 if (prn.system() == sys) {
118 delete _satCodeBiases[iPrn];
119 _satCodeBiases[iPrn] = 0;
120 }
121 }
122}
123
124//
125/////////////////////////////////////////////////////////////////////////////
126void t_pppObsPool::clearPhaseBiases(char sys) {
127 for (unsigned iPrn = 1; iPrn <= t_prn::MAXPRN; ++iPrn) {
128 t_prn prn; prn.set(iPrn);
129 if (prn.system() == sys) {
130 delete _satPhaseBiases[iPrn];
131 _satPhaseBiases[iPrn] = 0;
132 }
133 }
134}
135
136//
137/////////////////////////////////////////////////////////////////////////////
138void t_pppObsPool::putTec(t_vTec* vTec) {
139 delete _vTec;
140 _vTec = new t_vTec(*vTec);
141 delete vTec;
142}
143
144//
145/////////////////////////////////////////////////////////////////////////////
146void t_pppObsPool::putEpoch(const bncTime& epoTime, vector<t_pppSatObs*>& obsVector,
147 bool pseudoObsIono) {
148 const unsigned MAXSIZE = 2;
149 _epochs.push_back(new t_epoch(epoTime, obsVector, pseudoObsIono));
150
151 if (_epochs.size() > MAXSIZE) {
152 delete _epochs.front();
153 _epochs.pop_front();
154 }
155}
Note: See TracBrowser for help on using the repository browser.