source: ntrip/trunk/BNC/src/combination/bnccomb.h@ 6154

Last change on this file since 6154 was 6154, checked in by mervart, 10 years ago
File size: 3.0 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"
[6141]8#include "satObs.h"
[2898]9
[3201]10class bncRtnetDecoder;
[3181]11class bncSP3;
[3052]12class bncAntex;
[2927]13
[2906]14class bncComb : public bncEphUser {
[2898]15 Q_OBJECT
16 public:
17 bncComb();
[3297]18 virtual ~bncComb();
[2918]19 int nStreams() const {return _ACs.size();}
[2898]20
[5583]21 public slots:
22 void slotProviderIDChanged(QString mountPoint);
[6153]23 void slotNewOrbCorrections(QList<t_orbCorr> orbCorr);
24 void slotNewClkCorrections(QList<t_clkCorr> clkCorr);
[5583]25
[2898]26 signals:
27 void newMessage(QByteArray msg, bool showOnScreen);
[6153]28 void newClkCorrections(QList<t_clkCorr> clkCorr);
[2898]29
30 private:
[3470]31 enum e_method{singleEpoch, filter};
32
[6154]33 class cmbParam {
34 public:
35 enum parType {offACgps, offACglo, offACSat, clkSat};
36 cmbParam(parType type_, int index_, const QString& ac_, const QString& prn_);
37 ~cmbParam();
38 double partial(const QString& AC_, const QString& prn_);
39 QString toString() const;
40 parType type;
41 int index;
42 QString AC;
43 QString prn;
44 double xx;
45 double sig0;
46 double sigP;
47 bool epoSpec;
48 const t_eph* eph;
49 };
50
[2918]51 class cmbAC {
52 public:
[3433]53 cmbAC() {
54 weight = 0.0;
55 numObs = 0;
56 }
[3430]57 ~cmbAC() {}
[3434]58 QString mountPoint;
59 QString name;
60 double weight;
61 unsigned numObs;
[2918]62 };
63
[6141]64 class cmbCorr : public t_clkCorr {
[3423]65 public:
[3488]66 QString acName;
67 ColumnVector diffRao;
[6141]68 QString ID() {return acName + "_" + QString(_prn.toString().c_str());}
[3423]69 };
70
[3434]71 class cmbEpoch {
72 public:
73 cmbEpoch() {}
74 ~cmbEpoch() {
75 QVectorIterator<cmbCorr*> it(corrs);
76 while (it.hasNext()) {
77 delete it.next();
78 }
79 }
80 QVector<cmbCorr*> corrs;
81 };
82
[6154]83 void processEpoch();
84 t_irc processEpoch_filter(QTextStream& out, QMap<QString, t_clkCorr*>& resCorr,
[3475]85 ColumnVector& dx);
[6154]86 t_irc processEpoch_singleEpoch(QTextStream& out, QMap<QString, t_clkCorr*>& resCorr,
[3475]87 ColumnVector& dx);
[3455]88 t_irc createAmat(Matrix& AA, ColumnVector& ll, DiagonalMatrix& PP,
[6141]89 const ColumnVector& x0, QMap<QString, t_clkCorr*>& resCorr);
[6154]90 void dumpResults(const QMap<QString, t_clkCorr*>& resCorr);
91 void printResults(QTextStream& out, const QMap<QString, t_clkCorr*>& resCorr);
92 void switchToLastEph(const t_eph* lastEph, t_clkCorr* corr);
[3497]93 t_irc checkOrbits(QTextStream& out);
[6154]94 t_irc mergeOrbitCorr(const cmbCorr* orbitCorr, cmbCorr* clkCorr);
[2918]95
[3556]96 QVector<cmbCorr*>& corrs() {return _buffer[_resTime].corrs;}
[3434]97
98 QList<cmbAC*> _ACs;
99 bncTime _resTime;
100 QVector<cmbParam*> _params;
[3556]101 QMap<bncTime, cmbEpoch> _buffer;
[3434]102 bncRtnetDecoder* _rtnetDecoder;
103 SymmetricMatrix _QQ;
104 QByteArray _log;
105 bncAntex* _antex;
106 double _MAXRES;
[3453]107 QString _masterOrbitAC;
[3455]108 unsigned _masterMissingEpochs;
[3470]109 e_method _method;
[3483]110 bool _useGlonass;
[4183]111 int _cmbSampl;
[3588]112 QMap<QString, cmbCorr*> _orbitCorrs;
[2898]113};
114
115#endif
Note: See TracBrowser for help on using the repository browser.