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

Last change on this file since 9846 was 9652, checked in by stuerze, 3 years ago

Bias SINEX file can be written now during SSR upload

File size: 3.0 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
12class bncEphUser;
13class bncoutf;
14class bncClockRinex;
15class bncSP3;
16class bncBiasSinex;
17
18class bncRtnetUploadCaster : public bncUploadCaster {
19 Q_OBJECT
20 public:
21 bncRtnetUploadCaster(const QString& mountpoint,
22 const QString& outHost, int outPort,
23 const QString& ntripVersion, const QString& userName,
24 const QString& password,
25 const QString& crdTrafo, const QString& ssrFormat,
26 bool CoM,
27 const QString& sp3FileName,
28 const QString& rnxFileName,
29 const QString& bsxFileName,
30 int PID, int SID, int IOD, int iRow);
31 void decodeRtnetStream(char* buffer, int bufLen);
32 protected:
33 virtual ~bncRtnetUploadCaster();
34 private:
35 t_irc processSatellite(const t_eph* eph, int GPSweek,
36 double GPSweeks, const QString& prn,
37 const ColumnVector& rtnAPC,
38 double ura,
39 const ColumnVector& rtnClk,
40 const ColumnVector& rtnVel,
41 const ColumnVector& rtnCoM,
42 const ColumnVector& rtnClkSig,
43 struct SsrCorr::ClockOrbit::SatData* sd,
44 QString& outLine);
45
46 bool corrIsOutOfRange(struct SsrCorr::ClockOrbit::SatData* sd);
47
48 void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
49
50 int determineUpdateInd(double samplingRate);
51
52 QString _casterID;
53 bncEphUser* _ephUser;
54 QString _rtnetStreamBuffer;
55 QString _crdTrafo;
56 SsrCorr* _ssrCorr;
57 QString _ssrFormat;
58 bool _CoM;
59 bool _phaseBiasInformationDecoded;
60 int _PID;
61 int _SID;
62 int _IOD;
63 int _samplRtcmClkCorr;
64 double _samplRtcmEphCorr;
65 double _dx;
66 double _dy;
67 double _dz;
68 double _dxr;
69 double _dyr;
70 double _dzr;
71 double _ox;
72 double _oy;
73 double _oz;
74 double _oxr;
75 double _oyr;
76 double _ozr;
77 double _sc;
78 double _scr;
79 double _t0;
80 bncClockRinex* _rnx;
81 bncSP3* _sp3;
82 bncBiasSinex* _bsx;
83 QMap<QString, const t_eph*>* _usedEph;
84};
85
86struct phaseBiasesSat {
87 phaseBiasesSat() {
88 yawAngle = 0.0;
89 yawRate = 0.0;
90 }
91 double yawAngle;
92 double yawRate;
93};
94
95struct phaseBiasSignal {
96 phaseBiasSignal() {
97 bias = 0.0;
98 integerIndicator = 0;
99 wlIndicator = 0;
100 discontinuityCounter = 0;
101 }
102 QString type;
103 double bias;
104 unsigned int integerIndicator;
105 unsigned int wlIndicator;
106 unsigned int discontinuityCounter;
107};
108
109#endif
Note: See TracBrowser for help on using the repository browser.