source: ntrip/trunk/BNC/src/upload/bncrtnetuploadcaster.h@ 9184

Last change on this file since 9184 was 9179, checked in by stuerze, 4 years ago

check if orbit and clock corrections are in defined ranges is added

File size: 2.9 KB
Line 
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
11class bncEphUser;
12class bncoutf;
13class bncClockRinex;
14class bncSP3;
15
16class 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
43 bool corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd);
44
45 void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
46
47 int determineUpdateInd(double samplingRate);
48
49 QString _casterID;
50 bncEphUser* _ephUser;
51 QString _rtnetStreamBuffer;
52 QString _crdTrafo;
53 SsrCorr* _ssrCorr;
54 QString _ssrFormat;
55 bool _CoM;
56 bool _phaseBiasInformationDecoded;
57 int _PID;
58 int _SID;
59 int _IOD;
60 int _samplRtcmClkCorr;
61 double _samplRtcmEphCorr;
62 double _dx;
63 double _dy;
64 double _dz;
65 double _dxr;
66 double _dyr;
67 double _dzr;
68 double _ox;
69 double _oy;
70 double _oz;
71 double _oxr;
72 double _oyr;
73 double _ozr;
74 double _sc;
75 double _scr;
76 double _t0;
77 bncClockRinex* _rnx;
78 bncSP3* _sp3;
79 QMap<QString, const t_eph*>* _usedEph;
80};
81
82struct phaseBiasesSat {
83 phaseBiasesSat() {
84 yawAngle = 0.0;
85 yawRate = 0.0;
86 }
87 double yawAngle;
88 double yawRate;
89};
90
91struct phaseBiasSignal {
92 phaseBiasSignal() {
93 bias = 0.0;
94 integerIndicator = 0;
95 wlIndicator = 0;
96 discontinuityCounter = 0;
97 }
98 QString type;
99 double bias;
100 unsigned int integerIndicator;
101 unsigned int wlIndicator;
102 unsigned int discontinuityCounter;
103};
104
105#endif
Note: See TracBrowser for help on using the repository browser.