Index: trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 9122)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 9124)
@@ -1626,6 +1626,6 @@
        * else. */
       if ((id >= 1057 && id <= 1068) ||
-    	    (id >= 1240 && id <= 1270) ||
-		      (id == 4076)) {
+    	  (id >= 1240 && id <= 1270) ||
+		  (id == 4076)) {
         if (!_coDecoders.contains(_staID.toLatin1())) {
           _coDecoders[_staID.toLatin1()] = new RTCM3coDecoder(_staID);
Index: trunk/BNC/src/bnccaster.cpp
===================================================================
--- trunk/BNC/src/bnccaster.cpp	(revision 9122)
+++ trunk/BNC/src/bnccaster.cpp	(revision 9124)
@@ -485,6 +485,6 @@
     QTime nextShotTime;
     if      (settings.value("onTheFlyInterval").toString() == "1 min") {
-          _confInterval = 60;
-          nextShotTime = QTime(currTime.hour(), currTime.minute()+1, 0);
+      _confInterval = 60;
+      nextShotTime = QTime(currTime.hour(), currTime.minute()+1, 0);
     }
     else if (settings.value("onTheFlyInterval").toString() == "5 min") {
Index: trunk/BNC/src/bncfigure.cpp
===================================================================
--- trunk/BNC/src/bncfigure.cpp	(revision 9122)
+++ trunk/BNC/src/bncfigure.cpp	(revision 9124)
@@ -147,5 +147,5 @@
   int xMax = 640;
   int yMin =   0;
-  int yMax = 140;
+  int yMax =  90;
   float xLine = .60;
 
@@ -209,5 +209,5 @@
     painter.translate(xx-13, int(yMax-yMin)*xLine+65);
     painter.rotate(-90);
-    painter.drawText(0,0,65,50,Qt::AlignRight,staID.left(5) + "   ");
+    painter.drawText(-30,0,95,50,Qt::AlignRight,staID.left(10) + "   ");
     painter.restore();
 
Index: trunk/BNC/src/bncfigurelate.cpp
===================================================================
--- trunk/BNC/src/bncfigurelate.cpp	(revision 9122)
+++ trunk/BNC/src/bncfigurelate.cpp	(revision 9124)
@@ -29,5 +29,5 @@
  * Class:      bncFigureLate
  *
- * Purpose:    
+ * Purpose:
  *
  * Author:     Perlt, Mervart
@@ -35,5 +35,5 @@
  * Created:    11-Nov-2009
  *
- * Changes:    
+ * Changes:
  *
  * -----------------------------------------------------------------------*/
@@ -48,5 +48,5 @@
 #include <QVariant>
 
-#include "bncfigurelate.h" 
+#include "bncfigurelate.h"
 #include "bncsettings.h"
 
@@ -67,8 +67,8 @@
 // Destructor
 ////////////////////////////////////////////////////////////////////////////
-bncFigureLate::~bncFigureLate() { 
+bncFigureLate::~bncFigureLate() {
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncFigureLate::updateMountPoints() {
@@ -88,5 +88,5 @@
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncFigureLate::slotNewLatency(const QByteArray staID, double clate) {
@@ -97,5 +97,5 @@
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncFigureLate::slotNextAnimationFrame() {
@@ -105,5 +105,5 @@
 }
 
-// 
+//
 ////////////////////////////////////////////////////////////////////////////
 void bncFigureLate::paintEvent(QPaintEvent *) {
@@ -112,5 +112,5 @@
   int xMax = 640;
   int yMin =   0;
-  int yMax = 140;
+  int yMax =  90;
   float xLine = .60;
 
@@ -172,6 +172,5 @@
       int yy = int(yLength * (it.value() / maxLateRounded));
       QColor color = QColor::fromHsv(180,200,120+_ran[2][anchor]);
-      painter.fillRect(xx-13, int((yMax-yMin)*xLine)-yy, 9, yy, 
-                       QBrush(color,Qt::SolidPattern));
+      painter.fillRect(xx-13, int((yMax-yMin)*xLine)-yy, 9, yy, QBrush(color,Qt::SolidPattern));
       painter.setPen(Qt::black);
       if(it.value()<=0) {
@@ -183,5 +182,5 @@
     painter.translate(xx-13, int(yMax-yMin)*xLine+65);
     painter.rotate(-90);
-    painter.drawText(0,0,65,50,Qt::AlignRight,staID.left(5) + "   ");
+    painter.drawText(-30,0,95,50,Qt::AlignRight,staID.left(10) + "   ");
     painter.restore();
 
Index: trunk/BNC/src/bncgetthread.cpp
===================================================================
--- trunk/BNC/src/bncgetthread.cpp	(revision 9122)
+++ trunk/BNC/src/bncgetthread.cpp	(revision 9124)
@@ -297,14 +297,15 @@
   if (!_staID.isEmpty() && _latencycheck) {
     _latencyChecker = new latencyChecker(_staID);
-    obs = false;
-    ssrOrb = false;
-    ssrClk = false;
-    ssrOrbClk = false;
-    ssrCbi = false;
-    ssrPbi = false;
-    ssrVtec = false;
-    ssrUra = false;
-    ssrHr = false;
-    _ssrEpoch = 0;
+    _rtcmObs       = false;
+    _rtcmSsrOrb    = false;
+    _rtcmSsrClk    = false;
+    _rtcmSsrOrbClk = false;
+    _rtcmSsrCbi    = false;
+    _rtcmSsrPbi    = false;
+    _rtcmSsrVtec   = false;
+    _rtcmSsrUra    = false;
+    _rtcmSsrHr     = false;
+    _rtcmSsrIgs    = false;
+    _ssrEpoch      = 0;
   } else {
     _latencyChecker = 0;
@@ -524,35 +525,39 @@
         _ssrEpoch = static_cast<int>(decoder()->corrGPSEpochTime());
         if (_ssrEpoch != -1) {
-          if (ssrOrb) {
+          if (_rtcmSsrOrb) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1057);
-            ssrOrb = false;
-          }
-          if (ssrClk) {
+            _rtcmSsrOrb = false;
+          }
+          if (_rtcmSsrClk) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1058);
-            ssrClk = false;
-          }
-          if (ssrOrbClk) {
+            _rtcmSsrClk = false;
+          }
+          if (_rtcmSsrOrbClk) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1060);
-            ssrOrbClk = false;
-          }
-          if (ssrCbi) {
+            _rtcmSsrOrbClk = false;
+          }
+          if (_rtcmSsrCbi) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1059);
-            ssrCbi = false;
-          }
-          if (ssrPbi) {
+            _rtcmSsrCbi = false;
+          }
+          if (_rtcmSsrPbi) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1265);
-            ssrPbi = false;
-          }
-          if (ssrVtec) {
+            _rtcmSsrPbi = false;
+          }
+          if (_rtcmSsrVtec) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1264);
-            ssrVtec = false;
-          }
-          if (ssrUra) {
+            _rtcmSsrVtec = false;
+          }
+          if (_rtcmSsrUra) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1061);
-            ssrUra = false;
-          }
-          if (ssrHr) {
+            _rtcmSsrUra = false;
+          }
+          if (_rtcmSsrHr) {
             _latencyChecker->checkCorrLatency(_ssrEpoch, 1062);
-            ssrHr = false;
+            _rtcmSsrHr = false;
+          }
+          if (_rtcmSsrIgs) {
+            _latencyChecker->checkCorrLatency(_ssrEpoch, 4076);
+            _rtcmSsrIgs = false;
           }
         }
