1 | #ifndef BNCRTNETUPLOADCASTER_H |
---|
2 | #define BNCRTNETUPLOADCASTER_H |
---|
3 | |
---|
4 | #include <newmat.h> |
---|
5 | #include "bncuploadcaster.h" |
---|
6 | #include "bnctime.h" |
---|
7 | #include "ephemeris.h" |
---|
8 | #include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h" |
---|
9 | #include "../RTCM3/clock_and_orbit/clock_orbit_igs.h" |
---|
10 | |
---|
11 | class bncEphUser; |
---|
12 | class bncoutf; |
---|
13 | class bncClockRinex; |
---|
14 | class bncSP3; |
---|
15 | |
---|
16 | class bncRtnetUploadCaster : public bncUploadCaster { |
---|
17 | Q_OBJECT |
---|
18 | public: |
---|
19 | bncRtnetUploadCaster(const QString& mountpoint, |
---|
20 | const QString& outHost, int outPort, |
---|
21 | const QString& ntripVersion, const QString& userName, |
---|
22 | const QString& password, |
---|
23 | const QString& crdTrafo, const QString& ssrFormat, |
---|
24 | bool CoM, |
---|
25 | const QString& sp3FileName, |
---|
26 | const QString& rnxFileName, |
---|
27 | int PID, int SID, int IOD, int iRow); |
---|
28 | void decodeRtnetStream(char* buffer, int bufLen); |
---|
29 | protected: |
---|
30 | virtual ~bncRtnetUploadCaster(); |
---|
31 | private: |
---|
32 | t_irc processSatellite(const t_eph* eph, int GPSweek, |
---|
33 | double GPSweeks, const QString& prn, |
---|
34 | const ColumnVector& rtnAPC, |
---|
35 | double ura, |
---|
36 | const ColumnVector& rtnClk, |
---|
37 | const ColumnVector& rtnVel, |
---|
38 | const ColumnVector& rtnCoM, |
---|
39 | const ColumnVector& rtnClkSig, |
---|
40 | struct SsrCorr::ClockOrbit::SatData* sd, |
---|
41 | QString& outLine); |
---|
42 | void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc); |
---|
43 | |
---|
44 | int determineUpdateInd(double samplingRate); |
---|
45 | |
---|
46 | QString _casterID; |
---|
47 | bncEphUser* _ephUser; |
---|
48 | QString _rtnetStreamBuffer; |
---|
49 | QString _crdTrafo; |
---|
50 | SsrCorr* _ssrCorr; |
---|
51 | QString _ssrFormat; |
---|
52 | bool _CoM; |
---|
53 | int _PID; |
---|
54 | int _SID; |
---|
55 | int _IOD; |
---|
56 | int _samplRtcmClkCorr; |
---|
57 | double _samplRtcmEphCorr; |
---|
58 | double _dx; |
---|
59 | double _dy; |
---|
60 | double _dz; |
---|
61 | double _dxr; |
---|
62 | double _dyr; |
---|
63 | double _dzr; |
---|
64 | double _ox; |
---|
65 | double _oy; |
---|
66 | double _oz; |
---|
67 | double _oxr; |
---|
68 | double _oyr; |
---|
69 | double _ozr; |
---|
70 | double _sc; |
---|
71 | double _scr; |
---|
72 | double _t0; |
---|
73 | bncClockRinex* _rnx; |
---|
74 | bncSP3* _sp3; |
---|
75 | QMap<QString, const t_eph*>* _usedEph; |
---|
76 | }; |
---|
77 | |
---|
78 | struct phaseBiasesSat { |
---|
79 | phaseBiasesSat() { |
---|
80 | yawAngle = 0.0; |
---|
81 | yawRate = 0.0; |
---|
82 | } |
---|
83 | double yawAngle; |
---|
84 | double yawRate; |
---|
85 | }; |
---|
86 | |
---|
87 | struct phaseBiasSignal { |
---|
88 | phaseBiasSignal() { |
---|
89 | bias = 0.0; |
---|
90 | integerIndicator = 0; |
---|
91 | wlIndicator = 0; |
---|
92 | discontinuityCounter = 0; |
---|
93 | } |
---|
94 | QString type; |
---|
95 | double bias; |
---|
96 | unsigned int integerIndicator; |
---|
97 | unsigned int wlIndicator; |
---|
98 | unsigned int discontinuityCounter; |
---|
99 | }; |
---|
100 | |
---|
101 | #endif |
---|