Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 8968)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 8969)
@@ -687,6 +687,5 @@
       case CODETYPEGPS_L1_P:          return "1P";
       case CODETYPEGPS_L1_Z:          return "1W";
-      //case CODETYPEGPS_L1_Y:          return "1Y";
-      //case CODETYPEGPS_L1_M:          return "1M";
+
       case CODETYPEGPS_SEMI_CODELESS: return "2D";
       case CODETYPEGPS_L2_CA:         return "2C";
@@ -696,16 +695,18 @@
       case CODETYPEGPS_L2C_M:         return "2S";
       case CODETYPEGPS_L2C_L:         return "2L";
+#ifdef USE_SSR_RTCM
       case CODETYPEGPS_L2C_ML:        return "2X";
-
-      //case CODETYPEGPS_L2_Y:          return "2Y";
-      //case CODETYPEGPS_L2_M:          return "2M";
+#endif
 
       case CODETYPEGPS_L5_I:          return "5I";
       case CODETYPEGPS_L5_Q:          return "5Q";
+#ifdef USE_SSR_RTCM
       case CODETYPEGPS_L5_IQ:         return "5X";
-
+#endif
       case CODETYPEGPS_L1C_D:         return "1S";
       case CODETYPEGPS_L1C_P:         return "1L";
+#ifdef USE_SSR_RTCM
       case CODETYPEGPS_L1C_DP:        return "1X";
+#endif
       default: return "";
     }
@@ -719,11 +720,17 @@
       case CODETYPEGLONASS_L1a_OCd:   return "4A";
       case CODETYPEGLONASS_L1a_OCp:   return "4B";
+#ifdef USE_SSR_RTCM
       case CODETYPEGLONASS_L1a_OCdp:  return "4X";
+#endif
       case CODETYPEGLONASS_L2a_CSI:   return "6A";
       case CODETYPEGLONASS_L2a_OCp:   return "6B";
+#ifdef USE_SSR_RTCM
       case CODETYPEGLONASS_L2a_CSIOCp:return "6X";
+#endif
       case CODETYPEGLONASS_L3_I:      return "3I";
       case CODETYPEGLONASS_L3_Q:      return "3Q";
+#ifdef USE_SSR_RTCM
       case CODETYPEGLONASS_L3_IQ:     return "3X";
+#endif
       default: return "";
     }
@@ -734,13 +741,16 @@
       case CODETYPEGALILEO_E1_B:       return "1B";
       case CODETYPEGALILEO_E1_C:       return "1C";
+#ifdef USE_SSR_RTCM
       case CODETYPEGALILEO_E1_BC:      return "1X";
       case CODETYPEGALILEO_E1_ABC:     return "1Z";
-
+#endif
       case CODETYPEGALILEO_E5A_I:      return "5I";
       case CODETYPEGALILEO_E5A_Q:      return "5Q";
+#ifdef USE_SSR_RTCM
       case CODETYPEGALILEO_E5A_IQ:     return "5X";
-
+#endif
       case CODETYPEGALILEO_E5B_I:      return "7I";
       case CODETYPEGALILEO_E5B_Q:      return "7Q";
+#ifdef USE_SSR_RTCM
       case CODETYPEGALILEO_E5B_IQ:     return "7X";
 
@@ -748,10 +758,12 @@
       case CODETYPEGALILEO_E5_Q:       return "8Q";
       case CODETYPEGALILEO_E5_IQ:      return "8X";
-
+#endif
       case CODETYPEGALILEO_E6_A:       return "6A";
       case CODETYPEGALILEO_E6_B:       return "6B";
       case CODETYPEGALILEO_E6_C:       return "6C";
+#ifdef USE_SSR_RTCM
       case CODETYPEGALILEO_E6_BC:      return "6X";
       case CODETYPEGALILEO_E6_ABC:     return "6Z";
+#endif
       default: return "";
     }
@@ -765,12 +777,15 @@
       case CODETYPEQZSS_L2C_M:         return "2S";
       case CODETYPEQZSS_L2C_L:         return "2L";
+#ifdef USE_SSR_RTCM
       case CODETYPEQZSS_L2C_ML:        return "2X";
-
+#endif
       case CODETYPEQZSS_L5_I:          return "5I";
       case CODETYPEQZSS_L5_Q:          return "5Q";
+#ifdef USE_SSR_RTCM
       case CODETYPEQZSS_L5_IQ:         return "5X";
-
+#endif
       case CODETYPEQZSS_L6_D:          return "6S";
       case CODETYPEQZSS_L6_P:          return "6L";
+#ifdef USE_SSR_RTCM
       case CODETYPEQZSS_L6_DP:         return "6X";
 
@@ -781,41 +796,57 @@
       case CODETYPEQZSS_L5_P:          return "5P";
       case CODETYPEQZSS_L5_DP:         return "5Z";
+#endif
 
       case CODETYPEQZSS_L6_E:          return "6E";
+#ifdef USE_SSR_RTCM
       case CODETYPEQZSS_L6_DE:         return "6Z";
