Changeset 504 in ntrip


Ignore:
Timestamp:
Oct 14, 2007, 3:03:00 PM (17 years ago)
Author:
mervart
Message:

* empty log message *

Location:
trunk/BNC
Files:
1 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/RTCM3/RTCM3Decoder.cpp

    r464 r504  
    5151#endif
    5252
     53#define LEAPSECONDS     14 /* only needed for approx. time */
     54
    5355// Error Handling
    5456////////////////////////////////////////////////////////////////////////////
    55 void RTCM3Error(const char *fmt, ...) {
     57void RTCM3Error(const char*, ...) {
    5658
    5759}
     
    104106          obs->GPSWeeks = _Parser.Data.timeofweek / 1000.0;
    105107
    106           for (int jj = 0; jj < _Parser.numdatatypes; jj++) {
     108          for (int jj = 0; jj < _Parser.numdatatypesGPS; jj++) {
    107109            int v = 0;
    108110            int df = _Parser.dataflag[jj];
     
    114116            }
    115117            else {
    116               df = _Parser.dataflag2[jj];
    117               pos = _Parser.datapos2[jj];
     118              df = _Parser.dataflagGPS[jj];
     119              pos = _Parser.dataposGPS[jj];
    118120              if ( (_Parser.Data.dataflags[ii] & df)
    119121                   && !isnan(_Parser.Data.measdata[ii][pos])
  • trunk/BNC/RTCM3/RTCM3Decoder.h

    r464 r504  
    2727
    2828#include "../RTCM/GPSDecoder.h"
     29
     30extern "C" {
    2931#include "rtcm3torinex.h"
     32}
    3033
    3134class RTCM3Decoder : public GPSDecoder {
  • trunk/BNC/RTCM3/rtcm3torinex.h

    r366 r504  
    44/*
    55  Converter for RTCM3 data to RINEX.
    6   $Id: rtcm3torinex.h,v 1.5 2007/01/11 14:10:13 stoecker Exp $
    7   Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@euronik.eu>
     6  $Id: rtcm3torinex.h,v 1.7 2007/10/08 12:51:24 stoecker Exp $
     7  Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@alberding.eu>
    88
    99  This program is free software; you can redistribute it and/or modify
     
    9898#define GNSSDF_LOCKLOSSL2     (1<<30)  /* lost lock on L2 */
    9999
    100 #define LEAPSECONDS     14 /* only needed for approx. time */
    101 
    102100struct gnssdata {
    103101  int    flags;              /* GPSF_xxx */
     
    112110};
    113111
     112#define GPSEPHF_L2PCODEDATA    (1<<0) /* set, if NAV data OFF on L2 P-code, s1w4b01 */
     113#define GPSEPHF_L2PCODE        (1<<1) /* set, if P-code available, s1w3b12 */
     114#define GPSEPHF_L2CACODE       (1<<2) /* set, if CA-code available, s1w3b11 */
     115#define GPSEPHF_VALIDATED      (1<<3) /* data is completely valid */
     116
     117#define PI          3.1415926535898
     118
     119struct gpsephemeris {
     120  int    flags;            /* GPSEPHF_xxx */
     121  int    satellite;        /*  SV ID   ICD-GPS data position */
     122  int    IODE;             /*          [s2w3b01-08]              */
     123  int    URAindex;         /*  [1..15] [s1w3b13-16]              */
     124  int    SVhealth;         /*          [s1w3b17-22]              */
     125  int    GPSweek;          /*          [s1w3b01-10]              */
     126  int    IODC;             /*          [s1w3b23-32,w8b01-08]     */
     127  int    TOW;              /*  [s]     [s1w2b01-17]              */
     128  int    TOC;              /*  [s]     [s1w8b09-24]              */
     129  int    TOE;              /*  [s]     [s2w10b1-16]              */
     130  double clock_bias;       /*  [s]     [s1w10b1-22, af0]         */
     131  double clock_drift;      /*  [s/s]   [s1w9b09-24, af1]         */
     132  double clock_driftrate;  /*  [s/s^2] [s1w9b01-08, af2]         */
     133  double Crs;              /*  [m]     [s2w3b09-24]              */
     134  double Delta_n;          /*  [rad/s] [s2w4b01-16 * Pi]         */
     135  double M0;               /*  [rad]   [s2w4b17-24,w5b01-24 * Pi]*/
     136  double Cuc;              /*  [rad]   [s2w6b01-16]              */
     137  double e;                /*          [s2w6b17-24,w6b01-24]     */
     138  double Cus;              /*  [rad]   [s2w8b01-16]              */
     139  double sqrt_A;           /*  [m^0.5] [s2w8b16-24,w9b01-24]     */
     140  double Cic;              /*  [rad]   [s3w3b01-16]              */
     141  double OMEGA0;           /*  [rad]   [s3w3b17-24,w4b01-24 * Pi]*/
     142  double Cis;              /*  [rad]   [s3w5b01-16]              */
     143  double i0;               /*  [rad]   [s3w5b17-24,w6b01-24 * Pi]*/
     144  double Crc;              /*  [m]     [s3w701-16]               */
     145  double omega;            /*  [rad]   [s3w7b17-24,w8b01-24 * Pi]*/
     146  double OMEGADOT;         /*  [rad/s] [s3w9b01-24 * Pi]         */
     147  double IDOT;             /*  [rad/s] [s3w10b9-22 * Pi]         */
     148  double TGD;              /*  [s]     [s1w7b17-24]              */
     149};
     150
     151#define GLOEPHF_UNHEALTHY       (1<<0) /* set if unhealty satellite, f2b78 */
     152#define GLOEPHF_ALMANACHEALTHOK (1<<1) /* set if ALM health is available */
     153#define GLOEPHF_ALMANACHEALTHY  (1<<2) /* set if Cn word is true */
     154#define GLOEPHF_PAVAILABLE      (1<<3) /* set if the 3 P flags are available */
     155#define GLOEPHF_P10TRUE         (1<<4)
     156#define GLOEPHF_P11TRUE         (1<<5)
     157#define GLOEPHF_P2TRUE          (1<<6)
     158#define GLOEPHF_P3TRUE          (1<<7)
     159
     160struct glonassephemeris {
     161  int    GPSWeek;
     162  int    GPSTOW;
     163  int    flags;              /* GLOEPHF_xxx */
     164  int    almanac_number;
     165  int    frequency_number;   /* ICD-GLONASS data position */
     166  int    tb;                 /* [s]     [f2b70-76] */
     167  int    tk;                 /* [s]     [f1b65-76] */
     168  int    E;                  /* [days]  [f4b49-53] */
     169  double tau;                /* [s]     [f4b59-80] */
     170  double gamma;              /*         [f3b69-79] */
     171  double x_pos;              /* [km]    [f1b09-35] */
     172  double x_velocity;         /* [km/s]  [f1b41-64] */
     173  double x_acceleration;     /* [km/s^2][f1b36-40] */
     174  double y_pos;              /* [km]    [f2b09-35] */
     175  double y_velocity;         /* [km/s]  [f2b41-64] */
     176  double y_acceleration;     /* [km/s^2][f2b36-40] */
     177  double z_pos;              /* [km]    [f3b09-35] */
     178  double z_velocity;         /* [km/s]  [f3b41-64] */
     179  double z_acceleration;     /* [km/s^2][f3b36-40] */
     180};
     181
    114182struct RTCM3ParserData {
    115183  unsigned char Message[2048]; /* input-buffer */
     
    120188  int    GPSTOW;        /* in seconds */
    121189  struct gnssdata Data;
     190  struct gpsephemeris ephemerisGPS;
     191  struct glonassephemeris ephemerisGLONASS;
    122192  struct gnssdata DataNew;
    123193  int    size;
     
    126196  int    datapos[RINEXENTRY_NUMBER];
    127197  int    dataflag[RINEXENTRY_NUMBER];
    128   int    datapos2[RINEXENTRY_NUMBER];
    129   int    dataflag2[RINEXENTRY_NUMBER];
    130   int    numdatatypes;
     198  /* for RINEX2 GPS and GLO are both handled in GPS */
     199  int    dataposGPS[RINEXENTRY_NUMBER]; /* SBAS has same entries */
     200  int    dataflagGPS[RINEXENTRY_NUMBER];
     201  int    dataposGLO[RINEXENTRY_NUMBER]; /* only used for RINEX3 */
     202  int    dataflagGLO[RINEXENTRY_NUMBER];
     203  int    numdatatypesGPS;
     204  int    numdatatypesGLO; /* only used for RINEX3 */
    131205  int    validwarning;
    132206  int    init;
    133207  int    startflags;
     208  int    rinex3;
    134209  const char * headerfile;
     210  const char * glonassephemeris;
     211  const char * gpsephemeris;
     212  FILE *glonassfile;
     213  FILE *gpsfile;
    135214};
    136215
  • trunk/BNC/bnc.pro

    r453 r504  
    3232          bnczerodecoder.cpp                                          \
    3333          RTCM/RTCM2.cpp RTCM/RTCM2Decoder.cpp                        \
    34           RTCM3/RTCM3Decoder.cpp RTCM3/rtcm3torinex.cpp               \
     34          RTCM3/RTCM3Decoder.cpp RTCM3/rtcm3torinex.c                 \
    3535          RTIGS/RTIGSDecoder.cpp RTIGS/cgps_transform.cpp
    3636
Note: See TracChangeset for help on using the changeset viewer.