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

Last change on this file since 3128 was 3052, checked in by mervart, 14 years ago
File size: 2.3 KB
RevLine 
[2898]1
2#ifndef BNCCOMB_H
3#define BNCCOMB_H
4
[3035]5#include <fstream>
[2933]6#include <newmat.h>
[2906]7#include "bncephuser.h"
[2898]8
[2927]9class cmbCaster;
[3046]10class bnsSP3;
[3052]11class bncAntex;
[2927]12
[2933]13class cmbParam {
14 public:
[2934]15 enum parType {AC_offset, Sat_offset, clk};
[3032]16 cmbParam(parType type_, int index_, const QString& ac_,
17 const QString& prn_, double sig_0_, double sig_P_);
[2933]18 ~cmbParam();
[3032]19 double partial(const QString& AC_, t_corr* corr);
[2990]20 QString toString() const;
[2933]21 parType type;
22 int index;
23 QString AC;
24 QString prn;
25 double xx;
[3032]26 double sig_0;
27 double sig_P;
[2933]28};
29
[2906]30class bncComb : public bncEphUser {
[2898]31 Q_OBJECT
32
33 public:
34 bncComb();
35 ~bncComb();
36 void processCorrLine(const QString& staID, const QString& line);
[2918]37 int nStreams() const {return _ACs.size();}
[2898]38
39 signals:
40 void newMessage(QByteArray msg, bool showOnScreen);
41
42 private:
[2918]43 class cmbEpoch {
44 public:
[2927]45 cmbEpoch(const QString& name) {acName = name;}
[2918]46 ~cmbEpoch() {
47 QMapIterator<QString, t_corr*> it(corr);
48 while (it.hasNext()) {
49 it.next();
50 delete it.value();
51 }
52 }
[2927]53 QString acName;
[2918]54 bncTime time;
55 QMap<QString, t_corr*> corr; // Corrections (key is PRN)
56 };
57
58 class cmbAC {
59 public:
60 cmbAC() {}
61 ~cmbAC() {
62 QListIterator<cmbEpoch*> it(epochs);
63 while (it.hasNext()) {
64 delete it.next();
65 }
66 }
67 QString mountPoint;
68 QString name;
69 double weight;
70 QQueue<cmbEpoch*> epochs; // List of Epochs with Corrections
71 };
72
[2927]73 void processEpochs(const QList<cmbEpoch*>& epochs);
[2928]74 void dumpResults(const bncTime& resTime,
75 const QMap<QString, t_corr*>& resCorr);
[3015]76 void printResults(QTextStream& out, const bncTime& resTime,
[3011]77 const QMap<QString, t_corr*>& resCorr);
[3029]78 void switchToLastEph(const t_eph* lastEph, t_corr* corr);
[2918]79
80 QMap<QString, cmbAC*> _ACs; // Analytical Centers (key is mountpoint)
[2924]81 bncTime _processedBeforeTime;
[2927]82 cmbCaster* _caster;
[2933]83 QVector<cmbParam*> _params;
84 SymmetricMatrix _QQ;
[2990]85 QByteArray _log;
[3032]86 QString _masterAC;
[3035]87 QString _outNameSkl;
88 QString _outName;
89 std::ofstream* _out;
[3046]90 bnsSP3* _sp3;
[3047]91 bool _append;
[3052]92 bncAntex* _antex;
[2898]93};
94
95#endif
Note: See TracBrowser for help on using the repository browser.