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 


11  class bncEphUser;


12  class bncoutf;


13  class bncClockRinex;


14  class bncSP3;


15 


16  class 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 


82  struct phaseBiasesSat {


83  phaseBiasesSat() {


84  yawAngle = 0.0;


85  yawRate = 0.0;


86  }


87  double yawAngle;


88  double yawRate;


89  };


90 


91  struct 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