+#endif
       default: return "";
     }
   }
-  else if (system == 'S') {
-    switch (type) {
-      case CODETYPE_SBAS_L1_CA:       return "1C";
-
-      case CODETYPE_SBAS_L5_I:        return "5I";
-      case CODETYPE_SBAS_L5_Q:        return "5Q";
-      case CODETYPE_SBAS_L5_IQ:       return "5X";
-      default: return "";
-    }
-  }
+
   else if (system == 'C') {
     switch (type) {
       case CODETYPE_BDS_B1_I:         return "2I";
       case CODETYPE_BDS_B1_Q:         return "2Q";
+#ifdef USE_SSR_RTCM
       case CODETYPE_BDS_B1_IQ:        return "2X";
-
+#endif
       case CODETYPE_BDS_B3_I:         return "6I";
       case CODETYPE_BDS_B3_Q:         return "6Q";
+#ifdef USE_SSR_RTCM
       case CODETYPE_BDS_B3_IQ:        return "6X";
-
+#endif
       case CODETYPE_BDS_B2_I:         return "7I";
       case CODETYPE_BDS_B2_Q:         return "7Q";
+#ifdef USE_SSR_RTCM
       case CODETYPE_BDS_B2_IQ:        return "7X";
-
+#endif
       case CODETYPE_BDS_B1a_D:        return "1D";
       case CODETYPE_BDS_B1a_P:        return "1P";
+#ifdef USE_SSR_RTCM
       case CODETYPE_BDS_B1a_DP:       return "1X";
-
+#endif
       case CODETYPE_BDS_B2a_D:        return "5D";
       case CODETYPE_BDS_B2a_P:        return "5P";
+#ifdef USE_SSR_RTCM
       case CODETYPE_BDS_B2a_DP:       return "5X";
+#elif USE_SSR_IGS
+      case CODETYPE_BDS_B1_A:         return "1A";
+      case CODETYPE_BDS_B3_A:         return "6A";
+#endif
+      default: return "";
+    }
+  }
+
+  else if (system == 'S') {
+    switch (type) {
+      case CODETYPE_SBAS_L1_CA:       return "1C";
+
+      case CODETYPE_SBAS_L5_I:        return "5I";
+      case CODETYPE_SBAS_L5_Q:        return "5Q";
+#ifdef USE_SSR_RTCM
+      case CODETYPE_SBAS_L5_IQ:       return "5X";
+#endif
       default: return "";
     }
Index: /trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 8968)
+++ /trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 8969)
@@ -35,5 +35,9 @@
 
 extern "C" {
-# include "clock_orbit_rtcm.h"
+#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
 }
 
Index: /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.c
===================================================================
--- /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.c	(revision 8968)
+++ /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.c	(revision 8969)
@@ -5,5 +5,5 @@
  Version:        $Id$
  Authors:        Dirk Stöcker
- Description:    state space approach for RTCM3
+ Description:    state space approach: RTCM
  */
 
Index: /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h
===================================================================
--- /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h	(revision 8968)
+++ /trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm.h	(revision 8969)
@@ -8,5 +8,5 @@
         Version:        $Id$
         Authors:        Dirk Stöcker
-        Description:    state space approach for RTCM3
+        Description:    state space approach: RTCM
 */
 
@@ -218,9 +218,4 @@
   CODETYPEQZSS_L6_DE         = 18,
 
-  CODETYPE_SBAS_L1_CA        = 0,
-  CODETYPE_SBAS_L5_I         = 1,
-  CODETYPE_SBAS_L5_Q         = 2,
-  CODETYPE_SBAS_L5_IQ        = 3,
-
   CODETYPE_BDS_B1_I          = 0,
   CODETYPE_BDS_B1_Q          = 1,
@@ -239,6 +234,9 @@
   CODETYPE_BDS_B2a_DP        = 14,
 
-  CODETYPE_IRNSS_S_SPS       = 8,
-  CODETYPE_IRNSS_L5_SPS      = 22
+  CODETYPE_SBAS_L1_CA        = 0,
+  CODETYPE_SBAS_L5_I         = 1,
+  CODETYPE_SBAS_L5_Q         = 2,
+  CODETYPE_SBAS_L5_IQ        = 3
+
 };
 
Index: /trunk/BNC/src/src.pri
===================================================================
--- /trunk/BNC/src/src.pri	(revision 8968)
+++ /trunk/BNC/src/src.pri	(revision 8969)
@@ -63,5 +63,4 @@
           RTCM3/RTCM3Decoder.h RTCM3/bits.h RTCM3/gnss.h              \
           RTCM3/RTCM3coDecoder.h RTCM3/ephEncoder.h                   \
-          RTCM3/clock_and_orbit/clock_orbit_rtcm.h                    \
           rinex/rnxobsfile.h                                          \
           rinex/rnxnavfile.h       rinex/corrfile.h                   \
