Index: branches/BNC_2.12/src/upload/bncrtnetdecoder.cpp
===================================================================
--- branches/BNC_2.12/src/upload/bncrtnetdecoder.cpp	(revision 8992)
+++ branches/BNC_2.12/src/upload/bncrtnetdecoder.cpp	(revision 9036)
@@ -59,21 +59,22 @@
       ++iRow;
       int  outPort = hlp[1].toInt();
-      bool CoM     = (hlp[5].toInt() == Qt::Checked);
+      bool CoM     = (hlp[6].toInt() == Qt::Checked);
       int PID = 0;
-      if (hlp.size() > 8) {
-        PID = hlp[8].toInt();
+      if (hlp.size() > 9) {
+        PID = hlp[9].toInt();
       }
       int SID = 0;
-      if (hlp.size() > 9) {
-        SID = hlp[9].toInt();
+      if (hlp.size() > 10) {
+        SID = hlp[10].toInt();
       }
       int IOD = 0;
-      if (hlp.size() > 10) {
-        IOD = hlp[10].toInt();
+      if (hlp.size() > 11) {
+        IOD = hlp[11].toInt();
       }
       bncRtnetUploadCaster* newCaster = new bncRtnetUploadCaster(
-                                                       hlp[2], hlp[0], outPort, 
-                                                       hlp[3], hlp[4], CoM,
-                                                       hlp[6], hlp[7], 
+                                                       hlp[2], hlp[0], outPort,
+                                                       hlp[3], hlp[4], hlp[5],
+                                                       CoM,
+                                                       hlp[7], hlp[8],
                                                        PID, SID, IOD, iRow);
       newCaster->start();
Index: branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 8992)
+++ branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp	(revision 9036)
@@ -28,6 +28,7 @@
 ////////////////////////////////////////////////////////////////////////////
 bncRtnetUploadCaster::bncRtnetUploadCaster(const QString& mountpoint,
-    const QString& outHost, int outPort, const QString& password,
-    const QString& crdTrafo, bool CoM, const QString& sp3FileName,
+    const QString& outHost, int outPort,
+    const QString& password,
+    const QString& crdTrafo, const QString& ssrFormat, bool CoM, const QString& sp3FileName,
     const QString& rnxFileName, int PID, int SID, int IOD, int iRow) :
     bncUploadCaster(mountpoint, outHost, outPort, password, iRow, 0) {
@@ -53,4 +54,14 @@
 
   _crdTrafo = crdTrafo;
+
+  _ssrFormat = ssrFormat;
+  _ssrCorr = 0;
+  if      (_ssrFormat == "IGS-SSR") {qDebug() << "bin hier IGS";
+    _ssrCorr = new SsrCorrIgs();
+  }
+  else if (_ssrFormat == "RTCM-SSR") {qDebug() << "bin hier RTCM";
+    _ssrCorr = new SsrCorrRtcm();
+  }
+
   _CoM = CoM;
   _PID = PID;
@@ -225,4 +236,5 @@
   delete _ephUser;
   delete _usedEph;
+  delete _ssrCorr;
 }
 
@@ -291,58 +303,60 @@
           + _casterID.toAscii(), false));
 
-  struct ClockOrbit co;
+  struct SsrCorr::ClockOrbit co;
   memset(&co, 0, sizeof(co));
   co.EpochTime[CLOCKORBIT_SATGPS] = static_cast<int>(epoTime.gpssec());
-#ifdef USE_SSR_RTCM
-  double gt = epoTime.gpssec() + 3 * 3600 - gnumleap(year, month, day);
-  co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0));
-#elif  USE_SSR_IGS
-  co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(epoTime.gpssec());
-#endif
+  if      (_ssrFormat == "RTCM-SSR") {
+    double gt = epoTime.gpssec() + 3 * 3600 - gnumleap(year, month, day);
+    co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0));
+  }
+  else if (_ssrFormat == "IGS-SSR") {
+    co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(epoTime.gpssec());
+  }
   co.EpochTime[CLOCKORBIT_SATGALILEO] = static_cast<int>(epoTime.gpssec());
