source: ntrip/branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h

Last change on this file was 8541, checked in by stuerze, 11 months ago

minor changes to consider a satellite clock drift that is introduced via RTNET format

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