source: ntrip/trunk/BNC/src/PPP/pppFilter.h@ 6003

Last change on this file since 6003 was 6003, checked in by mervart, 10 years ago
File size: 1.7 KB
Line 
1#ifndef FILTER_H
2#define FILTER_H
3
4#include <vector>
5#include <newmat.h>
6#include "pppInclude.h"
7#include "pppParlist.h"
8#include "bnctime.h"
9#include "t_prn.h"
10
11namespace BNC_PPP {
12
13class t_pppParlist;
14class t_pppObsPool;
15class t_pppSatObs;
16
17class t_pppFilter {
18 public:
19 t_pppFilter();
20 ~t_pppFilter();
21
22 t_irc processEpoch(t_pppObsPool* obsPool);
23
24 const ColumnVector& x() const {return _xFlt;}
25 const SymmetricMatrix& Q() const {return _QFlt;}
26
27 int numSat() const {return _numSat;}
28 double PDOP() const {return _dop.P;}
29 double GDOP() const {return _dop.G;}
30
31 private:
32 class t_slip {
33 public:
34 t_slip() {
35 _slip = false;
36 _obsSlipCounter = -1;
37 _biasJumpCounter = -1;
38 }
39 bool _slip;
40 int _obsSlipCounter;
41 int _biasJumpCounter;
42 };
43
44 class t_dop {
45 public:
46 t_dop() {reset();}
47 void reset() {P = T = G = 0.0;}
48 double P;
49 double T;
50 double G;
51 };
52 t_irc processSystem(const std::vector<t_lc::type>& LCs,
53 const std::vector<t_pppSatObs*>& obsVector);
54
55 t_irc detectCycleSlips(const std::vector<t_lc::type>& LCs,
56 const std::vector<t_pppSatObs*>& obsVector);
57
58 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector,
59 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0);
60
61 void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
62
63 void predictCovCrdPart(const SymmetricMatrix& QFltOld, const ColumnVector& xFltOld);
64
65 bncTime _epoTime;
66 t_pppParlist* _parlist;
67 SymmetricMatrix _QFlt;
68 ColumnVector _xFlt;
69 ColumnVector _x0;
70 t_slip _slips[t_prn::MAXPRN+1];
71 int _numSat;
72 t_dop _dop;
73};
74
75}
76
77#endif
Note: See TracBrowser for help on using the repository browser.