Changeset 9351 in ntrip


Ignore:
Timestamp:
Feb 23, 2021, 10:16:06 PM (3 months ago)
Author:
stuerze
Message:

minor changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp

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