-  co.EpochTime[CLOCKORBIT_SATQZSS] = static_cast<int>(epoTime.gpssec());
-  co.EpochTime[CLOCKORBIT_SATSBAS] = static_cast<int>(epoTime.gpssec());
-#ifdef USE_SSR_RTCM
-  co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec());
-#elif  USE_SSR_IGS
-  co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec());
-#endif
-  co.Supplied[COBOFS_CLOCK] = 1;
-  co.Supplied[COBOFS_ORBIT] = 1;
-  co.SatRefDatum = DATUM_ITRF;
-  co.SSRIOD = _IOD;
+  co.EpochTime[CLOCKORBIT_SATQZSS]    = static_cast<int>(epoTime.gpssec());
+  co.EpochTime[CLOCKORBIT_SATSBAS]    = static_cast<int>(epoTime.gpssec());
+  if      (_ssrFormat == "RTCM-SSR") {
+    co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec());
+  }
+  else if (_ssrFormat == "IGS-SSR") {
+    co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec());
+  }
+  co.Supplied[_ssrCorr->COBOFS_CLOCK] = 1;
+  co.Supplied[_ssrCorr->COBOFS_ORBIT] = 1;
+  co.SatRefDatum = _ssrCorr->DATUM_ITRF;
+  co.SSRIOD        = _IOD;
   co.SSRProviderID = _PID; // 256 .. BKG,  257 ... EUREF
   co.SSRSolutionID = _SID;
 
-  struct CodeBias bias;
+  struct SsrCorr::CodeBias bias;
   memset(&bias, 0, sizeof(bias));
-  bias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS];
+  bias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
   bias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
   bias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO];
-  bias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS];
-  bias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS];
-  bias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS];
-  bias.SSRIOD = _IOD;
+  bias.EpochTime[CLOCKORBIT_SATQZSS]    = co.EpochTime[CLOCKORBIT_SATQZSS];
+  bias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
+  bias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
+  bias.SSRIOD        = _IOD;
   bias.SSRProviderID = _PID;
   bias.SSRSolutionID = _SID;
 
-  struct PhaseBias phasebias;
+  struct SsrCorr::PhaseBias phasebias;
   memset(&phasebias, 0, sizeof(phasebias));
   unsigned int dispersiveBiasConsistenyIndicator = 0;
   unsigned int mwConsistencyIndicator = 0;
-  phasebias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS];
+  phasebias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
   phasebias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
   phasebias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO];
-  phasebias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS];
-  phasebias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS];
-  phasebias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS];
-  phasebias.SSRIOD = _IOD;
+  phasebias.EpochTime[CLOCKORBIT_SATQZSS]    = co.EpochTime[CLOCKORBIT_SATQZSS];
+  phasebias.EpochTime[CLOCKORBIT_SATSBAS]    = co.EpochTime[CLOCKORBIT_SATSBAS];
+  phasebias.EpochTime[CLOCKORBIT_SATBDS]     = co.EpochTime[CLOCKORBIT_SATBDS];
+  phasebias.SSRIOD        = _IOD;
   phasebias.SSRProviderID = _PID;
   phasebias.SSRSolutionID = _SID;
 
-  struct VTEC vtec;
+  struct SsrCorr::VTEC vtec;
   memset(&vtec, 0, sizeof(vtec));
   vtec.EpochTime = static_cast<int>(epoTime.gpssec());
-  vtec.SSRIOD = _IOD;
+  vtec.SSRIOD        = _IOD;
   vtec.SSRProviderID = _PID;
   vtec.SSRSolutionID = _SID;
@@ -385,5 +399,4 @@
       continue;
     }
-
     // non-satellite specific parameters
     if (key.contains("VTEC", Qt::CaseSensitive)) {
@@ -408,5 +421,4 @@
       continue;
     }
-
     // satellite specific parameters
     char sys = key.mid(0, 1).at(0).toAscii();
@@ -423,5 +435,4 @@
     const t_eph* ephPrev = _ephUser->ephPrev(prnInternalStr);
     const t_eph* eph = ephLast;
-
     if (eph) {
 
@@ -551,5 +562,5 @@
       }
 
