Changeset 6384 in ntrip for trunk/BNC/src/bnccore.cpp


Ignore:
Timestamp:
Dec 19, 2014, 3:56:52 PM (9 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

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

    r6383 r6384  
    9393    _galileoEph[ii-PRN_GALILEO_START] = 0;
    9494  }
     95  for (int ii = PRN_SBAS_START; ii <= PRN_SBAS_END; ii++) {
     96    _sbasEph[ii-PRN_SBAS_START] = 0;
     97  }
    9598
    9699  // Eph file(s)
     
    103106  _ephFileGalileo   = 0;
    104107  _ephStreamGalileo = 0;
     108  _ephFileSBAS      = 0;
     109  _ephStreamSBAS    = 0;
    105110
    106111  _port    = 0;
     
    155160  for (int ii = PRN_GALILEO_START; ii <= PRN_GALILEO_END; ii++) {
    156161    delete _galileoEph[ii-PRN_GALILEO_START];
     162  }
     163  for (int ii = PRN_SBAS_START; ii <= PRN_SBAS_END; ii++) {
     164    delete _sbasEph[ii-PRN_SBAS_START];
    157165  }
    158166
     
    403411      _galileoEph[ii-PRN_GALILEO_START] = 0;
    404412    }
     413    for (int ii = PRN_SBAS_START; ii <= PRN_SBAS_END; ii++) {
     414      delete _sbasEph[ii-PRN_SBAS_START];
     415      _sbasEph[ii-PRN_SBAS_START] = 0;
     416    }
    405417
    406418    delete _ephStreamGPS;
     
    409421    QFlags<QIODevice::OpenModeFlag> appendFlagGPS;
    410422    QFlags<QIODevice::OpenModeFlag> appendFlagGlonass;
    411     QFlags<QIODevice::OpenModeFlag> appendFlagGalileo;
    412423
    413424    if ( Qt::CheckState(settings.value("rnxAppend").toInt()) == Qt::Checked &&
     
    426437      _ephFileGalileo   = _ephFileGPS;
    427438      _ephStreamGalileo = _ephStreamGPS;
     439      _ephFileSBAS      = _ephFileGPS;
     440      _ephStreamSBAS    = _ephStreamGPS;
    428441    }
    429442    else if (_rinexVers == 2) {
     
    814827  QMutexLocker locker(&_mutex);
    815828
    816   qDebug() << "t_bncCore::slotNewSBASEph";
    817 }
     829  // Check wrong Ephemerides
     830  // -----------------------
     831  if (sbaseph->x_pos == 0.0 &&
     832      sbaseph->y_pos == 0.0 &&
     833      sbaseph->z_pos == 0.0) {
     834    delete sbaseph;
     835    return;
     836  }
     837
     838  sbasephemeris copy_sbaseph = *sbaseph;
     839  emit newEphSBAS(copy_sbaseph);
     840
     841  printEphHeader();
     842
     843  sbasephemeris** ee = &_sbasEph[sbaseph->satellite - PRN_SBAS_START];
     844
     845  bool replace = false;
     846  if (*ee != 0) {
     847    bncTime oldTime((*ee)->GPSweek_TOE,   double((*ee)->TOE));
     848    bncTime newTime(sbaseph->GPSweek_TOE, double(sbaseph->TOE));
     849    if (newTime > oldTime) {
     850      replace = true;
     851    }
     852  }
     853
     854  if ( *ee == 0 || replace) {
     855    delete *ee;
     856    *ee = sbaseph;
     857    printSBASEph(sbaseph, true);
     858  }
     859  else {
     860    printSBASEph(sbaseph, false);
     861    delete sbaseph;
     862  }
     863}
     864
     865// Print One SBAS Ephemeris
     866////////////////////////////////////////////////////////////////////////////
     867void t_bncCore::printSBASEph(sbasephemeris* ep, bool printFile) {
     868
     869  t_ephSBAS eph;
     870  eph.set(ep);
     871
     872  QString strV2 = eph.toString(t_rnxNavFile::defaultRnxNavVersion2);
     873  QString strV3 = eph.toString(t_rnxObsHeader::defaultRnxObsVersion3);
     874
     875  printOutput(printFile, _ephStreamSBAS, strV2, strV3);
     876}
Note: See TracChangeset for help on using the changeset viewer.