@@ -100,5 +99,4 @@
           RTCM3/RTCM3Decoder.cpp                                      \
           RTCM3/RTCM3coDecoder.cpp RTCM3/ephEncoder.cpp               \
-          RTCM3/clock_and_orbit/clock_orbit_rtcm.c                    \
           rinex/rnxobsfile.cpp                                        \
           rinex/rnxnavfile.cpp     rinex/corrfile.cpp                 \
@@ -116,4 +114,18 @@
 
 QT += network
+
+
+# Format of SSR corrections
+# -------------------------
+DEFINES += USE_SSR_RTCM
+#DEFINES += USE_SSR_IGS
+contains(DEFINES, USE_SSR_IGS) {
+  HEADERS += RTCM3/clock_and_orbit/clock_orbit_igs.h
+  SOURCES += RTCM3/clock_and_orbit/clock_orbit_igs.c
+}
+else {
+  HEADERS += RTCM3/clock_and_orbit/clock_orbit_rtcm.h
+  SOURCES += RTCM3/clock_and_orbit/clock_orbit_rtcm.c
+}
 
 exists(PPP) {
Index: /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 8968)
+++ /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 8969)
@@ -660,4 +660,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "1X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -668,4 +669,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "1P") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -716,4 +718,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "2X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -724,4 +727,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "2P") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -756,4 +760,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "5X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -764,4 +769,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
           }
         }
@@ -818,4 +824,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "4X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -826,4 +833,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "6A") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -842,4 +850,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "6X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -850,4 +859,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "3I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -866,4 +876,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "3X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -874,4 +885,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
           }
         }
@@ -904,4 +916,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "1X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -920,4 +933,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "5I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -936,4 +950,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "5X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -944,4 +959,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "7I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -960,4 +976,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "7X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -992,4 +1009,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "6A") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1016,4 +1034,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "6X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1032,4 +1051,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
           }
         }
@@ -1078,4 +1098,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "2X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1086,4 +1107,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "5I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1102,4 +1124,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "5X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1110,4 +1133,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "6S") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1126,4 +1150,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "6X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1174,4 +1199,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "6E") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1182,4 +1208,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "6Z") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1190,4 +1217,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
           }
         }
@@ -1220,4 +1248,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "5X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1228,4 +1257,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
           }
         }
@@ -1250,4 +1280,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "2X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1258,4 +1289,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "6I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1274,4 +1306,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "6X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1282,4 +1315,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "7I") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1298,4 +1332,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "7X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1306,4 +1341,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "1D") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1322,4 +1358,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "1X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1330,4 +1367,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#endif
             else if (it.key() == "5D") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1346,4 +1384,5 @@
               biasSat->Biases[ii].Bias = it.value();
             }
+#ifdef USE_SSR_RTCM
             else if (it.key() == "5X") {
               int ii = biasSat->NumberOfCodeBiases;
@@ -1354,4 +1393,22 @@
               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
           }
         }
@@ -1485,4 +1542,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "2X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1496,4 +1554,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "2P") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1540,4 +1599,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "5X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1551,4 +1611,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "1S") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1573,4 +1634,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "1X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1584,4 +1646,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
           }
         }
@@ -1656,4 +1719,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "4X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1667,4 +1731,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "6A") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1689,4 +1754,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "6X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1700,4 +1766,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "3I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1722,4 +1789,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "3X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1733,4 +1801,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
           }
         }
@@ -1772,4 +1841,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "1X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1794,4 +1864,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "5I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1816,4 +1887,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "5X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1827,4 +1899,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "7I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1849,4 +1922,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "7X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1893,4 +1967,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "6A") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1926,4 +2001,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "6X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -1948,4 +2024,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
           }
         }
@@ -2008,4 +2085,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "2X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2018,4 +2096,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "5I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2040,4 +2119,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "5X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2051,4 +2131,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "6S") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2073,4 +2154,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "6X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2139,4 +2221,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "6E") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2150,4 +2233,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "6Z") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2161,4 +2245,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
           }
         }
@@ -2199,4 +2284,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "5X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2210,4 +2296,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
           }
         }
@@ -2238,4 +2325,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "2X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2249,4 +2337,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "6I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2271,4 +2360,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "6X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2282,4 +2372,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "7I") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2304,4 +2395,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "7X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2314,4 +2406,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "1D") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2334,4 +2427,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "1X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2344,4 +2438,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#endif
             else if (pbSig.type == "5D") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2364,4 +2459,5 @@
               phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discontinuityCounter;
             }
+#ifdef USE_SSR_RTCM
             else if (pbSig.type == "5X") {
               int ii = phasebiasSat->NumberOfPhaseBiases;
@@ -2374,4 +2470,26 @@
               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
           }
         }
Index: /trunk/BNC/src/upload/bncrtnetuploadcaster.h
===================================================================
--- /trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 8968)
+++ /trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 8969)
@@ -7,5 +7,9 @@
 #include "ephemeris.h"
 extern "C" {
-#include "clock_orbit_rtcm.h"
+#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
 }
 
