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


Ignore:
Timestamp:
Jun 20, 2022, 4:54:59 PM (23 months ago)
Author:
stuerze
Message:

some more changes to consider RINEX Version 4 nav file (EPH key only)

File:
1 edited

Legend:

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

    r9367 r9765  
    2121t_eph::t_eph() {
    2222  _checkState = unchecked;
     23  _navType = undefined;
    2324  _orbCorr    = 0;
    2425  _clkCorr    = 0;
     
    104105  return success;
    105106}
     107
     108
     109//
     110//////////////////////////////////////////////////////////////////////////////
     111t_irc t_eph::setNavType(QString navTypeStr) {
     112  if      (navTypeStr == "LNAV") {_navType =  t_eph::LNAV;}
     113  else if (navTypeStr == "FDMA") {_navType =  t_eph::FDMA;}
     114  else if (navTypeStr == "FNAV") {_navType =  t_eph::FNAV;}
     115  else if (navTypeStr == "INAF") {_navType =  t_eph::INAF;}
     116  else if (navTypeStr == "D1")   {_navType =  t_eph::D1;}
     117  else if (navTypeStr == "D2")   {_navType =  t_eph::D2;}
     118  else if (navTypeStr == "SBAS") {_navType =  t_eph::SBASL1;}
     119  else if (navTypeStr == "CNAV") {_navType =  t_eph::CNAV;}
     120  else if (navTypeStr == "CNV1") {_navType =  t_eph::CNV1;}
     121  else if (navTypeStr == "CNV2") {_navType =  t_eph::CNV2;}
     122  else if (navTypeStr == "CNV3") {_navType =  t_eph::CNV3;}
     123  else {_navType = t_eph::undefined;  return failure;}
     124
     125  return success;
     126}
     127
     128//
     129//////////////////////////////////////////////////////////////////////////////
     130QString t_eph::navTypeString(e_navType navType, const t_prn& prn, double version) {
     131    QString navTypeString = "";
     132    QString epochStart;
     133    QString eolStr;
     134
     135    if (version < 4.0) {
     136      return navTypeString;
     137    }
     138
     139    if (version == 99.0) {
     140      epochStart = "";
     141      eolStr = "";
     142    }
     143    else {
     144      epochStart = "> ";
     145      eolStr = "\n";
     146    }
     147
     148    QString ephStr = QString("EPH %1 ").arg(prn.toString().c_str());
     149    switch (navType) {
     150      case undefined:
     151        navTypeString = epochStart + ephStr + "unknown" + eolStr;
     152        break;
     153      case LNAV:
     154        navTypeString = epochStart + ephStr + "LNAV" + eolStr;
     155        break;
     156      case FDMA:
     157        navTypeString = epochStart + ephStr + "FDMA" + eolStr;
     158        break;
     159      case FNAV:
     160        navTypeString = epochStart + ephStr + "FNAV" + eolStr;
     161        break;
     162      case INAF:
     163        navTypeString = epochStart + ephStr + "INAV" + eolStr;
     164        break;
     165      case D1:
     166        navTypeString = epochStart + ephStr + "D1" + eolStr;
     167        break;
     168      case D2:
     169        navTypeString = epochStart + ephStr + "D2" + eolStr;
     170        break;
     171      case SBASL1:
     172        navTypeString = epochStart + ephStr + "SBAS" + eolStr;
     173        break;
     174      case CNAV:
     175        navTypeString = epochStart + ephStr + "CNAV" + eolStr;
     176        break;
     177      case CNV1:
     178        navTypeString = epochStart + ephStr + "CNV1" + eolStr;
     179        break;
     180      case CNV2:
     181        navTypeString = epochStart + ephStr + "CNV2" + eolStr;
     182        break;
     183      case CNV3:
     184        navTypeString = epochStart + ephStr + "CNV3" + eolStr;
     185        break;
     186    }
     187    return navTypeString;
     188  }
    106189
    107190//
     
    134217      .arg(min,        2)
    135218      .arg(sec, 5, 'f',1);
     219  }
     220  else if (version ==  99) {
     221    out << QString(" %1 %2 %3 %4 %5 %6")
     222      .arg(year,     4)
     223      .arg(month,    2, 10, QChar('0'))
     224      .arg(day,      2, 10, QChar('0'))
     225      .arg(hour,     2, 10, QChar('0'))
     226      .arg(min,      2, 10, QChar('0'))
     227      .arg(int(sec), 2, 10, QChar('0'));
    136228  }
    137229  else {
     
    413505QString t_ephGPS::toString(double version) const {
    414506
    415   QString rnxStr = rinexDateStr(_TOC, _prn, version);
     507  QString navStr = navTypeString(_navType, _prn, version);
     508  QString rnxStr = navStr + rinexDateStr(_TOC, _prn, version);
    416509
    417510  QTextStream out(&rnxStr);
     
    720813QString t_ephGlo::toString(double version) const {
    721814
    722   QString rnxStr = rinexDateStr(_TOC -_gps_utc, _prn, version);
     815  QString navStr = navTypeString(_navType, _prn, version);
     816  QString rnxStr = navStr + rinexDateStr(_TOC -_gps_utc, _prn, version);
    723817  int nd = int((_TOC - _gps_utc).gpssec()) / (24.0*60.0*60.0);
    724818  QTextStream out(&rnxStr);
     
    11391233QString t_ephGal::toString(double version) const {
    11401234
    1141   QString rnxStr = rinexDateStr(_TOC, _prn, version);
     1235  QString navStr = navTypeString(_navType, _prn, version);
     1236  QString rnxStr = navStr + rinexDateStr(_TOC, _prn, version);
    11421237
    11431238  QTextStream out(&rnxStr);
     
    14391534QString t_ephSBAS::toString(double version) const {
    14401535
    1441   QString rnxStr = rinexDateStr(_TOC, _prn, version);
     1536  QString navStr = navTypeString(_navType, _prn, version);
     1537  QString rnxStr = navStr + rinexDateStr(_TOC, _prn, version);
    14421538
    14431539  QTextStream out(&rnxStr);
     
    17941890QString t_ephBDS::toString(double version) const {
    17951891
    1796   QString rnxStr = rinexDateStr(_TOC-14.0, _prn, version);
     1892  QString navStr = navTypeString(_navType, _prn, version);
     1893  QString rnxStr = navStr + rinexDateStr(_TOC-14.0, _prn, version);
    17971894
    17981895  QTextStream out(&rnxStr);
Note: See TracChangeset for help on using the changeset viewer.