source: ntrip/trunk/BNC/combination/bnccomb.h@ 3028

Last change on this file since 3028 was 3028, checked in by mervart, 13 years ago
File size: 2.2 KB
Line 
1
2#ifndef BNCCOMB_H
3#define BNCCOMB_H
4
5#include <newmat.h>
6#include "bncephuser.h"
7
8class cmbCaster;
9
10class cmbParam {
11 public:
12 enum parType {AC_offset, Sat_offset, clk};
13 cmbParam(parType typeIn, int indexIn,
14 const QString& acIn, const QString& prnIn);
15 ~cmbParam();
16 double partial(const QString& acIn, t_corr* corr);
17 QString toString() const;
18 parType type;
19 int index;
20 QString AC;
21 QString prn;
22 double xx;
23 int iod;
24};
25
26class bncComb : public bncEphUser {
27 Q_OBJECT
28
29 public:
30 bncComb();
31 ~bncComb();
32 void processCorrLine(const QString& staID, const QString& line);
33 int nStreams() const {return _ACs.size();}
34
35 signals:
36 void newMessage(QByteArray msg, bool showOnScreen);
37
38 private:
39 class cmbEpoch {
40 public:
41 cmbEpoch(const QString& name) {acName = name;}
42 ~cmbEpoch() {
43 QMapIterator<QString, t_corr*> it(corr);
44 while (it.hasNext()) {
45 it.next();
46 delete it.value();
47 }
48 }
49 QString acName;
50 bncTime time;
51 QMap<QString, t_corr*> corr; // Corrections (key is PRN)
52 };
53
54 class cmbAC {
55 public:
56 cmbAC() {}
57 ~cmbAC() {
58 QListIterator<cmbEpoch*> it(epochs);
59 while (it.hasNext()) {
60 delete it.next();
61 }
62 }
63 QString mountPoint;
64 QString name;
65 double weight;
66 QQueue<cmbEpoch*> epochs; // List of Epochs with Corrections
67 };
68
69 void processEpochs(const QList<cmbEpoch*>& epochs);
70 void dumpResults(const bncTime& resTime,
71 const QMap<QString, t_corr*>& resCorr);
72 void printResults(QTextStream& out, const bncTime& resTime,
73 const QMap<QString, t_corr*>& resCorr);
74 void switchToLastEph(const QString& ACname, const t_eph* lastEph,
75 const t_eph* prevEph, t_corr* newCorr);
76
77 QMap<QString, cmbAC*> _ACs; // Analytical Centers (key is mountpoint)
78 bncTime _processedBeforeTime;
79 cmbCaster* _caster;
80 QVector<cmbParam*> _params;
81 double _sigACOff;
82 double _sigSatOff;
83 double _sigClk;
84 SymmetricMatrix _QQ;
85 QByteArray _log;
86};
87
88#endif
Note: See TracBrowser for help on using the repository browser.