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

Last change on this file since 10533 was 10533, checked in by stuerze, 2 days ago

Service and RTCM CRS encoding and decoding as well as Helmert parameter decoding added + some re-organisation

File size: 3.7 KB
Line 
1#ifndef BNCRTNETUPLOADCASTER_H
2#define BNCRTNETUPLOADCASTER_H
3
4#include <newmat.h>
5#include <iostream>
6#include "bncuploadcaster.h"
7#include "bnctime.h"
8#include "ephemeris.h"
9#include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h"
10#include "../RTCM3/clock_and_orbit/clock_orbit_igs.h"
11#include "../RTCM3/crs.h"
12
13class bncEphUser;
14class bncoutf;
15class bncClockRinex;
16class bncSP3;
17class bncBiasSinex;
18
19class bncRtnetUploadCaster : public bncUploadCaster {
20 Q_OBJECT
21 public:
22 bncRtnetUploadCaster(const QString& mountpoint,
23 const QString& outHost, int outPort,
24 const QString& ntripVersion, const QString& userName,
25 const QString& password,
26 const QString& crdTrafo, const QString& ssrFormat,
27 bool CoM,
28 const QString& sp3FileName,
29 const QString& rnxFileName,
30 const QString& bsxFileName,
31 int PID, int SID, int IOD, int iRow);
32 void decodeRtnetStream(char* buffer, int bufLen);
33 protected:
34 virtual ~bncRtnetUploadCaster();
35 private:
36 t_irc processSatellite(const t_eph* eph, int GPSweek,
37 double GPSweeks, const QString& prn,
38 const ColumnVector& rtnAPC,
39 double ura,
40 const ColumnVector& rtnClk,
41 const ColumnVector& rtnVel,
42 const ColumnVector& rtnCoM,
43 const ColumnVector& rtnClkSig,
44 struct SsrCorr::ClockOrbit::SatData* sd,
45 QString& outLine);
46 void decodeRtnetEpoch(QStringList epochLines);
47 bool corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd);
48
49 void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
50 // TODO: the following line can be deleted if all parameters are updated regarding ITRF2020
51 void crdTrafo14(int GPSWeek, ColumnVector& xyz, double& dc);
52
53 int determineUpdateInd(double samplingRate);
54
55 QString _casterID;
56 bncEphUser* _ephUser;
57 QString _rtnetStreamBuffer;
58 QString _crdTrafoStr;
59 SsrCorr* _ssrCorr;
60 QString _ssrFormat;
61 bool _CoM;
62 bool _phaseBiasInformationDecoded;
63 int _PID;
64 int _SID;
65 int _IOD;
66 int _samplRtcmClkCorr;
67 double _samplRtcmEphCorr;
68
69 double _dx;
70 double _dy;
71 double _dz;
72 double _dxr;
73 double _dyr;
74 double _dzr;
75 double _ox;
76 double _oy;
77 double _oz;
78 double _oxr;
79 double _oyr;
80 double _ozr;
81 double _sc;
82 double _scr;
83 double _t0;
84 /* TODO: the following lines can be deleted if all parameters are updated regarding ITRF2020*/
85 double _dx14;
86 double _dy14;
87 double _dz14;
88 double _dxr14;
89 double _dyr14;
90 double _dzr14;
91 double _ox14;
92 double _oy14;
93 double _oz14;
94 double _oxr14;
95 double _oyr14;
96 double _ozr14;
97 double _sc14;
98 double _scr14;
99 double _t014;
100
101 bncClockRinex* _rnx;
102 bncSP3* _sp3;
103 bncBiasSinex* _bsx;
104 QMap<QString, const t_eph*>* _usedEph;
105};
106
107struct phaseBiasesSat {
108 phaseBiasesSat() {
109 yawAngle = 0.0;
110 yawRate = 0.0;
111 }
112 double yawAngle;
113 double yawRate;
114};
115
116struct phaseBiasSignal {
117 phaseBiasSignal() {
118 bias = 0.0;
119 integerIndicator = 0;
120 wlIndicator = 0;
121 discontinuityCounter = 0;
122 }
123 QString type;
124 double bias;
125 unsigned int integerIndicator;
126 unsigned int wlIndicator;
127 unsigned int discontinuityCounter;
128};
129
130#endif
Note: See TracBrowser for help on using the repository browser.