Changeset 8929 in ntrip


Ignore:
Timestamp:
Apr 30, 2020, 10:58:57 AM (3 months ago)
Author:
stuerze
Message:

GPS fit intervall: different specifications in differet RINEX versions are now considerred

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/BNC_2.12/src/ephemeris.cpp

    r8926 r8929  
    306306      // fitInterval is not valid for IRNSS
    307307      if (type() != t_eph::IRNSS) {
    308         // Rinex 3.04:
    309308        double fitIntervalRnx;
    310309        readDbl(line, pos[1], fieldLen, fitIntervalRnx);
    311         if        (type() == t_eph::GPS) {  // specified as time period for GPS
    312           _fitInterval = fitIntervalRnx;
     310        if        (type() == t_eph::GPS) {
     311          if (rnxVersion < 3.03) {// specified as flag for GPS
     312            _fitInterval = fitIntervalFromFlag(fitIntervalRnx, _IODC, t_eph::GPS);
     313          } else {                // specified as time period for GPS since 3.03
     314            _fitInterval = fitIntervalRnx;
     315          }
    313316        } else if (type() == t_eph::QZSS) { // specified as flag for QZSS
    314317          _fitInterval = fitIntervalFromFlag(fitIntervalRnx, _IODC, t_eph::QZSS);
     
    484487  }
    485488  // fitInterval
    486   if (type() == t_eph::IRNSS) {           // not valid for IRNSS
     489  if (type() == t_eph::IRNSS) {            // not valid for IRNSS
    487490    out << QString(fmt)
    488491      .arg(tot,          19, 'e', 12)
     
    492495  }
    493496  else {
    494     // Rinex 3.04:
    495     double fitIntervalRnx = _fitInterval; // specified as time period in hours for GPS
    496     if (type() == t_eph::QZSS) {          // specified as flag for QZSS
     497    double fitIntervalRnx = _fitInterval; // specified as time period in hours for GPS since RINEX 3.03
     498    if      (type() == t_eph::GPS && version < 3.03) { // specified as flag in versions < 3.03
     499      (_fitInterval == 4.0) ? fitIntervalRnx = 0.0 : fitIntervalRnx = 1.0;
     500    }
     501    else if (type() == t_eph::QZSS) {    // specified as flag for QZSS
    497502      (_fitInterval == 2.0) ? fitIntervalRnx = 0.0 : fitIntervalRnx = 1.0;
    498503    }
Note: See TracChangeset for help on using the changeset viewer.