Index: branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 9353)
+++ branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 9355)
@@ -470,268 +470,269 @@
         }
       }
-
-      if (!outDatedBcep(eph)                    &&  // detected from storage because of no update
-          eph->checkState() != t_eph::bad       &&
-          eph->checkState() != t_eph::unhealthy &&
-          eph->checkState() != t_eph::outdated) {  // detected during reception (bncephuser)
-        QMap<QString, double> codeBiases;
-        QList<phaseBiasSignal> phaseBiasList;
-        phaseBiasesSat pbSat;
-        _phaseBiasInformationDecoded = false;
-
-        while (true) {
-          QString key;
-          int numVal = 0;
-          in >> key;
-          if (in.status() != QTextStream::Ok) {
+    }
+
+    if (eph                                   &&
+       !outDatedBcep(eph)                     &&  // detected from storage because of no update
+        eph->checkState() != t_eph::bad       &&
+        eph->checkState() != t_eph::unhealthy &&
+        eph->checkState() != t_eph::outdated) {  // detected during reception (bncephuser)
+      QMap<QString, double> codeBiases;
+      QList<phaseBiasSignal> phaseBiasList;
+      phaseBiasesSat pbSat;
+      _phaseBiasInformationDecoded = false;
+
+      while (true) {
+        QString key;
+        int numVal = 0;
+        in >> key;
+        if (in.status() != QTextStream::Ok) {
+          break;
+        }
+        if (key == "APC") {
+          in >> numVal;
+          rtnAPC.ReSize(3); rtnAPC = 0.0;
+          for (int ii = 0; ii < numVal; ii++) {
+            in >> rtnAPC[ii];
+          }
+        }
+        else if (key == "Ura") {
+          in >> numVal;
+          if (numVal == 1)
+            in >> rtnUra;
+        }
+        else if (key == "Clk") {
+          in >> numVal;
+          rtnClk.ReSize(3); rtnClk = 0.0;
+          for (int ii = 0; ii < numVal; ii++) {
+            in >> rtnClk[ii];
+          }
+        }
+        else if (key == "ClkSig") {
+          in >> numVal;
+          rtnClkSig.ReSize(3); rtnClkSig = 0.0;
+          for (int ii = 0; ii < numVal; ii++) {
+            in >> rtnClkSig[ii];
+          }
+        }
+        else if (key == "Vel") {
+          in >> numVal;
+          rtnVel.ReSize(3); rtnVel = 0.0;
+          for (int ii = 0; ii < numVal; ii++) {
+            in >> rtnVel[ii];
+          }
+        }
+        else if (key == "CoM") {
+          in >> numVal;
+          rtnCoM.ReSize(3); rtnCoM = 0.0;
+          for (int ii = 0; ii < numVal; ii++) {
+            in >> rtnCoM[ii];
+          }
+        }
+        else if (key == "CodeBias") {
+          in >> numVal;
+          for (int ii = 0; ii < numVal; ii++) {
+            QString type;
+            double value;
+            in >> type >> value;
+            codeBiases[type] = value;
+          }
+        }
+        else if (key == "YawAngle") {
+          _phaseBiasInformationDecoded = true;
+          in >> numVal >> pbSat.yawAngle;
+          if      (pbSat.yawAngle < 0.0) {
+            pbSat.yawAngle += (2*M_PI);
+          }
+          else if (pbSat.yawAngle > 2*M_PI) {
+            pbSat.yawAngle -= (2*M_PI);
+          }
+        }
+        else if (key == "YawRate") {
+          _phaseBiasInformationDecoded = true;
+          in >> numVal >> pbSat.yawRate;
+        }
+        else if (key == "PhaseBias") {
+          _phaseBiasInformationDecoded = true;
+          in >> numVal;
+          for (int ii = 0; ii < numVal; ii++) {
+            phaseBiasSignal pb;
+            in >> pb.type >> pb.bias >> pb.integerIndicator
+              >> pb.wlIndicator >> pb.discontinuityCounter;
+            phaseBiasList.append(pb);
+          }
+        }
+        else {
+          in >> numVal;
+          for (int ii = 0; ii < numVal; ii++) {
+            double dummy;
+            in >> dummy;
+          }
+          emit(newMessage("                      RTNET format error: "
+                          +  lines[ii].toAscii(), false));
+        }
+      }
+
+      struct SsrCorr::ClockOrbit::SatData* sd = 0;
+      if (prn.system() == 'G') {
+        sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
+        ++co.NumberOfSat[CLOCKORBIT_SATGPS];
+      }
+      else if (prn.system() == 'R') {
+        sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
+        ++co.NumberOfSat[CLOCKORBIT_SATGLONASS];
+      }
+      else if (prn.system() == 'E') {
+        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+           + co.NumberOfSat[CLOCKORBIT_SATGALILEO];
+        ++co.NumberOfSat[CLOCKORBIT_SATGALILEO];
+      }
+      else if (prn.system() == 'J') {
+        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+           + CLOCKORBIT_NUMGALILEO
+           + co.NumberOfSat[CLOCKORBIT_SATQZSS];
+        ++co.NumberOfSat[CLOCKORBIT_SATQZSS];
+      }
+      else if (prn.system() == 'S') {
+        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+            + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+            + co.NumberOfSat[CLOCKORBIT_SATSBAS];
+        ++co.NumberOfSat[CLOCKORBIT_SATSBAS];
+      }
+      else if (prn.system() == 'C') {
+        sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+            + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+            + CLOCKORBIT_NUMSBAS
+            + co.NumberOfSat[CLOCKORBIT_SATBDS];
+        ++co.NumberOfSat[CLOCKORBIT_SATBDS];
+      }
+      if (sd) {
+        QString outLine;
+        t_irc irc = processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC,
+                                     rtnUra, rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine);
+        if (irc != success) {/*
+          // very few cases: check states bad and unhealthy are excluded earlier
+          sd->ID = prnStr.mid(1).toInt(); // to prevent G00, R00 entries
+          sd->IOD = eph->IOD();
+          */
+          continue;
+        }
+      }
+
+      // Code Biases
+      // -----------
+      struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
+      if (!codeBiases.isEmpty()) {
+        if (prn.system() == 'G') {
+          biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS];
+          ++bias.NumberOfSat[CLOCKORBIT_SATGPS];
+        }
+        else if (prn.system() == 'R') {
+          biasSat = bias.Sat + CLOCKORBIT_NUMGPS
+                  + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
+          ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
+        }
+        else if (prn.system() == 'E') {
+          biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+                  + bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
+          ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
+        }
+        else if (prn.system() == 'J') {
+          biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+                  + CLOCKORBIT_NUMGALILEO
+                  + bias.NumberOfSat[CLOCKORBIT_SATQZSS];
+          ++bias.NumberOfSat[CLOCKORBIT_SATQZSS];
+        }
+        else if (prn.system() == 'S') {
+          biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+                  + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+                  + bias.NumberOfSat[CLOCKORBIT_SATSBAS];
+          ++bias.NumberOfSat[CLOCKORBIT_SATSBAS];
+        }
+        else if (prn.system() == 'C') {
+          biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
+                  + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+                  + CLOCKORBIT_NUMSBAS
+                  + bias.NumberOfSat[CLOCKORBIT_SATBDS];
+          ++bias.NumberOfSat[CLOCKORBIT_SATBDS];
+        }
+      }
+
+      if (biasSat) {
+        biasSat->ID = prn.number();
+        biasSat->NumberOfCodeBiases = 0;
+        QMapIterator<QString, double> it(codeBiases);
+        while (it.hasNext()) {
+          it.next();
+          int ii = biasSat->NumberOfCodeBiases;
+          if (ii >= CLOCKORBIT_NUMBIAS)
             break;
-          }
-          if (key == "APC") {
-            in >> numVal;
-            rtnAPC.ReSize(3); rtnAPC = 0.0;
-            for (int ii = 0; ii < numVal; ii++) {
-              in >> rtnAPC[ii];
-            }
-          }
-          else if (key == "Ura") {
-            in >> numVal;
-            if (numVal == 1)
-              in >> rtnUra;
-          }
-          else if (key == "Clk") {
-            in >> numVal;
-            rtnClk.ReSize(3); rtnClk = 0.0;
-            for (int ii = 0; ii < numVal; ii++) {
-              in >> rtnClk[ii];
-            }
-          }
-          else if (key == "ClkSig") {
-            in >> numVal;
-            rtnClkSig.ReSize(3); rtnClkSig = 0.0;
-            for (int ii = 0; ii < numVal; ii++) {
-              in >> rtnClkSig[ii];
-            }
-          }
-          else if (key == "Vel") {
-            in >> numVal;
-            rtnVel.ReSize(3); rtnVel = 0.0;
-            for (int ii = 0; ii < numVal; ii++) {
-              in >> rtnVel[ii];
-            }
-          }
-          else if (key == "CoM") {
-            in >> numVal;
-            rtnCoM.ReSize(3); rtnCoM = 0.0;
-            for (int ii = 0; ii < numVal; ii++) {
-              in >> rtnCoM[ii];
-            }
-          }
-          else if (key == "CodeBias") {
-            in >> numVal;
-            for (int ii = 0; ii < numVal; ii++) {
-              QString type;
-              double value;
-              in >> type >> value;
-              codeBiases[type] = value;
-            }
-          }
-          else if (key == "YawAngle") {
-            _phaseBiasInformationDecoded = true;
-            in >> numVal >> pbSat.yawAngle;
-            if      (pbSat.yawAngle < 0.0) {
-              pbSat.yawAngle += (2*M_PI);
-            }
-            else if (pbSat.yawAngle > 2*M_PI) {
-              pbSat.yawAngle -= (2*M_PI);
-            }
-          }
-          else if (key == "YawRate") {
-            _phaseBiasInformationDecoded = true;
-            in >> numVal >> pbSat.yawRate;
-          }
-          else if (key == "PhaseBias") {
-            _phaseBiasInformationDecoded = true;
-            in >> numVal;
-            for (int ii = 0; ii < numVal; ii++) {
-              phaseBiasSignal pb;
-              in >> pb.type >> pb.bias >> pb.integerIndicator
-                >> pb.wlIndicator >> pb.discontinuityCounter;
-              phaseBiasList.append(pb);
-            }
-          }
-          else {
-            in >> numVal;
-            for (int ii = 0; ii < numVal; ii++) {
-              double dummy;
-              in >> dummy;
-            }
-            emit(newMessage("                      RTNET format error: "
-                            +  lines[ii].toAscii(), false));
-          }
-        }
-
-        struct SsrCorr::ClockOrbit::SatData* sd = 0;
-        if (prn.system() == 'G') {
-          sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
-          ++co.NumberOfSat[CLOCKORBIT_SATGPS];
-        }
-        else if (prn.system() == 'R') {
-          sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS];
-          ++co.NumberOfSat[CLOCKORBIT_SATGLONASS];
-        }
-        else if (prn.system() == 'E') {
-          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-             + co.NumberOfSat[CLOCKORBIT_SATGALILEO];
-          ++co.NumberOfSat[CLOCKORBIT_SATGALILEO];
-        }
-        else if (prn.system() == 'J') {
-          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-             + CLOCKORBIT_NUMGALILEO
-             + co.NumberOfSat[CLOCKORBIT_SATQZSS];
-          ++co.NumberOfSat[CLOCKORBIT_SATQZSS];
-        }
-        else if (prn.system() == 'S') {
-          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-              + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-              + co.NumberOfSat[CLOCKORBIT_SATSBAS];
-          ++co.NumberOfSat[CLOCKORBIT_SATSBAS];
-        }
-        else if (prn.system() == 'C') {
-          sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-              + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-              + CLOCKORBIT_NUMSBAS
-              + co.NumberOfSat[CLOCKORBIT_SATBDS];
-          ++co.NumberOfSat[CLOCKORBIT_SATBDS];
-        }
-        if (sd) {
-          QString outLine;
-          t_irc irc = processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC,
-                                       rtnUra, rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine);
-          if (irc != success) {/*
-            // very few cases: check states bad and unhealthy are excluded earlier
-            sd->ID = prnStr.mid(1).toInt(); // to prevent G00, R00 entries
-            sd->IOD = eph->IOD();
-            */
-            continue;
-          }
-        }
-
-        // Code Biases
-        // -----------
-        struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
-        if (!codeBiases.isEmpty()) {
-          if (prn.system() == 'G') {
-            biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS];
-            ++bias.NumberOfSat[CLOCKORBIT_SATGPS];
-          }
-          else if (prn.system() == 'R') {
-            biasSat = bias.Sat + CLOCKORBIT_NUMGPS
-                    + bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
-            ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS];
-          }
-          else if (prn.system() == 'E') {
-            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-                    + bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
-            ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO];
-          }
-          else if (prn.system() == 'J') {
-            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-                    + CLOCKORBIT_NUMGALILEO
-                    + bias.NumberOfSat[CLOCKORBIT_SATQZSS];
-            ++bias.NumberOfSat[CLOCKORBIT_SATQZSS];
-          }
-          else if (prn.system() == 'S') {
-            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-                    + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-                    + bias.NumberOfSat[CLOCKORBIT_SATSBAS];
-            ++bias.NumberOfSat[CLOCKORBIT_SATSBAS];
-          }
-          else if (prn.system() == 'C') {
-            biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS
-                    + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-                    + CLOCKORBIT_NUMSBAS
-                    + bias.NumberOfSat[CLOCKORBIT_SATBDS];
-            ++bias.NumberOfSat[CLOCKORBIT_SATBDS];
-          }
-        }
-
-        if (biasSat) {
-          biasSat->ID = prn.number();
-          biasSat->NumberOfCodeBiases = 0;
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            int ii = biasSat->NumberOfCodeBiases;
-            if (ii >= CLOCKORBIT_NUMBIAS)
-              break;
-            SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), it.key().toStdString());
-            if (type != _ssrCorr->RESERVED) {
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = type;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-          }
-        }
-
-        // Phase Biases
-        // ------------
-        struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
-        if (prn.system()      == 'G') {
-          phasebiasSat = phasebias.Sat
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
-        }
-        else if (prn.system() == 'R') {
-          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
-        }
-        else if (prn.system() == 'E') {
-          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
-        }
-        else if (prn.system() == 'J') {
-          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
-                       + CLOCKORBIT_NUMGALILEO
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
-        }
-        else if (prn.system() == 'S') {
-          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
-                       + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
-        }
-        else if (prn.system() == 'C') {
-          phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
-                       + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
-                       + CLOCKORBIT_NUMSBAS
-                       + phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
-          ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
-        }
-
-        if (phasebiasSat && _phaseBiasInformationDecoded) {
-          phasebias.DispersiveBiasConsistencyIndicator = dispersiveBiasConsistenyIndicator;
-          phasebias.MWConsistencyIndicator = mwConsistencyIndicator;
-          phasebiasSat->ID = prn.number();
-          phasebiasSat->NumberOfPhaseBiases = 0;
-          phasebiasSat->YawAngle = pbSat.yawAngle;
-          phasebiasSat->YawRate = pbSat.yawRate;
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            int ii = phasebiasSat->NumberOfPhaseBiases;
-            if (ii >= CLOCKORBIT_NUMBIAS)
-              break;
-            SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), pbSig.type.toStdString());
-            if (type != _ssrCorr->RESERVED) {
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = type;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
+          SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), it.key().toStdString());
+          if (type != _ssrCorr->RESERVED) {
+            biasSat->NumberOfCodeBiases += 1;
+            biasSat->Biases[ii].Type = type;
+            biasSat->Biases[ii].Bias = it.value();
+          }
+        }
+      }
+
+      // Phase Biases
+      // ------------
+      struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
+      if (prn.system()      == 'G') {
+        phasebiasSat = phasebias.Sat
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS];
+      }
+      else if (prn.system() == 'R') {
+        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS];
+      }
+      else if (prn.system() == 'E') {
+        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO];
+      }
+      else if (prn.system() == 'J') {
+        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
+                     + CLOCKORBIT_NUMGALILEO
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS];
+      }
+      else if (prn.system() == 'S') {
+        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
+                     + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS];
+      }
+      else if (prn.system() == 'C') {
+        phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS  + CLOCKORBIT_NUMGLONASS
+                     + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS
+                     + CLOCKORBIT_NUMSBAS
+                     + phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
+        ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS];
+      }
+
+      if (phasebiasSat && _phaseBiasInformationDecoded) {
+        phasebias.DispersiveBiasConsistencyIndicator = dispersiveBiasConsistenyIndicator;
+        phasebias.MWConsistencyIndicator = mwConsistencyIndicator;
+        phasebiasSat->ID = prn.number();
+        phasebiasSat->NumberOfPhaseBiases = 0;
+        phasebiasSat->YawAngle = pbSat.yawAngle;
+        phasebiasSat->YawRate = pbSat.yawRate;
+        QListIterator<phaseBiasSignal> it(phaseBiasList);
+        while (it.hasNext()) {
+          const phaseBiasSignal &pbSig = it.next();
+          int ii = phasebiasSat->NumberOfPhaseBiases;
+          if (ii >= CLOCKORBIT_NUMBIAS)
+            break;
+          SsrCorr::CodeType type = _ssrCorr->rnxTypeToCodeType(prn.system(), pbSig.type.toStdString());
+          if (type != _ssrCorr->RESERVED) {
+            phasebiasSat->NumberOfPhaseBiases += 1;
+            phasebiasSat->Biases[ii].Type = type;
+            phasebiasSat->Biases[ii].Bias = pbSig.bias;
+            phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
+            phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
+            phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
           }
         }
