Changeset 9350 in ntrip for trunk/BNC/src


Ignore:
Timestamp:
Feb 23, 2021, 10:11:15 PM (3 years ago)
Author:
stuerze
Message:

minor changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/upload/bncrtnetuploadcaster.cpp

    r9275 r9350  
    472472        }
    473473      }
    474     }
    475 
    476     if (eph  &&  !outDatedBcep(eph)           &&  // detected from storage because of no update
    477         eph->checkState() != t_eph::bad       &&
    478         eph->checkState() != t_eph::unhealthy &&
    479         eph->checkState() != t_eph::outdated) {  // detected during reception (bncephuser)
    480       QMap<QString, double> codeBiases;
    481       QList<phaseBiasSignal> phaseBiasList;
    482       phaseBiasesSat pbSat;
    483       _phaseBiasInformationDecoded = false;
    484 
    485       while (true) {
    486         QString key;
    487         int numVal = 0;
    488         in >> key;
    489         if (in.status() != QTextStream::Ok) {
    490           break;
    491         }
    492         if (key == "APC") {
    493           in >> numVal;
    494           rtnAPC.ReSize(3); rtnAPC = 0.0;
    495           for (int ii = 0; ii < numVal; ii++) {
    496             in >> rtnAPC[ii];
    497           }
    498         }
    499         else if (key == "Ura") {
    500           in >> numVal;
    501           if (numVal == 1)
    502             in >> rtnUra;
    503         }
    504         else if (key == "Clk") {
    505           in >> numVal;
    506           rtnClk.ReSize(3); rtnClk = 0.0;
    507           for (int ii = 0; ii < numVal; ii++) {
    508             in >> rtnClk[ii];
    509           }
    510         }
    511         else if (key == "ClkSig") {
    512           in >> numVal;
    513           rtnClkSig.ReSize(3); rtnClkSig = 0.0;
    514           for (int ii = 0; ii < numVal; ii++) {
    515             in >> rtnClkSig[ii];
    516           }
    517         }
    518         else if (key == "Vel") {
    519           in >> numVal;
    520           rtnVel.ReSize(3); rtnVel = 0.0;
    521           for (int ii = 0; ii < numVal; ii++) {
    522             in >> rtnVel[ii];
    523           }
    524         }
    525         else if (key == "CoM") {
    526           in >> numVal;
    527           rtnCoM.ReSize(3); rtnCoM = 0.0;
    528           for (int ii = 0; ii < numVal; ii++) {
    529             in >> rtnCoM[ii];
    530           }
    531         }
    532         else if (key == "CodeBias") {
    533           in >> numVal;
    534           for (int ii = 0; ii < numVal; ii++) {
    535             QString type;
    536             double value;
    537             in >> type >> value;
    538             codeBiases[type] = value;
    539           }
    540         }
    541         else if (key == "YawAngle") {
    542           _phaseBiasInformationDecoded = true;
    543           in >> numVal >> pbSat.yawAngle;
    544           if      (pbSat.yawAngle < 0.0) {
    545             pbSat.yawAngle += (2*M_PI);
    546           }
    547           else if (pbSat.yawAngle > 2*M_PI) {
    548             pbSat.yawAngle -= (2*M_PI);
    549           }
    550         }
    551         else if (key == "YawRate") {
    552           _phaseBiasInformationDecoded = true;
    553           in >> numVal >> pbSat.yawRate;
    554         }
    555         else if (key == "PhaseBias") {
    556           _phaseBiasInformationDecoded = true;
    557           in >> numVal;
    558           for (int ii = 0; ii < numVal; ii++) {
    559             phaseBiasSignal pb;
    560             in >> pb.type >> pb.bias >> pb.integerIndicator
    561               >> pb.wlIndicator >> pb.discontinuityCounter;
    562             phaseBiasList.append(pb);
    563           }
    564         }
    565         else {
    566           in >> numVal;
    567           for (int ii = 0; ii < numVal; ii++) {
    568             double dummy;
    569             in >> dummy;
    570           }
    571           emit(newMessage("                      RTNET format error: "
    572                           +  lines[ii].toLatin1(), false));
    573         }
    574       }
    575 
    576       struct SsrCorr::ClockOrbit::SatData* sd = 0;
    577       if (prn.system() == 'G') {
    578         sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
    579         ++co.NumberOfSat[CLOCKORBIT_SATGPS];
    580       }
    581       else if (prn.system() == 'R') {
    582         sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
    583         ++co.NumberOfSat[CLOCKORBIT_SATGLONASS];
    584       }
    585       else if (prn.system() == 'E') {
    586         sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    587            + co.NumberOfSat[CLOCKORBIT_SATGALILEO];
    588         ++co.NumberOfSat[CLOCKORBIT_SATGALILEO];
    589       }
    590       else if (prn.system() == 'J') {
    591         sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    592            + CLOCKORBIT_NUMGALILEO
    593            + co.NumberOfSat[CLOCKORBIT_SATQZSS];
    594         ++co.NumberOfSat[CLOCKORBIT_SATQZSS];
    595       }
    596       else if (prn.system() == 'S') {
    597         sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    598             + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    599             + co.NumberOfSat[CLOCKORBIT_SATSBAS];
    600         ++co.NumberOfSat[CLOCKORBIT_SATSBAS];
    601       }
    602       else if (prn.system() == 'C') {
    603         sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    604             + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    605             + CLOCKORBIT_NUMSBAS
    606             + co.NumberOfSat[CLOCKORBIT_SATBDS];
    607         ++co.NumberOfSat[CLOCKORBIT_SATBDS];
    608       }
    609       if (sd) {
    610         QString outLine;
    611         t_irc irc = processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC,
    612                                      rtnUra, rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine);
    613         if (irc != success) {/*
    614           // very few cases: check states bad and unhealthy are excluded earlier
    615           sd->ID = prnStr.mid(1).toInt(); // to prevent G00, R00 entries
    616           sd->IOD = eph->IOD();
    617           */
    618           continue;
    619         }
    620       }
    621 
    622       // Code Biases
    623       // -----------
    624       struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
    625       if (!codeBiases.isEmpty()) {
     474
     475      if (!outDatedBcep(eph)                    &&  // detected from storage because of no update
     476          eph->checkState() != t_eph::bad       &&
     477          eph->checkState() != t_eph::unhealthy &&
     478          eph->checkState() != t_eph::outdated) {   // detected during reception (bncephuser)
     479        QMap<QString, double> codeBiases;
     480        QList<phaseBiasSignal> phaseBiasList;
     481        phaseBiasesSat pbSat;
     482        _phaseBiasInformationDecoded = false;
     483
     484        while (true) {
     485          QString key;
     486          int numVal = 0;
     487          in >> key;
     488          if (in.status() != QTextStream::Ok) {
     489            break;
     490          }
     491          if (key == "APC") {
     492            in >> numVal;
     493            rtnAPC.ReSize(3); rtnAPC = 0.0;
     494            for (int ii = 0; ii < numVal; ii++) {
     495              in >> rtnAPC[ii];
     496            }
     497          }
     498          else if (key == "Ura") {
     499            in >> numVal;
     500            if (numVal == 1)
     501              in >> rtnUra;
     502          }
     503          else if (key == "Clk") {
     504            in >> numVal;
     505            rtnClk.ReSize(3); rtnClk = 0.0;
     506            for (int ii = 0; ii < numVal; ii++) {
     507              in >> rtnClk[ii];
     508            }
     509          }
     510          else if (key == "ClkSig") {
     511            in >> numVal;
     512            rtnClkSig.ReSize(3); rtnClkSig = 0.0;
     513            for (int ii = 0; ii < numVal; ii++) {
     514              in >> rtnClkSig[ii];
     515            }
     516          }
     517          else if (key == "Vel") {
     518            in >> numVal;
     519            rtnVel.ReSize(3); rtnVel = 0.0;
     520            for (int ii = 0; ii < numVal; ii++) {
     521              in >> rtnVel[ii];
     522            }
     523          }
     524          else if (key == "CoM") {
     525            in >> numVal;
     526            rtnCoM.ReSize(3); rtnCoM = 0.0;
     527            for (int ii = 0; ii < numVal; ii++) {
     528              in >> rtnCoM[ii];
     529            }
     530          }
     531          else if (key == "CodeBias") {
     532            in >> numVal;
     533            for (int ii = 0; ii < numVal; ii++) {
     534              QString type;
     535              double value;
     536              in >> type >> value;
     537              codeBiases[type] = value;
     538            }
     539          }
     540          else if (key == "YawAngle") {
     541            _phaseBiasInformationDecoded = true;
     542            in >> numVal >> pbSat.yawAngle;
     543            if      (pbSat.yawAngle < 0.0) {
     544              pbSat.yawAngle += (2*M_PI);
     545            }
     546            else if (pbSat.yawAngle > 2*M_PI) {
     547              pbSat.yawAngle -= (2*M_PI);
     548            }
     549          }
     550          else if (key == "YawRate") {
     551            _phaseBiasInformationDecoded = true;
     552            in >> numVal >> pbSat.yawRate;
     553          }
     554          else if (key == "PhaseBias") {
     555            _phaseBiasInformationDecoded = true;
     556            in >> numVal;
     557            for (int ii = 0; ii < numVal; ii++) {
     558              phaseBiasSignal pb;
     559              in >> pb.type >> pb.bias >> pb.integerIndicator
     560                >> pb.wlIndicator >> pb.discontinuityCounter;
     561              phaseBiasList.append(pb);
     562            }
     563          }
     564          else {
     565            in >> numVal;
     566            for (int ii = 0; ii < numVal; ii++) {
     567              double dummy;
     568              in >> dummy;
     569            }
     570            emit(newMessage("                      RTNET format error: "
     571                            +  lines[ii].toLatin1(), false));
     572          }
     573        }
     574
     575        struct SsrCorr::ClockOrbit::SatData* sd = 0;
    626576        if (prn.system() == 'G') {
    627           biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS];
    628           ++bias.NumberOfSat[CLOCKORBIT_SATGPS];
     577          sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
     578          ++co.NumberOfSat[CLOCKORBIT_SATGPS];
    629579        }
    630580        else if (prn.system() == 'R') {
    631           biasSat = bias.Sat + CLOCKORBIT_NUMGPS
    632                   + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
    633           ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     581          sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
     582          ++co.NumberOfSat[CLOCKORBIT_SATGLONASS];
    634583        }
    635584        else if (prn.system() == 'E') {
    636           biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    637                   + bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
    638           ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     585          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     586             + co.NumberOfSat[CLOCKORBIT_SATGALILEO];
     587          ++co.NumberOfSat[CLOCKORBIT_SATGALILEO];
    639588        }
    640589        else if (prn.system() == 'J') {
    641           biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    642                   + CLOCKORBIT_NUMGALILEO
    643                   + bias.NumberOfSat[CLOCKORBIT_SATQZSS];
    644           ++bias.NumberOfSat[CLOCKORBIT_SATQZSS];
     590          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     591             + CLOCKORBIT_NUMGALILEO
     592             + co.NumberOfSat[CLOCKORBIT_SATQZSS];
     593          ++co.NumberOfSat[CLOCKORBIT_SATQZSS];
    645594        }
    646595        else if (prn.system() == 'S') {
    647           biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    648                   + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    649                   + bias.NumberOfSat[CLOCKORBIT_SATSBAS];
    650           ++bias.NumberOfSat[CLOCKORBIT_SATSBAS];
     596          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     597              + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     598              + co.NumberOfSat[CLOCKORBIT_SATSBAS];
     599          ++co.NumberOfSat[CLOCKORBIT_SATSBAS];
    651600        }
    652601        else if (prn.system() == 'C') {
    653           biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
    654                   + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    655                   + CLOCKORBIT_NUMSBAS
    656                   + bias.NumberOfSat[CLOCKORBIT_SATBDS];
    657           ++bias.NumberOfSat[CLOCKORBIT_SATBDS];
    658         }
    659       }
    660 
    661       if (biasSat) {
    662         biasSat->ID = prn.number();
    663         biasSat->NumberOfCodeBiases = 0;
    664         QMapIterator<QString, double> it(codeBiases);
    665         while (it.hasNext()) {
    666           it.next();
    667           int ii = biasSat->NumberOfCodeBiases;
    668           if (ii >= CLOCKORBIT_NUMBIAS)
    669             break;
    670           SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), it.key().toStdString());
    671           if (type != _ssrCorr->RESERVED) {
    672             biasSat->NumberOfCodeBiases += 1;
    673             biasSat->Biases[ii].Type = type;
    674             biasSat->Biases[ii].Bias = it.value();
    675           }
    676         }
    677       }
    678 
    679       // Phase Biases
    680       // ------------
    681       struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
    682       if (prn.system()      == 'G') {
    683         phasebiasSat = phasebias.Sat
    684                      + phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
    685         ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
    686       }
    687       else if (prn.system() == 'R') {
    688         phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS
    689                      + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
    690         ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
    691       }
    692       else if (prn.system() == 'E') {
    693         phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
    694                      + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
    695         ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
    696       }
    697       else if (prn.system() == 'J') {
    698         phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
    699                      + CLOCKORBIT_NUMGALILEO
    700                      + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
    701         ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
    702       }
    703       else if (prn.system() == 'S') {
    704         phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
    705                      + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    706                      + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
    707         ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
    708       }
    709       else if (prn.system() == 'C') {
    710         phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
    711                      + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
    712                      + CLOCKORBIT_NUMSBAS
    713                      + phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
    714         ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
    715       }
    716 
    717       if (phasebiasSat && _phaseBiasInformationDecoded) {
    718         phasebias.DispersiveBiasConsistencyIndicator = dispersiveBiasConsistenyIndicator;
    719         phasebias.MWConsistencyIndicator = mwConsistencyIndicator;
    720         phasebiasSat->ID = prn.number();
    721         phasebiasSat->NumberOfPhaseBiases = 0;
    722         phasebiasSat->YawAngle = pbSat.yawAngle;
    723         phasebiasSat->YawRate = pbSat.yawRate;
    724         QListIterator<phaseBiasSignal> it(phaseBiasList);
    725         while (it.hasNext()) {
    726           const phaseBiasSignal &pbSig = it.next();
    727           int ii = phasebiasSat->NumberOfPhaseBiases;
    728           if (ii >= CLOCKORBIT_NUMBIAS)
    729             break;
    730           SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), pbSig.type.toStdString());
    731           if (type != _ssrCorr->RESERVED) {
    732             phasebiasSat->NumberOfPhaseBiases += 1;
    733             phasebiasSat->Biases[ii].Type = type;
    734             phasebiasSat->Biases[ii].Bias = pbSig.bias;
    735             phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
    736             phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
    737             phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
     602          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     603              + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     604              + CLOCKORBIT_NUMSBAS
     605              + co.NumberOfSat[CLOCKORBIT_SATBDS];
     606          ++co.NumberOfSat[CLOCKORBIT_SATBDS];
     607        }
     608        if (sd) {
     609          QString outLine;
     610          t_irc irc = processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC,
     611                                       rtnUra, rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine);
     612          if (irc != success) {/*
     613            // very few cases: check states bad and unhealthy are excluded earlier
     614            sd->ID = prnStr.mid(1).toInt(); // to prevent G00, R00 entries
     615            sd->IOD = eph->IOD();
     616            */
     617            continue;
     618          }
     619        }
     620
     621        // Code Biases
     622        // -----------
     623        struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
     624        if (!codeBiases.isEmpty()) {
     625          if (prn.system() == 'G') {
     626            biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS];
     627            ++bias.NumberOfSat[CLOCKORBIT_SATGPS];
     628          }
     629          else if (prn.system() == 'R') {
     630            biasSat = bias.Sat + CLOCKORBIT_NUMGPS
     631                    + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     632            ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     633          }
     634          else if (prn.system() == 'E') {
     635            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     636                    + bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     637            ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     638          }
     639          else if (prn.system() == 'J') {
     640            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     641                    + CLOCKORBIT_NUMGALILEO
     642                    + bias.NumberOfSat[CLOCKORBIT_SATQZSS];
     643            ++bias.NumberOfSat[CLOCKORBIT_SATQZSS];
     644          }
     645          else if (prn.system() == 'S') {
     646            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     647                    + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     648                    + bias.NumberOfSat[CLOCKORBIT_SATSBAS];
     649            ++bias.NumberOfSat[CLOCKORBIT_SATSBAS];
     650          }
     651          else if (prn.system() == 'C') {
     652            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
     653                    + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     654                    + CLOCKORBIT_NUMSBAS
     655                    + bias.NumberOfSat[CLOCKORBIT_SATBDS];
     656            ++bias.NumberOfSat[CLOCKORBIT_SATBDS];
     657          }
     658        }
     659
     660        if (biasSat) {
     661          biasSat->ID = prn.number();
     662          biasSat->NumberOfCodeBiases = 0;
     663          QMapIterator<QString, double> it(codeBiases);
     664          while (it.hasNext()) {
     665            it.next();
     666            int ii = biasSat->NumberOfCodeBiases;
     667            if (ii >= CLOCKORBIT_NUMBIAS)
     668              break;
     669            SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), it.key().toStdString());
     670            if (type != _ssrCorr->RESERVED) {
     671              biasSat->NumberOfCodeBiases += 1;
     672              biasSat->Biases[ii].Type = type;
     673              biasSat->Biases[ii].Bias = it.value();
     674            }
     675          }
     676        }
     677
     678        // Phase Biases
     679        // ------------
     680        struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
     681        if (prn.system()      == 'G') {
     682          phasebiasSat = phasebias.Sat
     683                       + phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
     684          ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
     685        }
     686        else if (prn.system() == 'R') {
     687          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS
     688                       + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     689          ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
     690        }
     691        else if (prn.system() == 'E') {
     692          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
     693                       + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     694          ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
     695        }
     696        else if (prn.system() == 'J') {
     697          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
     698                       + CLOCKORBIT_NUMGALILEO
     699                       + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
     700          ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
     701        }
     702        else if (prn.system() == 'S') {
     703          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
     704                       + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     705                       + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
     706          ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
     707        }
     708        else if (prn.system() == 'C') {
     709          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
     710                       + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
     711                       + CLOCKORBIT_NUMSBAS
     712                       + phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
     713          ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
     714        }
     715
     716        if (phasebiasSat && _phaseBiasInformationDecoded) {
     717          phasebias.DispersiveBiasConsistencyIndicator = dispersiveBiasConsistenyIndicator;
     718          phasebias.MWConsistencyIndicator = mwConsistencyIndicator;
     719          phasebiasSat->ID = prn.number();
     720          phasebiasSat->NumberOfPhaseBiases = 0;
     721          phasebiasSat->YawAngle = pbSat.yawAngle;
     722          phasebiasSat->YawRate = pbSat.yawRate;
     723          QListIterator<phaseBiasSignal> it(phaseBiasList);
     724          while (it.hasNext()) {
     725            const phaseBiasSignal &pbSig = it.next();
     726            int ii = phasebiasSat->NumberOfPhaseBiases;
     727            if (ii >= CLOCKORBIT_NUMBIAS)
     728              break;
     729            SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), pbSig.type.toStdString());
     730            if (type != _ssrCorr->RESERVED) {
     731              phasebiasSat->NumberOfPhaseBiases += 1;
     732              phasebiasSat->Biases[ii].Type = type;
     733              phasebiasSat->Biases[ii].Bias = pbSig.bias;
     734              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
     735              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
     736              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
     737            }
    738738          }
    739739        }
Note: See TracChangeset for help on using the changeset viewer.