Changeset 6798 in ntrip for trunk/BNC/src/ephemeris.cpp


Ignore:
Timestamp:
Apr 27, 2015, 4:00:38 PM (9 years ago)
Author:
stuerze
Message:

considerationn of the aspect that Galileo navigation messages can be provided for the same epoch but with different flags, e.g.: I/NAV, F/NAV, changed DVS;
simplification for accuracy entries that can be provided as index or in meter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/ephemeris.cpp

    r6793 r6798  
    2323  _orbCorr    = 0;
    2424  _clkCorr    = 0;
     25  _flags      = 0;
    2526}
    2627
     
    426427void t_ephGal::set(const galileoephemeris* ee) {
    427428
    428   _SISA     = -1.0; // set RINEX entry to invalid
    429 
    430429  _receptDateTime = currentDateAndTimeGPS();
    431430
     
    448447
    449448  _TOEsec   = _TOC.gpssec();
     449  //  _TOEsec   = ee->TOE;  // TODO:
    450450
    451451  _Cic      = ee->Cic;
     
    461461  _TOEweek  = ee->Week;
    462462 
    463   _SISAI    = ee->SISA; // index from RTCM
     463  if ((ee->SISA >= 0) && (ee->SISA <= 49)) {
     464    _SISA = ee->SISA / 100.0;
     465  }
     466  else if((ee->SISA >= 50) && (ee->SISA <= 74)) {
     467    _SISA = (50 + (ee->SISA - 50.0) * 2.0) / 100.0;
     468  }
     469  else if((ee->SISA >= 75) && (ee->SISA <= 99)) {
     470    _SISA = 1.0 + (ee->SISA - 75.0) * 0.04;
     471  }
     472  else if((ee->SISA >= 100) && (ee->SISA <= 125)) {
     473    _SISA = 2.0 + (ee->SISA - 100.0) * 0.16;
     474  }
     475  else if (ee->SISA >= 126 ) {
     476    _SISA = -1.0;
     477  }
    464478  _E5aHS    = ee->E5aHS;
    465479  _E5bHS    = ee->E5bHS;
     
    813827  double SVhealth = 0.0;
    814828  double datasource = 0.0;
     829
    815830  int pos[4];
    816   _SISAI = -1; // set index from RTCM invalid
    817831  pos[0] = (rnxVersion <= 2.12) ?  3 :  4;
    818832  pos[1] = pos[0] + fieldLen;
     
    11961210    .arg(0.0,                19, 'e', 12);
    11971211
    1198   // RINEX file input
    1199   double SISA = _SISA; // [m]
    1200   // RTCM stream input
    1201   if ((_SISAI >= 0) && (_SISAI <= 49)) {
    1202     SISA = _SISAI / 100.0;
    1203   }
    1204   if((_SISAI >= 50) && (_SISAI <= 74)) {
    1205     SISA = (50 + (_SISAI - 50.0) * 2.0) / 100.0;
    1206   }
    1207   if((_SISAI >= 75) && (_SISAI <= 99)) {
    1208     SISA = 1.0 + (_SISAI - 75.0) * 0.04;
    1209   }
    1210   if((_SISAI >= 100) && (_SISAI <= 125)) {
    1211     SISA = 2.0 + (_SISAI - 100.0) * 0.16;
    1212   }
    1213   if (_SISAI >= 126 ) {
    1214     SISA = -1.0;
    1215   }
    1216   out << QString(fmt)
    1217     .arg(SISA,             19, 'e', 12)
     1212  out << QString(fmt)
     1213    .arg(_SISA,            19, 'e', 12)
    12181214    .arg(double(SVhealth), 19, 'e', 12)
    12191215    .arg(BGD_1_5A,         19, 'e', 12)
     
    14361432  int fieldLen = 19;
    14371433  double TOEw;
    1438   _URAI = -1; // RINEX usage: set RTCM entry to be undefined
    14391434
    14401435  int pos[4];
     
    16181613  _TGD2     = ee->TGD_B2_B3;
    16191614
    1620   _URAI     = ee->URAI;
     1615  if ((ee->URAI <  6) && (ee->URAI >= 0)) {
     1616    _URA = ceil(10.0 * pow(2.0, ((double)ee->URAI/2.0) + 1.0)) / 10.0;
     1617  }
     1618  if ((ee->URAI >= 6) && (ee->URAI < 15)) {
     1619    _URA = ceil(10.0 * pow(2.0, ((double)ee->URAI/2.0)      )) / 10.0;
     1620  }
    16211621  _SatH1    = (ee->flags & BDSEPHF_SATH1) ? 1: 0;
    16221622
     
    17961796    .arg(_OMEGADOT, 19, 'e', 12);
    17971797
    1798 
    17991798  out << QString(fmt)
    18001799    .arg(_IDOT,                             19, 'e', 12)
     
    18031802    .arg(0.0,                               19, 'e', 12);
    18041803
    1805   // RINEX file input
    1806   double ura = _URA;
    1807   // RTCM stream input
    1808   if ((_URAI <  6) && (_URAI >= 0)) {
    1809     ura = ceil(10.0 * pow(2.0, ((double)_URAI/2.0) + 1.0)) / 10.0;
    1810   }
    1811   if ((_URAI >= 6) && (_URAI < 15)) {
    1812     ura = ceil(10.0 * pow(2.0, ((double)_URAI/2.0)      )) / 10.0;
    1813   }
    1814   out << QString(fmt)
    1815     .arg(ura,            19, 'e', 12)
     1804  out << QString(fmt)
     1805    .arg(_URA,           19, 'e', 12)
    18161806    .arg(double(_SatH1), 19, 'e', 12)
    18171807    .arg(_TGD1,          19, 'e', 12)
Note: See TracChangeset for help on using the changeset viewer.