Changeset 10599 in ntrip for trunk/BNC/src/RTCM


Ignore:
Timestamp:
Jan 31, 2025, 10:30:08 AM (21 hours ago)
Author:
stuerze
Message:

ADDED: consideration of NAV type in all applications

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM/RTCM2Decoder.cpp

    r9088 r10599  
    134134        for (int iSat = 0; iSat < _ObsBlock.nSat; iSat++) {
    135135          t_satObs obs;
     136          char sys;
     137          int num, flag;
    136138          if (_ObsBlock.PRN[iSat] > 100) {
    137             obs._prn.set('R', _ObsBlock.PRN[iSat] % 100);
    138           } else {
    139             obs._prn.set('G', _ObsBlock.PRN[iSat]);
     139            sys = 'R';
     140            num = _ObsBlock.PRN[iSat] % 100;
    140141          }
    141           char sys = obs._prn.system();
     142          else {
     143            sys = 'G';
     144            num = _ObsBlock.PRN[iSat];
     145          }
     146          flag = t_corrSSR::getSsrNavTypeFlag(sys, num);
     147          obs._prn.set(sys, num, flag);
    142148          obs._time.set(epochWeek, epochSecs);
    143149
     
    283289    // end test
    284290
    285     QString prn;
     291    t_prn prn;
    286292    char sys;
     293    int num, flag;
    287294    if (corr->PRN < 200) {
    288295      sys = 'G';
    289       prn = sys + QString("%1_0").arg(corr->PRN, 2, 10, QChar('0'));
    290     } else {
     296      num = corr->PRN;
     297    }
     298    else {
    291299      sys = 'R';
    292       prn = sys + QString("%1_0").arg(corr->PRN - 200, 2, 10, QChar('0'));
    293     }
     300      num = corr->PRN - 200;
     301    }
     302    flag = t_corrSSR::getSsrNavTypeFlag(sys, num);
     303    prn.set(sys, num, flag);
    294304
    295305    double L1 = 0;
     
    353363
    354364      // Select corresponding ephemerides
    355       const t_eph* ephLast = _ephUser.ephLast(prn);
    356       const t_eph* ephPrev = _ephUser.ephPrev(prn);
     365      QString prnInternalStr(prn.toInternalString().c_str());
     366      const t_eph* ephLast = _ephUser.ephLast(prnInternalStr);
     367      const t_eph* ephPrev = _ephUser.ephPrev(prnInternalStr);
    357368      if (ephLast && ephLast->IOD() == IODcorr) {
    358369        eph = ephLast;
     
    376387        if (*obsVal == 0)
    377388          *obsVal = ZEROVALUE;
    378 
     389        char sys;
     390        int num, flag;
    379391        if (corr->PRN < 200) {
    380           new_obs._prn.set('G', corr->PRN);
    381         } else {
    382           new_obs._prn.set('R', corr->PRN - 200);
     392          sys = 'G';
     393          num = corr->PRN;
    383394        }
     395        else {
     396          sys = 'R';
     397          num = corr->PRN - 200;
     398        }
     399        flag = t_corrSSR::getSsrNavTypeFlag(sys, num);
     400        new_obs._prn.set(sys, num, flag);
    384401        new_obs._time.set(GPSWeek_rcv, GPSWeeks_rcv);
    385402
     
    432449
    433450      errmsg.push_back(
    434           "missing eph for " + string(prn.toLatin1().data()) + " , IODs "
     451          "missing eph for " + prn.toString() + " , IODs "
    435452              + missingIODstr.str());
    436453    }
Note: See TracChangeset for help on using the changeset viewer.