Changeset 2221 in ntrip for trunk/BNC/RTCM3/ephemeris.h


Ignore:
Timestamp:
Jan 12, 2010, 8:36:29 AM (14 years ago)
Author:
mervart
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/RTCM3/ephemeris.h

    r2040 r2221  
    11#ifndef EPHEMERIS_H
    22#define EPHEMERIS_H
     3
     4#include <newmat.h>
    35
    46#include <stdio.h>
     
    1921
    2022  virtual void position(int GPSweek, double GPSweeks,
    21                         double* xc,
    22                         double* vv) const = 0;
     23                        double* xc,
     24                        double* vv) const = 0;
    2325
    2426  void position(int GPSweek, double GPSweeks,
    25                 double& xx, double& yy, double& zz, double& cc) const {
     27                double& xx, double& yy, double& zz, double& cc) const {
    2628    double tmp_xx[4];
    2729    double tmp_vv[4];
     
    4951 public:
    5052  t_ephGPS() { }
    51   ~t_ephGPS() {}
     53  virtual ~t_ephGPS() {}
    5254  double TOC() const {return _TOC;}
    5355
     
    5557
    5658  void set(int    prn,
    57            int    GPSWeek,
    58            double toc, double toe, double tot,
    59            double IODE, double IODC,
    60            double clock_bias, double clock_drift, double clock_driftrate,
    61            double OMEGA0, double OMEGADOT,
    62            double i0,     double IDOT,
    63            double omega,
    64            double M0, double Delta_n,
    65            double sqrt_A,
    66            double e,
    67            double Crc, double Crs,
    68            double Cic, double Cis,
    69            double Cuc, double Cus,
    70            double TGD,
    71            int    health);
     59           int    GPSWeek,
     60           double toc, double toe, double tot,
     61           double IODE, double IODC,
     62           double clock_bias, double clock_drift, double clock_driftrate,
     63           double OMEGA0, double OMEGADOT,
     64           double i0,     double IDOT,
     65           double omega,
     66           double M0, double Delta_n,
     67           double sqrt_A,
     68           double e,
     69           double Crc, double Crs,
     70           double Cic, double Cis,
     71           double Cuc, double Cus,
     72           double TGD,
     73           int    health);
    7274
    73   void position(int GPSweek, double GPSweeks,
    74                         double* xc,
    75                         double* vv) const;
     75  virtual void position(int GPSweek, double GPSweeks,
     76                        double* xc,
     77                        double* vv) const;
    7678
    77   int  IOD() const { return static_cast<int>(_IODC); }
     79  virtual int  IOD() const { return static_cast<int>(_IODC); }
    7880
    79   void print(std::ostream& out) const;
     81  virtual void print(std::ostream& out) const;
    8082
    8183 private:
     
    109111};
    110112
     113class t_ephGlo : public t_eph {
     114 public:
     115  t_ephGlo() { _gps_utc = 0.0; _xv.ReSize(6); }
     116
     117  virtual ~t_ephGlo() {}
     118
     119  virtual void position(int GPSweek, double GPSweeks,
     120                        double* xc,
     121                        double* vv) const;
     122
     123  virtual int  IOD() const;
     124
     125  virtual void print(std::ostream& out) const;
     126
     127  void set(const glonassephemeris* ee);
     128
     129 private:
     130  static ColumnVector glo_deriv(double /* tt */, const ColumnVector& xv);
     131
     132  mutable double       _tt;  // time in seconds of GPSweek
     133  mutable ColumnVector _xv;  // status vector (position, velocity) at time _tt
     134
     135  double  _gps_utc;          // GPS - UTC in seconds     
     136  double  _E;                // [days]   
     137  double  _tau;              // [s]     
     138  double  _gamma;            //         
     139  double  _x_pos;            // [km]     
     140  double  _x_velocity;       // [km/s]   
     141  double  _x_acceleration;   // [km/s^2]
     142  double  _y_pos;            // [km]     
     143  double  _y_velocity;       // [km/s]   
     144  double  _y_acceleration;   // [km/s^2]
     145  double  _z_pos;            // [km]     
     146  double  _z_velocity;       // [km/s]   
     147  double  _z_acceleration;   // [km/s^2]
     148  double  _health;           // 0 = O.K.
     149  double  _frequency_number; // ICD-GLONASS data position
     150  double  _tki;              // message frame time
     151};
     152
    111153#endif
Note: See TracChangeset for help on using the changeset viewer.