Changeset 8182 in ntrip


Ignore:
Timestamp:
Nov 17, 2017, 10:46:47 AM (7 years ago)
Author:
stuerze
Message:

RTCM MT 1020 ephemeris parameter are now completed

Location:
trunk/BNC/src
Files:
3 edited

Legend:

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

    r8166 r8182  
    10491049    _gloFrq = QString("%1 %2").arg(eph._prn.toString().c_str()).arg(
    10501050        eph._frequency_number, 2, 'f', 0);
    1051     SKIPBITS(4)
    1052     /* almanac healthy, almanac health ok, P1 */
     1051    GETBITS(eph._almanac_health, 1) /* almanac healthy */
     1052    GETBITS(eph._almanac_health_availablility_indicator, 1) /* almanac health ok */
     1053    GETBITS(eph._P1, 2) /*  P1 */
    10531054    GETBITS(i, 5)
    10541055    tk = i * 60 * 60;
     
    10581059    tk += i * 30;
    10591060    eph._tki = tk < 3 * 60 * 60 ? tk - 3 * 60 * 60 + 86400 : tk - 3 * 60 * 60;
    1060     GETBITS(eph._health, 1)
    1061     SKIPBITS(1)
    1062     /* P2 */
     1061    GETBITS(eph._health, 1) /* MSB of Bn*/
     1062    GETBITS(eph._P2, 1)  /* P2 */
    10631063    GETBITS(i, 7)
    10641064    eph._TOC.setTk(i * 15 * 60 * 1000); /* tb */
     
    10731073    GETFLOATSIGNM(eph._z_pos, 27, 1.0 / (double )(1 << 11))
    10741074    GETFLOATSIGNM(eph._z_acceleration, 5, 1.0 / (double )(1 << 30))
    1075     SKIPBITS(1)
    1076     /* P3 */
     1075    GETBITS(eph._P3, 1)    /* P3 */
    10771076    GETFLOATSIGNM(eph._gamma, 11, 1.0 / (double )(1 << 30) / (double )(1 << 10))
    1078     SKIPBITS(3)
    1079     /* GLONASS-M P, GLONASS-M ln (third string) */
    1080     GETFLOATSIGNM(eph._tau, 22, 1.0 / (double )(1 << 30))
    1081     /* GLONASS tau n(tb) */
    1082     SKIPBITS(5)
    1083     /* GLONASS-M delta tau n(tb) */
     1077    GETBITS(eph._M_P, 2) /* GLONASS-M P, */
     1078    GETBITS(eph._M_l3, 1) /*GLONASS-M ln (third string) */
     1079    GETFLOATSIGNM(eph._tau, 22, 1.0 / (double )(1 << 30))    /* GLONASS tau n(tb) */
     1080    GETFLOATSIGNM(eph._M_delta_tau, 5, 1.0 / (double )(1 << 30))   /* GLONASS-M delta tau n(tb) */
    10841081    GETBITS(eph._E, 5)
    1085     /* GETBITS(i, 1) / * GLONASS-M P4 */
    1086     /* GETBITS(i, 4) / * GLONASS-M Ft */
    1087     /* GETBITS(i, 11) / * GLONASS-M Nt */
    1088     /* GETBITS(i, 2) / * GLONASS-M M */
    1089     /* GETBITS(i, 1) / * GLONASS-M The Availability of Additional Data */
    1090     /* GETBITS(i, 11) / * GLONASS-M Na */
    1091     /* GETFLOATSIGNM(i, 32, 1.0/(double)(1<<30)/(double)(1<<1)) / * GLONASS tau c */
    1092     /* GETBITS(i, 5) / * GLONASS-M N4 */
    1093     /* GETFLOATSIGNM(i, 22, 1.0/(double)(1<<30)) / * GLONASS-M tau GPS */
    1094     /* GETBITS(i, 1) / * GLONASS-M ln (fifth string) */
     1082    GETBITS(eph._M_P4, 1) /* GLONASS-M P4 */
     1083    GETBITS(eph._M_FT, 4) /* GLONASS-M Ft */
     1084    GETBITS(eph._M_NT, 11) /* GLONASS-M Nt */
     1085    GETBITS(eph._M_M, 2) /* GLONASS-M M */
     1086    GETBITS(eph._additional_data_availability, 1) /* GLONASS-M The Availability of Additional Data */
     1087    GETBITS(eph._NA, 11) /* GLONASS-M Na */
     1088    GETFLOATSIGNM(eph._tauC, 32, 1.0/(double)(1<<30)/(double)(1<<1)) /* GLONASS tau c */
     1089    GETBITS(eph._M_N4, 5) /* GLONASS-M N4 */
     1090    GETFLOATSIGNM(eph._M_tau_GPS, 22, 1.0/(double)(1<<30)) /* GLONASS-M tau GPS */
     1091    GETBITS(eph._M_l5, 1) /* GLONASS-M ln (fifth string) */
    10951092
    10961093    unsigned year, month, day;
  • trunk/BNC/src/RTCM3/ephEncoder.cpp

    r7849 r8182  
    123123  GLONASSADDBITS(6, eph._prn.number())
    124124  GLONASSADDBITS(5, 7+eph._frequency_number)
    125   GLONASSADDBITS(1, 0)
    126   GLONASSADDBITS(1, 0)
    127   GLONASSADDBITS(2, 0)
     125  GLONASSADDBITS(1, eph._almanac_health)
     126  GLONASSADDBITS(1, eph._almanac_health_availablility_indicator)
     127  GLONASSADDBITS(2, eph._P1)
    128128  int tki = static_cast<int>(eph._tki)+3*60*60;
    129129  if (tki > 86400) {tki -= 86400;}
     
    132132  GLONASSADDBITS(1, (static_cast<int>(tki)/30)%30)
    133133  GLONASSADDBITS(1, eph._health)
    134   GLONASSADDBITS(1, 0)
     134  GLONASSADDBITS(1, eph._P2)
    135135  unsigned long long timeofday = (static_cast<int>(eph._tt.gpssec()+3*60*60-eph._gps_utc)%86400);
    136136  GLONASSADDBITS(7, timeofday/60/15)
     
    144144  GLONASSADDBITSFLOATM(27,eph._z_pos*1000, 1000.0/static_cast<double>(1<<11))
    145145  GLONASSADDBITSFLOATM(5, eph._z_acceleration*1000, 1000.0/static_cast<double>(1<<30))
    146   GLONASSADDBITS(1, 0)
    147   GLONASSADDBITSFLOATM(11, eph._gamma, 1.0/static_cast<double>(1<<30)
    148   /static_cast<double>(1<<10))
    149   GLONASSADDBITS(2, 0) /* GLONASS-M P */
    150   GLONASSADDBITS(1, 0) /* GLONASS-M ln(3) */
     146  GLONASSADDBITS(1, eph._P3)
     147  GLONASSADDBITSFLOATM(11, eph._gamma, 1.0/static_cast<double>(1<<30)/static_cast<double>(1<<10))
     148  GLONASSADDBITS(2, eph._M_P) /* GLONASS-M P */
     149  GLONASSADDBITS(1, eph._M_l3) /* GLONASS-M ln(3) */
    151150  GLONASSADDBITSFLOATM(22, eph._tau, 1.0/static_cast<double>(1<<30))
    152   GLONASSADDBITS(5, 0) /* GLONASS-M delta tau */
     151  GLONASSADDBITSFLOATM(5, eph._M_delta_tau, 1.0/static_cast<double>(1<<30)) /* GLONASS-M delta tau */
    153152  GLONASSADDBITS(5, eph._E)
    154   GLONASSADDBITS(1, 0) /* GLONASS-M P4 */
    155   GLONASSADDBITS(4, 0) /* GLONASS-M FT */
    156   GLONASSADDBITS(11, 0) /* GLONASS-M NT */
    157   GLONASSADDBITS(2, 0) /* GLONASS-M active? */
    158   GLONASSADDBITS(1, 0) /* GLONASS additional data */
    159   GLONASSADDBITS(11, 0) /* GLONASS NA */
    160   GLONASSADDBITS(32, 0) /* GLONASS tau C */
    161   GLONASSADDBITS(5, 0) /* GLONASS-M N4 */
    162   GLONASSADDBITS(22, 0) /* GLONASS-M tau GPS */
    163   GLONASSADDBITS(1, 0) /* GLONASS-M ln(5) */
     153  GLONASSADDBITS(1, eph._M_P4) /* GLONASS-M P4 */
     154  GLONASSADDBITS(4, eph._M_FT) /* GLONASS-M FT */
     155  GLONASSADDBITS(11, eph._M_NT) /* GLONASS-M NT */
     156  GLONASSADDBITS(2, eph._M_M) /* GLONASS-M active? */
     157  GLONASSADDBITS(1, eph._additional_data_availability) /* GLONASS additional data */
     158  GLONASSADDBITS(11, eph._NA) /* GLONASS NA */
     159  GLONASSADDBITSFLOATM(32, eph._tauC, 1.0/static_cast<double>(1<<30)/static_cast<double>(1<<1)) /* GLONASS tau C */
     160  GLONASSADDBITS(5, eph._M_N4) /* GLONASS-M N4 */
     161  GLONASSADDBITSFLOATM(22, eph._M_tau_GPS, 1.0/static_cast<double>(1<<30)) /* GLONASS-M tau GPS */
     162  GLONASSADDBITS(1, eph._M_l5) /* GLONASS-M ln(5) */
    164163  GLONASSADDBITS(7, 0) /* Reserved */
    165164
  • trunk/BNC/src/ephemeris.h

    r8168 r8182  
    165165    _z_acceleration   = 0.0;
    166166    _E                = 0.0;
     167    _almanac_health   = 0.0;
     168    _almanac_health_availablility_indicator = 0.0;
     169    _additional_data_availability = 0.0;
     170    _tauC             = 0.0;
     171    _P1               = 0.0;
     172    _P2               = 0.0;
     173    _P3               = 0.0;
     174    _NA               = 0.0;
     175    _M_P              = 0.0;
     176    _M_l3             = 0.0;
     177    _M_delta_tau      = 0.0;
     178    _M_P4             = 0.0;
     179    _M_FT             = 0.0;
     180    _M_NT             = 0.0;
     181    _M_M              = 0.0;
     182    _M_N4             = 0.0;
     183    _M_tau_GPS        = 0.0;
     184    _M_l5             = 0.0;
    167185  }
    168186  t_ephGlo(float rnxVersion, const QStringList& lines);
     
    183201  double  _gps_utc;
    184202  double  _tau;              // [s]
    185   double  _gamma;            //
     203  double  _gamma;            // [-]
    186204  mutable double  _tki;      // message frame time
    187205
     
    189207  double  _x_velocity;       // [km/s]
    190208  double  _x_acceleration;   // [km/s^2]
    191   double  _health;           // 0 = O.K.
     209  double  _health;           // 0 = O.K. MSB of Bn word
    192210
    193211  double  _y_pos;            // [km]
     
    200218  double  _z_acceleration;   // [km/s^2]
    201219  double  _E;                // Age of Information [days]
     220
     221  double _almanac_health;     // Cn word
     222  double _almanac_health_availablility_indicator;
     223
     224  double _additional_data_availability;  //
     225  double _tauC;               // GLONASS time scale correction to UTC(SU) time [sec]
     226  double _P1;                 // flag of the immediate data updating [-]
     227  double _P2;                 // flag of oddness or evenness of the value of tb for intervals 30 or 60 minutes [-]
     228  double _P3;                 // flag indicating a number of satellites for which almanac is transmitted within given frame [-]
     229  double _NA;                 // calendar day number within the 4-year period [days]
     230
     231  double _M_P;                // control segment parameter that indicates the satellite operation mode with respect of time parameters
     232  double _M_l3;               // health flag
     233  double _M_delta_tau;        // [sec]
     234  double _M_P4;               // flag to show that ephemeris parameters are present [-]
     235  double _M_FT;               // indicator for predicted satellite user range accuracy [-]
     236  double _M_NT;               // current date, calendar number of day within 4-year interval [days]
     237  double _M_M;                // type of satellite transmitting navigation signal: 0 = GLONASS, 1 = GLONASS-M satellite [-]
     238  double _M_N4;               // 4-year interval number starting from 1996
     239  double _M_tau_GPS;          // correction to GPS time relative to GLONASS time [days]
     240  double _M_l5;               // health flag
    202241};
    203242
Note: See TracChangeset for help on using the changeset viewer.