Index: trunk/BNC/src/upload/bncrtnetdecoder.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetdecoder.cpp	(revision 8991)
+++ trunk/BNC/src/upload/bncrtnetdecoder.cpp	(revision 9025)
@@ -56,25 +56,25 @@
   while (it.hasNext()) {
     QStringList hlp = it.next().split(",");
-    if (hlp.size() > 6) {
+    if (hlp.size() > 8) {
       ++iRow;
       int  outPort = hlp[1].toInt();
-      bool CoM     = (hlp[7].toInt() == Qt::Checked);
+      bool CoM     = (hlp[8].toInt() == Qt::Checked);
       int PID = 0;
-      if (hlp.size() > 10) {
-        PID = hlp[10].toInt();
+      if (hlp.size() > 11) {
+        PID = hlp[11].toInt();
       }
       int SID = 0;
-      if (hlp.size() > 11) {
-        SID = hlp[11].toInt();
+      if (hlp.size() > 12) {
+        SID = hlp[12].toInt();
       }
       int IOD = 0;
-      if (hlp.size() > 12) {
-        IOD = hlp[12].toInt();
+      if (hlp.size() > 13) {
+        IOD = hlp[13].toInt();
       }
       bncRtnetUploadCaster* newCaster = new bncRtnetUploadCaster(
                                                        hlp[2], hlp[0], outPort,
                                                        hlp[3], hlp[4],
-                                                       hlp[5], hlp[6], CoM,
-                                                       hlp[8], hlp[9],
+                                                       hlp[5], hlp[6], hlp[7], CoM,
+                                                       hlp[9], hlp[10],
                                                        PID, SID, IOD, iRow);
       newCaster->start();
Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 8991)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 9025)
@@ -31,8 +31,8 @@
     const QString& ntripVersion,
     const QString& userName, const QString& password,
-    const QString& crdTrafo, bool CoM, const QString& sp3FileName,
+    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, ntripVersion, userName, password, iRow, 0) {
-
+qDebug() << "bncRtnetUploadCaster";
 
   if (!mountpoint.isEmpty()) {
@@ -56,4 +56,16 @@
 
   _crdTrafo = crdTrafo;
+
+  _ssrFormat = ssrFormat;qDebug() << _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();
+  }
+if (!_ssrCorr) {
+  qDebug() << "no _ssrCorr";
+}
   _CoM = CoM;
   _PID = PID;
@@ -228,10 +240,11 @@
   delete _ephUser;
   delete _usedEph;
+  delete _ssrCorr;
 }
 
 //
 ////////////////////////////////////////////////////////////////////////////
-void bncRtnetUploadCaster::decodeRtnetStream(char* buffer, int bufLen) {
-
+void bncRtnetUploadCaster::decodeRtnetStream(char* buffer, int bufLen) {qDebug() << "decodeRtnetStream";
+  qDebug() << "decodeRtnetStream";
   QMutexLocker locker(&_mutex);
 
@@ -294,58 +307,60 @@
           + _casterID.toLatin1(), 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; // ToDo: to decode from RTNET format
+  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;
@@ -468,5 +483,5 @@
         QString key;
         int numVal = 0;
-        in >> key;
+        in >> key;qDebug() << key;
         if (in.status() != QTextStream::Ok) {
           break;
@@ -553,5 +568,5 @@
       }
 
-      struct ClockOrbit::SatData* sd = 0;
+      struct SsrCorr::ClockOrbit::SatData* sd = 0;
       if (prn.system() == 'G') {
         sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS];
@@ -599,5 +614,5 @@
       // Code Biases
       // -----------
-      struct CodeBias::BiasSat* biasSat = 0;
+      struct SsrCorr::CodeBias::BiasSat* biasSat = 0;
       if (!codeBiases.isEmpty()) {
         if (prn.system() == 'G') {
@@ -639,783 +654,15 @@
         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();
           }
         }
@@ -1424,5 +671,5 @@
       // Phase Biases
       // ------------
-      struct PhaseBias::PhaseBiasSat* phasebiasSat = 0;
+      struct SsrCorr::PhaseBias::PhaseBiasSat* phasebiasSat = 0;
       if (prn.system()      == 'G') {
         phasebiasSat = phasebias.Sat
@@ -1467,1035 +714,18 @@
         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;
           }
         }
@@ -2517,5 +747,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);
@@ -2531,5 +761,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;
@@ -2543,5 +773,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) {
@@ -2553,5 +783,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;
@@ -2564,5 +794,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) {
@@ -2574,5 +804,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;
@@ -2584,5 +814,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) {
@@ -2594,5 +824,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;
@@ -2603,5 +833,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) {
@@ -2613,5 +843,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;
@@ -2621,5 +851,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) {
@@ -2631,5 +861,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;
@@ -2639,5 +869,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) {
@@ -2657,5 +887,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);
@@ -2673,5 +903,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) {
@@ -2685,5 +915,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);
@@ -2701,5 +931,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
@@ -2744,9 +974,9 @@
   double dClkA1 = 0.0;
   if (rtnClk(2)) {
-    dClkA1 = rtnClk(2) - xB(5) * t_CST::c;
+         dClkA1 = rtnClk(2) - xB(5) * t_CST::c;
   }
   double dClkA2 = 0.0;
   if (rtnClk(3)) {
-    dClkA2 = rtnClk(3) - xB(6) * t_CST::c;
+         dClkA2 = rtnClk(3) - xB(6) * t_CST::c;
   }
 
Index: trunk/BNC/src/upload/bncrtnetuploadcaster.h
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 8991)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 9025)
@@ -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;
@@ -18,4 +13,5 @@
 class bncClockRinex;
 class bncSP3;
+class SsrCorr;
 
 class bncRtnetUploadCaster : public bncUploadCaster {
@@ -26,6 +22,6 @@
                   const QString& ntripVersion,
                   const QString& userName,const QString& password,
-                  const QString& crdTrafo, bool  CoM,
-                  const QString& sp3FileName,
+                  const QString& crdTrafo, const QString& ssrFormat,
+                  bool  CoM, const QString& sp3FileName,
                   const QString& rnxFileName,
                   int PID, int SID, int IOD, int iRow);
@@ -42,5 +38,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);
@@ -52,4 +48,6 @@
   QString        _rtnetStreamBuffer;
   QString        _crdTrafo;
+  SsrCorr*       _ssrCorr;
+  QString        _ssrFormat;
   bool           _CoM;
   int            _PID;