@@ -562,36 +567,40 @@
               (rtcmType >= 1009 && rtcmType <= 1012) || // legacy RTCM OBS
               (rtcmType >= 1071 && rtcmType <= 1137)) { // MSM RTCM OBS
-            obs = true;
+            _rtcmObs = true;
           } else if ((rtcmType >= 1057 && rtcmType <= 1068) ||
-                     (rtcmType >= 1240 && rtcmType <= 1270)) {
+                     (rtcmType >= 1240 && rtcmType <= 1270) ||
+					 (rtcmType == 4076)) {
             switch (rtcmType) {
               case 1057: case 1063: case 1240: case 1246: case 1252: case 1258:
-                ssrOrb = true;
+                _rtcmSsrOrb = true;
                 break;
               case 1058: case 1064: case 1241: case 1247: case 1253: case 1259:
-                ssrClk = true;
+                _rtcmSsrClk = true;
                 break;
               case 1060: case 1066: case 1243: case 1249: case 1255: case 1261:
-                ssrOrbClk = true;
+                _rtcmSsrOrbClk = true;
                 break;
               case 1059: case 1065: case 1242: case 1248: case 1254: case 1260:
-                ssrCbi = true;
+                _rtcmSsrCbi = true;
                 break;
               case 1265: case 1266: case 1267: case 1268: case 1269: case 1270:
-                ssrPbi = true;
+                _rtcmSsrPbi = true;
                 break;
               case 1264:
-                ssrVtec = true;
+                _rtcmSsrVtec = true;
                 break;
               case 1061: case 1067: case 1244: case 1250: case 1256: case 1262:
-                ssrUra = true;
+                _rtcmSsrUra = true;
                 break;
               case 1062: case 1068: case 1245: case 1251: case 1257: case 1263:
-                ssrHr = true;
+                _rtcmSsrHr = true;
                 break;
-            }
-          }
-        }
-        if (obs) {
+              case 4076:
+            	_rtcmSsrIgs = true;
+            	break;
+            }
+          }
+        }
+        if (_rtcmObs) {
           _latencyChecker->checkObsLatency(decoder()->_obsList);
         }
