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

Last change on this file since 10917 was 10754, checked in by stuerze, 12 months ago

initial preparation for adding the new RTCM-SSR format

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