1 | #ifndef OBSPOOL_H
|
---|
2 | #define OBSPOOL_H
|
---|
3 |
|
---|
4 | #include <vector>
|
---|
5 | #include <deque>
|
---|
6 | #include <QMap>
|
---|
7 | #include "pppSatObs.h"
|
---|
8 | #include "bnctime.h"
|
---|
9 | #include "pppRefSat.h"
|
---|
10 |
|
---|
11 | namespace BNC_PPP {
|
---|
12 |
|
---|
13 | class t_pppObsPool {
|
---|
14 | public:
|
---|
15 |
|
---|
16 | class t_epoch {
|
---|
17 | public:
|
---|
18 | t_epoch(const bncTime& epoTime, std::vector<t_pppSatObs*>& obsVector,
|
---|
19 | bool pseudoObsIono);
|
---|
20 | ~t_epoch();
|
---|
21 | std::vector<t_pppSatObs*>& obsVector() {return _obsVector;}
|
---|
22 | const std::vector<t_pppSatObs*>& obsVector() const {return _obsVector;}
|
---|
23 | const bncTime& epoTime() const {return _epoTime;}
|
---|
24 | bool pseudoObsIono() const {return _pseudoObsIono;}
|
---|
25 | private:
|
---|
26 | bncTime _epoTime;
|
---|
27 | std::vector<t_pppSatObs*> _obsVector;
|
---|
28 | bool _pseudoObsIono;
|
---|
29 | };
|
---|
30 |
|
---|
31 | t_pppObsPool();
|
---|
32 | ~t_pppObsPool();
|
---|
33 | void putCodeBias(t_satCodeBias* satCodeBias);
|
---|
34 | void putPhaseBias(t_satPhaseBias* satPhaseBias);
|
---|
35 | void putTec(t_vTec* _vTec);
|
---|
36 |
|
---|
37 | void putEpoch(const bncTime& epoTime, std::vector<t_pppSatObs*>& obsVector,
|
---|
38 | bool pseudoObs);
|
---|
39 |
|
---|
40 | void deleteLastEpoch();
|
---|
41 |
|
---|
42 | const t_satCodeBias* satCodeBias(const t_prn& prn) const {
|
---|
43 | return _satCodeBiases[prn.toInt()];
|
---|
44 | }
|
---|
45 | const t_satPhaseBias* satPhaseBias(const t_prn& prn) const {
|
---|
46 | return _satPhaseBiases[prn.toInt()];
|
---|
47 | }
|
---|
48 | const t_vTec* vTec() const {return _vTec;}
|
---|
49 |
|
---|
50 | t_epoch* lastEpoch() {
|
---|
51 | if (_epochs.size()) {
|
---|
52 | return _epochs.back();
|
---|
53 | }
|
---|
54 | else {
|
---|
55 | return 0;
|
---|
56 | }
|
---|
57 | }
|
---|
58 |
|
---|
59 | void initRefSatMapElement(char system) {
|
---|
60 | _refSatMap[system] = new t_pppRefSat();
|
---|
61 | }
|
---|
62 | void clearRefSatMap() {
|
---|
63 | QMapIterator<char, t_pppRefSat*> it(_refSatMap);
|
---|
64 | while (it.hasNext()) {
|
---|
65 | it.next();
|
---|
66 | delete it.value();
|
---|
67 | }
|
---|
68 | _refSatMap.clear();
|
---|
69 | }
|
---|
70 | t_pppRefSat* getRefSatMapElement(char system) {
|
---|
71 | return _refSatMap[system];
|
---|
72 | }
|
---|
73 | QMap<char, t_pppRefSat*> getRefSatMap() {return _refSatMap;}
|
---|
74 |
|
---|
75 | void setRefSatChangeRequired(bool refSatChangeRequired) {
|
---|
76 | _refSatChangeRequired = refSatChangeRequired;
|
---|
77 | }
|
---|
78 | bool refSatChangeRequired() {return _refSatChangeRequired;}
|
---|
79 |
|
---|
80 | void setHistoricalRefSatList(QList<t_prn>& historicalRefSats) {_historicalRefSats = historicalRefSats;}
|
---|
81 |
|
---|
82 | bool hasHistoricalRefSat(t_prn prn) {return _historicalRefSats.contains(prn);}
|
---|
83 |
|
---|
84 | private:
|
---|
85 | t_satCodeBias* _satCodeBiases[t_prn::MAXPRN+1];
|
---|
86 | t_satPhaseBias* _satPhaseBiases[t_prn::MAXPRN+1];
|
---|
87 | t_vTec* _vTec;
|
---|
88 | std::deque<t_epoch*> _epochs;
|
---|
89 | QMap<char, t_pppRefSat*> _refSatMap;
|
---|
90 | bool _refSatChangeRequired;
|
---|
91 | QList<t_prn> _historicalRefSats;
|
---|
92 | };
|
---|
93 |
|
---|
94 | }
|
---|
95 |
|
---|
96 | #endif
|
---|