Changeset 11192 in ntrip for trunk/BNC/src/rinex/rnxnavfile.cpp


Ignore:
Timestamp:
Nov 10, 2026, 12:13:23 PM (less than one hour ago)
Author:
stuerze
Message:

rinex version 4.02 now fully supported

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/rinex/rnxnavfile.cpp

    r11158 r11192  
    152152  QString navType;
    153153  QString prn;
     154  bool    ephPending = false; // RINEX 4: "> EPH" line read, data lines follow
    154155
    155156  while (stream->status() == QTextStream::Ok && !stream->atEnd()) {
    156     char sys;
     157    char sys = 0;
    157158    QString line = stream->readLine();
    158159    if (line.isEmpty()) {
    … …  
    176177      navType = "";
    177178    }
    178     // RINEX version 4
     179    // RINEX version 4: data lines of an EPH record follow its "> EPH" line;
     180    // anything else (e.g. the remainder of a record that could not be read)
     181    // is skipped
     182    else if (version() >= 4.0 && firstStr != ">") {
     183      if (!ephPending || line.left(1) != prn.left(1)) {
     184        ephPending = false;
     185        continue;
     186      }
     187      ephPending = false;
     188      sys = prn[0].toLatin1();
     189    }
    179190    else if (version() >= 4.0 && firstStr == ">") {
     191      ephPending = false;
     192      if (hlp.size() < 4) {
     193        continue;
     194      }
    180195      QString key = hlp.at(1);
    181196      prn = hlp.at(2);
    182197      sys = prn[0].toLatin1();
    183198      navType = hlp.at(3);
     199      ephPending = (key == "EPH");
    184200
    185201      // ALL Non-EPH messages are currently ignored
    … …  
    206222          if ((sys == 'I' && navType == "L1NV") || // I: KLOB, NEQN
    207223              (sys == 'J' && navType == "CNVX")) { // J: WIDE, JAPN
    208             QString navSubType = hlp.at(4);
     224            QString navSubType = hlp.value(4); // RINEX >= 4.02 only
    209225            if      (navSubType == "KLOB") {
    210226              lines2skip += 1;
    … …  
    244260      if (version() >= 3.05) {
    245261        nLines += 1;
     262      }
     263      if (navType == "L1OC" || navType == "L3OC") {
     264        nLines = 9;
    246265      }
    247266      for (int ii = 1; ii < nLines; ii++) {
Note: See TracChangeset for help on using the changeset viewer.