Index: trunk/BNC/src/bncgetthread.h
===================================================================
--- trunk/BNC/src/bncgetthread.h	(revision 9122)
+++ trunk/BNC/src/bncgetthread.h	(revision 9124)
@@ -126,10 +126,14 @@
    QextSerialPort*            _serialPort;
    bool                       _isToBeDeleted;
-   bool obs;
-   bool ssrOrb, ssrClk, ssrOrbClk;
-   bool ssrCbi, ssrPbi;
-   bool ssrVtec;
-   bool ssrUra;
-   bool ssrHr;
+   bool                       _rtcmObs;
+   bool                       _rtcmSsrOrb;
+   bool                       _rtcmSsrClk;
+   bool                       _rtcmSsrOrbClk;
+   bool                       _rtcmSsrCbi;
+   bool                       _rtcmSsrPbi;
+   bool                       _rtcmSsrVtec;
+   bool                       _rtcmSsrUra;
+   bool                       _rtcmSsrHr;
+   bool                       _rtcmSsrIgs;
    latencyChecker*            _latencyChecker;
    QString                    _miscMount;
Index: trunk/BNC/src/ephemeris.cpp
===================================================================
--- trunk/BNC/src/ephemeris.cpp	(revision 9122)
+++ trunk/BNC/src/ephemeris.cpp	(revision 9124)
@@ -402,6 +402,7 @@
   // -----------------------
   // correspondent to IGS convention and GPS ICD (and SSR standard)
-  xc[3] -= 2.0 * (xc[0]*vv[0] + xc[1]*vv[1] + xc[2]*vv[2]) / t_CST::c / t_CST::c;
-
+  // xc[3] -= 2.0 * (xc[0]*vv[0] + xc[1]*vv[1] + xc[2]*vv[2]) / t_CST::c / t_CST::c;
+  xc[3] -= 4.442807633e-10 * _e * sqrt(a0) *sin(E);
+  // correspondent to IGS-SSR
   xc[4] = _clock_drift + _clock_driftrate*tc;
   xc[5] = _clock_driftrate;