-      struct ClockOrbit::SatData* sd = 0;
+      struct SsrCorr::ClockOrbit::SatData* sd = 0;
       if (prn.system() == 'G') {
         sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
@@ -597,5 +608,5 @@
       // Code Biases
       // -----------
-      struct CodeBias::BiasSat* biasSat = 0;
+      struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
       if (!codeBiases.isEmpty()) {
         if (prn.system() == 'G') {
@@ -637,790 +648,22 @@
         biasSat->ID = prn.number();
         biasSat->NumberOfCodeBiases = 0;
-        if (prn.system() == 'G') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "1C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1C_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1C_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "1X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1C_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "1P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1W") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2D") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "2X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "2P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2W") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-        else if (prn.system() == 'R') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "1C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "4A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCd;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "4B") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCp;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "4X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCdp;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "6A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSI;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6B") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_OCp;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "6X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSIOCp;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "3I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "3Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "3X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGLONASS_L3_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-        else if (prn.system() == 'E') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "1A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1B") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "1X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_BC;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1Z") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_ABC;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "5I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "7I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "7Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "7X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "8I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "8Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "8X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "6A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6B") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "6X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_BC;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6Z") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_ABC;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-        else if (prn.system() == 'J') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "1C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "2X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "5I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "6S") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6L") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "6X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1Z") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5D") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Z") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "6E") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "6Z") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-        else if (prn.system() == 'S') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "1C") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-        else if (prn.system() == 'C') {
-          QMapIterator<QString, double> it(codeBiases);
-          while (it.hasNext()) {
-            it.next();
-            if (it.key() == "2I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "2Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "2X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "6I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "6Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "6X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "7I") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "7Q") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "7X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "1D") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "1P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "1X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1a_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-            else if (it.key() == "5D") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_D;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-            else if (it.key() == "5P") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_P;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#ifdef USE_SSR_RTCM
-            else if (it.key() == "5X") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B2a_DP;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#elif USE_SSR_IGS
-            else if (it.key() == "1A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B1_A;
-              biasSat->Biases[ii].Bias = it.value();
-          }
-            else if (it.key() == "6A") {
-              int ii = biasSat->NumberOfCodeBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              biasSat->NumberOfCodeBiases += 1;
-              biasSat->Biases[ii].Type = CODETYPE_BDS_B3_A;
-              biasSat->Biases[ii].Bias = it.value();
-            }
-#endif
-          }
-        }
-      }
-      
+        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 PhaseBias::PhaseBiasSat* phasebiasSat = 0;
+      struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
       if (prn.system()      == 'G') {
         phasebiasSat = phasebias.Sat
@@ -1465,1041 +708,23 @@
         phasebiasSat->YawAngle = pbSat.yawAngle;
         phasebiasSat->YawRate = pbSat.yawRate;
-        if (prn.system() == 'G') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "1C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1W") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2D") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_M;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_L;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "2X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2C_ML;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "2P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2W") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_Z;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "1S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "1X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1C_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-        if (prn.system() == 'R') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "1C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "4A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCd;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "4B") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCp;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "4X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1a_OCdp;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "6A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSI;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6B") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_OCp;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "6X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2a_CSIOCp;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "3I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "3Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "3X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L3_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-        if (prn.system() == 'E') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "1A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1B") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "1X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_BC;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1Z") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_ABC;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "7I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "7Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "7X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "8I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "8Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "8X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "6A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6B") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "6X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_BC;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6Z") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_ABC;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-        if (prn.system() == 'J') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "1C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_M;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_L;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "2X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2C_ML;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "6S") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6L") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "6X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-                        else if (pbSig.type == "1X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1Z") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_S;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5D") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Z") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "6E") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_E;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "6Z") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L6_DE;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-        if (prn.system() == 'S') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "1C") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-        if (prn.system() == 'C') {
-          QListIterator<phaseBiasSignal> it(phaseBiasList);
-          while (it.hasNext()) {
-            const phaseBiasSignal &pbSig = it.next();
-            if (pbSig.type == "2I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "2Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "2X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "6I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "6X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "7I") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_I;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "7Q") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.integerIndicator;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "7X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "1D") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "1P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "1X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1a_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-            else if (pbSig.type == "5D") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_D;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "5P") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_P;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#ifdef USE_SSR_RTCM
-            else if (pbSig.type == "5X") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2a_DP;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#elif USE_SSR_IGS
-            else if (pbSig.type == "1A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_A;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-            else if (pbSig.type == "6A") {
-              int ii = phasebiasSat->NumberOfPhaseBiases;
-              if (ii >= CLOCKORBIT_NUMBIAS)
-                break;
-              phasebiasSat->NumberOfPhaseBiases += 1;
-              phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_A;
-              phasebiasSat->Biases[ii].Bias = pbSig.bias;
-              phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlIndicator;
-              phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
-            }
-#endif
-          }
-        }
-      }
-    }
-  }
-
+        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;
+          }
+        }
+      }
+    }
+  }
 
   QByteArray hlpBufferCo;
@@ -2515,5 +740,5 @@
         || co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
       char obuffer[CLOCKORBIT_BUFFERSIZE];
