Changeset 11047 in ntrip for trunk/BNC/src/bncantex.cpp


Ignore:
Timestamp:
Sep 28, 2026, 11:17:34 AM (8 hours ago)
Author:
stuerze
Message:

updates regarding RTCM-SSR and some ovarall improvements

File:
1 edited

Legend:

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

    r11021 r11047  
    169169    else if (line.indexOf("END OF ANTENNA") == 60) {
    170170      if (newAntMap) {
     171        if (!newAntMap->blockType.isEmpty()) { // satellite antenna
     172          t_satBlock satBlock;
     173          satBlock.validFrom = newAntMap->validFrom;
     174          satBlock.validTo   = newAntMap->validTo;
     175          satBlock.blockType = newAntMap->blockType;
     176          _satBlocks[newAntMap->antName].append(satBlock);
     177        }
    171178        if (_maps.contains(newAntMap->antName)) {
    172179          delete _maps[newAntMap->antName];
    … …  
    213220        else {
    214221          newAntMap->antName = line.mid(0,20);
     222        }
     223      }
     224      else if (line.indexOf("VALID FROM") == 60 || line.indexOf("VALID UNTIL") == 60) {
     225        QTextStream inLine(&line, QIODevice::ReadOnly);
     226        int year, month, day, hour, min;
     227        double sec;
     228        inLine >> year >> month >> day >> hour >> min >> sec;
     229        bncTime tt;
     230        tt.set(year, month, day, hour, min, sec);
     231        if (line.indexOf("VALID FROM") == 60) {
     232          newAntMap->validFrom = tt;
     233        }
     234        else {
     235          newAntMap->validTo = tt;
    215236        }
    216237      }
    … …  
    942963
    943964}
     965
     966// Satellite block type valid at the given epoch
     967////////////////////////////////////////////////////////////////////////////
     968QString bncAntex::satBlockType(const QString& prn, const bncTime& epoch) const {
     969  QMap<QString, QVector<t_satBlock> >::const_iterator it = _satBlocks.find(prn.mid(0,3));
     970  if (it == _satBlocks.end() || it.value().isEmpty()) {
     971    return QString();
     972  }
     973  const QVector<t_satBlock>& blocks = it.value();
     974  if (!epoch.valid()) {
     975    return blocks.last().blockType;
     976  }
     977  for (int ii = 0; ii < blocks.size(); ii++) {
     978    const t_satBlock& bb = blocks[ii];
     979    if ((!bb.validFrom.valid() || !(epoch < bb.validFrom)) &&
     980        (!bb.validTo.valid()   || epoch < bb.validTo)) {
     981      return bb.blockType;
     982    }
     983  }
     984  return QString();
     985}
Note: See TracChangeset for help on using the changeset viewer.