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

Last change on this file since 5844 was 5826, checked in by mervart, 10 years ago
File size: 1.6 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 processLC(const std::vector<t_lc::type>& LCs, std::vector<t_pppSatObs*>& obsVector);
53
54 t_irc detectCycleSlips(const std::vector<t_lc::type>& LCs,
55 const std::vector<t_pppSatObs*>& obsVector);
56
57 t_irc resetAmb(t_prn prn, const std::vector<t_pppSatObs*>& obsVector,
58 SymmetricMatrix* QSav = 0, ColumnVector* xSav = 0);
59
60 void cmpDOP(const std::vector<t_lc::type>& LCs, const Matrix& AA);
61
62 bncTime _epoTime;
63 t_pppParlist* _parlist;
64 SymmetricMatrix _QFlt;
65 ColumnVector _xFlt;
66 ColumnVector _x0;
67 t_slip _slips[t_prn::MAXPRN+1];
68 int _numSat;
69 t_dop _dop;
70};
71
72}
73
74#endif
Note: See TracBrowser for help on using the repository browser.