-      int len = MakeClockOrbit(&co, COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
+      int len = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
       if (len > 0) {
         hlpBufferCo = QByteArray(obuffer, len);
@@ -2529,5 +754,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_GPSORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GPSORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2541,5 +766,5 @@
                   co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
                   co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_GPSCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GPSCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2551,5 +776,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_GLONASSORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GLONASSORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2562,5 +787,5 @@
                   co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
                   co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GLONASSCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2572,5 +797,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_GALILEOORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GALILEOORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2582,5 +807,5 @@
                   co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
                   co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_GALILEOCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_GALILEOCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2592,5 +817,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_QZSSORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_QZSSORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2601,5 +826,5 @@
       int mmsg = (co.NumberOfSat[CLOCKORBIT_SATSBAS]    > 0 ||
                   co.NumberOfSat[CLOCKORBIT_SATBDS]     > 0   ) ? 1 : 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_QZSSCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_QZSSCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2611,5 +836,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_SBASORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_SBASORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2619,5 +844,5 @@
       }
       int mmsg = (co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) ? 1 : 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_SBASCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_SBASCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2629,5 +854,5 @@
       if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) {
         co.UpdateInterval = ephUpdInd;
-        int len1 = MakeClockOrbit(&co, COTYPE_BDSORBIT, 1, obuffer,
+        int len1 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_BDSORBIT, 1, obuffer,
             sizeof(obuffer));
         co.UpdateInterval = clkUpdInd;
@@ -2637,5 +862,5 @@
       }
       int mmsg = 0;
-      int len2 = MakeClockOrbit(&co, COTYPE_BDSCLOCK, mmsg, obuffer,
+      int len2 = _ssrCorr->MakeClockOrbit(&co, _ssrCorr->COTYPE_BDSCLOCK, mmsg, obuffer,
           sizeof(obuffer));
       if (len2 > 0) {
@@ -2655,5 +880,5 @@
       || bias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
     char obuffer[CLOCKORBIT_BUFFERSIZE];
-    int len = MakeCodeBias(&bias, CBTYPE_AUTO, 0, obuffer, sizeof(obuffer));
+    int len = _ssrCorr->MakeCodeBias(&bias, _ssrCorr->CBTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     if (len > 0) {
       hlpBufferBias = QByteArray(obuffer, len);
@@ -2671,5 +896,5 @@
       || phasebias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {
     char obuffer[CLOCKORBIT_BUFFERSIZE];
-    int len = MakePhaseBias(&phasebias, PBTYPE_AUTO, 0, obuffer,
+    int len = _ssrCorr->MakePhaseBias(&phasebias, _ssrCorr->PBTYPE_AUTO, 0, obuffer,
         sizeof(obuffer));
     if (len > 0) {
@@ -2683,5 +908,5 @@
   if (vtec.NumLayers > 0) {
     char obuffer[CLOCKORBIT_BUFFERSIZE];
-    int len = MakeVTEC(&vtec, 0, obuffer, sizeof(obuffer));
+    int len = _ssrCorr->MakeVTEC(&vtec, 0, obuffer, sizeof(obuffer));
     if (len > 0) {
       hlpBufferVtec = QByteArray(obuffer, len);
@@ -2699,5 +924,5 @@
     double rtnUra, const ColumnVector& rtnClk, const ColumnVector& rtnVel,
     const ColumnVector& rtnCoM, const ColumnVector& rtnClkSig,
-    struct ClockOrbit::SatData* sd, QString& outLine) {
+    struct SsrCorr::ClockOrbit::SatData* sd, QString& outLine) {
 
   // Broadcast Position and Velocity
Index: branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h
===================================================================
--- branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h	(revision 8992)
+++ branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h	(revision 9036)
@@ -6,11 +6,6 @@
 #include "bnctime.h"
 #include "ephemeris.h"
-extern "C" {
-#ifdef USE_SSR_RTCM
 #include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h"
-#elif  USE_SSR_IGS
 #include "../RTCM3/clock_and_orbit/clock_orbit_igs.h"
-#endif
-}
 
 class bncEphUser;
@@ -25,5 +20,6 @@
                   const QString& outHost, int outPort,
                   const QString& password,
-                  const QString& crdTrafo, bool  CoM,
+                  const QString& crdTrafo, const QString& ssrFormat,
+                  bool  CoM,
                   const QString& sp3FileName,
                   const QString& rnxFileName,
@@ -41,5 +37,5 @@
                         const ColumnVector& rtnCoM,
                         const ColumnVector& rtnClkSig,
-                        struct ClockOrbit::SatData* sd,
+                        struct SsrCorr::ClockOrbit::SatData* sd,
                         QString& outLine);
   void crdTrafo(int GPSWeek, ColumnVector& xyz, double& dc);
@@ -51,4 +47,6 @@
   QString        _rtnetStreamBuffer;
   QString        _crdTrafo;
+  SsrCorr*       _ssrCorr;
+  QString        _ssrFormat;
   bool           _CoM;
   int            _PID;