Index: trunk/BNC/src/latencychecker.cpp
===================================================================
--- trunk/BNC/src/latencychecker.cpp	(revision 9122)
+++ trunk/BNC/src/latencychecker.cpp	(revision 9124)
@@ -419,26 +419,38 @@
   switch (type) {
     case 1057: case 1063: case 1240: case 1246: case 1252: case 1258:
-      l = _lOrb; l._type =  "Orbit";
+      l = _lOrb;
+      l._type =  "RtcmSsrOrbit     ";
       break;
     case 1058: case 1064: case 1241: case 1247: case 1253: case 1259:
-      l = _lClk; l._type =  "Clock";
+      l = _lClk;
+      l._type = "RtcmSsrClock      ";
       break;
     case 1060: case 1066: case 1243: case 1249: case 1255: case 1261:
-      l = _lClkOrb; l._type = "Clock&Orbit";
+      l = _lClkOrb;
+      l._type = "RtcmSsrClock&Orbit";
       break;
     case 1059: case 1065: case 1242: case 1248: case 1254: case 1260:
-      l = _lCb; l._type = "CodeBiases";
-      break;
-    case 1265: case 1266: case 1267: case 1268: case 1269: case 1270:
-      l = _lPb; l._type = "PhaseBiases";
+      l = _lCb;
+      l._type = "RtcmSsrCodeBiases ";
+      break;
+    case 1265: case 1266: case 1267:  case 1268: case 1269: case 1270:
+      l = _lPb;
+      l._type = "RtcmSsrPhaseBiases";
       break;
     case 1264:
-      l = _lVtec; l._type = "VTEC";
+      l = _lVtec;
+      l._type = "RtcmSsrVTEC       ";
       break;
     case 1061: case 1067: case 1244: case 1250: case 1256: case 1262:
-      l = _lUra; l._type = "URA";
+      l = _lUra;
+      l._type = "RtcmSsrURA        ";
       break;
     case 1062: case 1068: case 1245: case 1251: case 1257: case 1263:
-      l = _lHr; l._type = "HrClock";
+      l = _lHr;
+      l._type = "RtcmSsrHrClock    ";
+      break;
+    case 4076:
+      l = _lSsrIgs;
+      l._type = "RtcmSsrIgs4076    ";
       break;
     default:
@@ -545,4 +557,7 @@
        _lHr = l;
        break;
+     case 4076:
+       _lSsrIgs = l;
+       break;
    }
 }
Index: trunk/BNC/src/latencychecker.h
===================================================================
--- trunk/BNC/src/latencychecker.h	(revision 9122)
+++ trunk/BNC/src/latencychecker.h	(revision 9124)
@@ -107,4 +107,5 @@
   t_latency _lUra;
   t_latency _lHr;
+  t_latency _lSsrIgs;
   void setCurrentLatency(double lat) {
     _curLat = lat;
Index: trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 9122)
+++ trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 9124)
@@ -57,5 +57,5 @@
 
   _ssrFormat = ssrFormat;
-  
+
   _ssrCorr = 0;
   if      (_ssrFormat == "IGS-SSR") {
@@ -380,6 +380,6 @@
 
   co.UpdateInterval = clkUpdInd;
-  bias.UpdateInterval = clkUpdInd;
-  phasebias.UpdateInterval = clkUpdInd;
+  bias.UpdateInterval = ephUpdInd;
+  phasebias.UpdateInterval = ephUpdInd;
 
   for (int ii = 1; ii < lines.size(); ii++) {
@@ -476,4 +476,5 @@
       QList<phaseBiasSignal> phaseBiasList;
       phaseBiasesSat pbSat;
+      bool phaseBiasInformationDecoded = false;
 
       while (true) {
@@ -534,4 +535,5 @@
         }
         else if (key == "YawAngle") {
+          phaseBiasInformationDecoded = true;
           in >> numVal >> pbSat.yawAngle;
           if      (pbSat.yawAngle < 0.0) {
@@ -546,4 +548,5 @@
         }
         else if (key == "PhaseBias") {
+          phaseBiasInformationDecoded = true;
           in >> numVal;
           for (int ii = 0; ii < numVal; ii++) {
@@ -704,5 +707,5 @@
       }
 
-      if (phasebiasSat) {
+      if (phasebiasSat && phaseBiasInformationDecoded) {
         phasebias.DispersiveBiasConsistencyIndicator = dispersiveBiasConsistenyIndicator;
         phasebias.MWConsistencyIndicator = mwConsistencyIndicator;
