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  extern "C" {


9  #include "clock_orbit_rtcm.h"


10  }


11 


12  class bncEphUser;


13  class bncoutf;


14  class bncClockRinex;


15  class bncSP3;


16 


17  class 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  void processSatellite(t_eph* eph, int GPSweek,


32  double GPSweeks, const QString& prn,


33  const ColumnVector& rtnAPC,


34  double rtnClk,


35  const ColumnVector& rtnVel,


36  const ColumnVector& rtnCoM,


37  struct ClockOrbit::SatData* sd,


38  QString& outLine);


39  void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);


40 


41  bncEphUser* _ephUser;


42  QString _rtnetStreamBuffer;


43  QString _crdTrafo;


44  bool _CoM;


45  int _PID;


46  int _SID;


47  int _IOD;


48  double _samplRtcmEphCorr;


49  double _dx;


50  double _dy;


51  double _dz;


52  double _dxr;


53  double _dyr;


54  double _dzr;


55  double _ox;


56  double _oy;


57  double _oz;


58  double _oxr;


59  double _oyr;


60  double _ozr;


61  double _sc;


62  double _scr;


63  double _t0;


64  bncClockRinex* _rnx;


65  bncSP3* _sp3;


66  QMap<QString, t_eph*>* _usedEph;


67  };


68 


69  #endif

