Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 6553)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 6556)
@@ -191,5 +191,5 @@
       if (irc == GCOBR_OK || irc == GCOBR_MESSAGEFOLLOWS ) {
 
-        setReferenceTime(); // sets _lastTime
+        setEpochTime(); // sets _lastTime
  
         if (_lastTime.valid()) { 
@@ -238,14 +238,15 @@
       t_orbCorr orbCorr;
       orbCorr._prn.set(sysCh, _clkOrb.Sat[ii].ID);
-      orbCorr._staID    = _staID.toAscii().data();
-      orbCorr._iod      = _clkOrb.Sat[ii].IOD;
-      orbCorr._time     = _lastTime;
-      orbCorr._system   = 'R';
-      orbCorr._xr[0]    = _clkOrb.Sat[ii].Orbit.DeltaRadial;
-      orbCorr._xr[1]    = _clkOrb.Sat[ii].Orbit.DeltaAlongTrack;
-      orbCorr._xr[2]    = _clkOrb.Sat[ii].Orbit.DeltaCrossTrack;
-      orbCorr._dotXr[0] = _clkOrb.Sat[ii].Orbit.DotDeltaRadial;
-      orbCorr._dotXr[1] = _clkOrb.Sat[ii].Orbit.DotDeltaAlongTrack;
-      orbCorr._dotXr[2] = _clkOrb.Sat[ii].Orbit.DotDeltaCrossTrack;
+      orbCorr._staID     = _staID.toAscii().data();
+      orbCorr._iod       = _clkOrb.Sat[ii].IOD;
+      orbCorr._time      = _lastTime;
+      orbCorr._updateInt = _clkOrb.UpdateInterval;
+      orbCorr._system    = 'R';
+      orbCorr._xr[0]     = _clkOrb.Sat[ii].Orbit.DeltaRadial;
+      orbCorr._xr[1]     = _clkOrb.Sat[ii].Orbit.DeltaAlongTrack;
+      orbCorr._xr[2]     = _clkOrb.Sat[ii].Orbit.DeltaCrossTrack;
+      orbCorr._dotXr[0]  = _clkOrb.Sat[ii].Orbit.DotDeltaRadial;
+      orbCorr._dotXr[1]  = _clkOrb.Sat[ii].Orbit.DotDeltaAlongTrack;
+      orbCorr._dotXr[2]  = _clkOrb.Sat[ii].Orbit.DotDeltaCrossTrack;
 
       _orbCorrections[_lastTime].push_back(orbCorr);
@@ -265,4 +266,5 @@
       clkCorr._staID      = _staID.toAscii().data();
       clkCorr._time       = _lastTime;
+      clkCorr._updateInt  = _clkOrb.UpdateInterval;
       clkCorr._dClk       = _clkOrb.Sat[ii].Clock.DeltaA0 / t_CST::c;
       clkCorr._dotDClk    = _clkOrb.Sat[ii].Clock.DeltaA1 / t_CST::c;
@@ -285,7 +287,8 @@
       if (_lastClkCorrections.contains(prn)) {
         t_clkCorr clkCorr;
-        clkCorr        = _lastClkCorrections[prn];
-        clkCorr._time  = _lastTime;
-        clkCorr._dClk  +=_clkOrb.Sat[ii].hrclock / t_CST::c;
+        clkCorr            = _lastClkCorrections[prn];
+        clkCorr._time      = _lastTime;
+        clkCorr._updateInt = _clkOrb.UpdateInterval;
+        clkCorr._dClk     += _clkOrb.Sat[ii].hrclock / t_CST::c;
         if (_IODs.contains(clkCorr._prn)) {
           clkCorr._iod = _IODs[clkCorr._prn];
@@ -311,6 +314,7 @@
     t_satCodeBias satCodeBias;
     satCodeBias._prn.set(sysCh, _codeBias.Sat[ii].ID);
-    satCodeBias._staID = _staID.toAscii().data();
-    satCodeBias._time  = _lastTime;
+    satCodeBias._staID     = _staID.toAscii().data();
+    satCodeBias._time      = _lastTime;
+    satCodeBias._updateInt = _codeBias.UpdateInterval;
     for (unsigned jj = 0; jj < _codeBias.Sat[ii].NumberOfCodeBiases; jj++) {
       const CodeBias::BiasSat::CodeBiasEntry& biasEntry = _codeBias.Sat[ii].Biases[jj];
@@ -342,4 +346,5 @@
     satPhaseBias._staID      = _staID.toAscii().data();
     satPhaseBias._time       = _lastTime;
+    satPhaseBias._updateInt  = _phaseBias.UpdateInterval;
     satPhaseBias._yawDeg     = _phaseBias.Sat[ii].YawAngle * 180.0 / M_PI;
     satPhaseBias._yawDegRate = _phaseBias.Sat[ii].YawRate * 180.0 / M_PI;
@@ -363,4 +368,5 @@
   if (_vTEC.NumLayers > 0) {
     _vTecMap[_lastTime]._time  = _lastTime;
+    _vTecMap[_lastTime]._updateInt =  _vTEC.UpdateInterval;
     _vTecMap[_lastTime]._staID = _staID.toAscii().data();
     for (unsigned ii = 0; ii < _vTEC.NumLayers; ii++) {
@@ -463,55 +469,30 @@
 //
 ////////////////////////////////////////////////////////////////////////////
-void RTCM3coDecoder::setReferenceTime() {
+void RTCM3coDecoder::setEpochTime() {
 
   _lastTime.reset();
 
-  const QVector<int> updateInt = QVector<int>()  << 1 << 2 << 5 << 10 << 15 << 30
-                                                 << 60 << 120 << 240 << 300 << 600
-                                                 << 900 << 1800 << 3600 << 7200
-                                                 << 10800;
   double epoSecGPS = -1.0;
   double epoSecGlo = -1.0;
   if      (_clkOrb.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
     epoSecGPS = _clkOrb.EpochTime[CLOCKORBIT_SATGPS];        // 0 .. 604799 s
-    if (_clkOrb.UpdateInterval) {
-      epoSecGPS += 0.5 * updateInt[_clkOrb.UpdateInterval];
-    }
   }
   else if (_codeBias.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
     epoSecGPS = _codeBias.EpochTime[CLOCKORBIT_SATGPS];      // 0 .. 604799 s  
-    if (_codeBias.UpdateInterval) {
-      epoSecGPS += 0.5 * updateInt[_codeBias.UpdateInterval];
-    }
   }
   else if (_phaseBias.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
     epoSecGPS = _phaseBias.EpochTime[CLOCKORBIT_SATGPS];     // 0 .. 604799 s  
-    if (_phaseBias.UpdateInterval) {
-      epoSecGPS += 0.5 * updateInt[_phaseBias.UpdateInterval];
-    }
   }
   else if (_vTEC.NumLayers > 0) {
     epoSecGPS = _vTEC.EpochTime;                             // 0 .. 604799 s  
-    if (_vTEC.UpdateInterval) {
-      epoSecGPS += 0.5 * updateInt[_vTEC.UpdateInterval];
-    }
   }
   else if (_clkOrb.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
     epoSecGlo = _clkOrb.EpochTime[CLOCKORBIT_SATGLONASS];    // 0 .. 86399 s
-    if (_clkOrb.UpdateInterval) {
-      epoSecGlo += 0.5 * updateInt[_clkOrb.UpdateInterval];
-    }
   }
   else if (_codeBias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
     epoSecGlo = _codeBias.EpochTime[CLOCKORBIT_SATGLONASS];  // 0 .. 86399 s
-    if (_codeBias.UpdateInterval) {
-      epoSecGlo += 0.5 * updateInt[_codeBias.UpdateInterval];
-    }
   }
   else if (_phaseBias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
     epoSecGlo = _phaseBias.EpochTime[CLOCKORBIT_SATGLONASS]; // 0 .. 86399 s
-    if (_phaseBias.UpdateInterval) {
-      epoSecGlo += 0.5 * updateInt[_phaseBias.UpdateInterval];
-    }
   }
 
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 6553)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 6556)
@@ -54,5 +54,5 @@
  private:
   void reset();
-  void setReferenceTime();
+  void setEpochTime();
   void sendResults();
   void reopen();
