Ignore:
Timestamp:
Jan 19, 2015, 6:57:52 PM (9 years ago)
Author:
stuerze
Message:

separate consideration of ssr update interval

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp

    r6553 r6556  
    191191      if (irc == GCOBR_OK || irc == GCOBR_MESSAGEFOLLOWS ) {
    192192
    193         setReferenceTime(); // sets _lastTime
     193        setEpochTime(); // sets _lastTime
    194194 
    195195        if (_lastTime.valid()) {
     
    238238      t_orbCorr orbCorr;
    239239      orbCorr._prn.set(sysCh, _clkOrb.Sat[ii].ID);
    240       orbCorr._staID    = _staID.toAscii().data();
    241       orbCorr._iod      = _clkOrb.Sat[ii].IOD;
    242       orbCorr._time     = _lastTime;
    243       orbCorr._system   = 'R';
    244       orbCorr._xr[0]    = _clkOrb.Sat[ii].Orbit.DeltaRadial;
    245       orbCorr._xr[1]    = _clkOrb.Sat[ii].Orbit.DeltaAlongTrack;
    246       orbCorr._xr[2]    = _clkOrb.Sat[ii].Orbit.DeltaCrossTrack;
    247       orbCorr._dotXr[0] = _clkOrb.Sat[ii].Orbit.DotDeltaRadial;
    248       orbCorr._dotXr[1] = _clkOrb.Sat[ii].Orbit.DotDeltaAlongTrack;
    249       orbCorr._dotXr[2] = _clkOrb.Sat[ii].Orbit.DotDeltaCrossTrack;
     240      orbCorr._staID     = _staID.toAscii().data();
     241      orbCorr._iod       = _clkOrb.Sat[ii].IOD;
     242      orbCorr._time      = _lastTime;
     243      orbCorr._updateInt = _clkOrb.UpdateInterval;
     244      orbCorr._system    = 'R';
     245      orbCorr._xr[0]     = _clkOrb.Sat[ii].Orbit.DeltaRadial;
     246      orbCorr._xr[1]     = _clkOrb.Sat[ii].Orbit.DeltaAlongTrack;
     247      orbCorr._xr[2]     = _clkOrb.Sat[ii].Orbit.DeltaCrossTrack;
     248      orbCorr._dotXr[0]  = _clkOrb.Sat[ii].Orbit.DotDeltaRadial;
     249      orbCorr._dotXr[1]  = _clkOrb.Sat[ii].Orbit.DotDeltaAlongTrack;
     250      orbCorr._dotXr[2]  = _clkOrb.Sat[ii].Orbit.DotDeltaCrossTrack;
    250251
    251252      _orbCorrections[_lastTime].push_back(orbCorr);
     
    265266      clkCorr._staID      = _staID.toAscii().data();
    266267      clkCorr._time       = _lastTime;
     268      clkCorr._updateInt  = _clkOrb.UpdateInterval;
    267269      clkCorr._dClk       = _clkOrb.Sat[ii].Clock.DeltaA0 / t_CST::c;
    268270      clkCorr._dotDClk    = _clkOrb.Sat[ii].Clock.DeltaA1 / t_CST::c;
     
    285287      if (_lastClkCorrections.contains(prn)) {
    286288        t_clkCorr clkCorr;
    287         clkCorr        = _lastClkCorrections[prn];
    288         clkCorr._time  = _lastTime;
    289         clkCorr._dClk  +=_clkOrb.Sat[ii].hrclock / t_CST::c;
     289        clkCorr            = _lastClkCorrections[prn];
     290        clkCorr._time      = _lastTime;
     291        clkCorr._updateInt = _clkOrb.UpdateInterval;
     292        clkCorr._dClk     += _clkOrb.Sat[ii].hrclock / t_CST::c;
    290293        if (_IODs.contains(clkCorr._prn)) {
    291294          clkCorr._iod = _IODs[clkCorr._prn];
     
    311314    t_satCodeBias satCodeBias;
    312315    satCodeBias._prn.set(sysCh, _codeBias.Sat[ii].ID);
    313     satCodeBias._staID = _staID.toAscii().data();
    314     satCodeBias._time  = _lastTime;
     316    satCodeBias._staID     = _staID.toAscii().data();
     317    satCodeBias._time      = _lastTime;
     318    satCodeBias._updateInt = _codeBias.UpdateInterval;
    315319    for (unsigned jj = 0; jj < _codeBias.Sat[ii].NumberOfCodeBiases; jj++) {
    316320      const CodeBias::BiasSat::CodeBiasEntry& biasEntry = _codeBias.Sat[ii].Biases[jj];
     
    342346    satPhaseBias._staID      = _staID.toAscii().data();
    343347    satPhaseBias._time       = _lastTime;
     348    satPhaseBias._updateInt  = _phaseBias.UpdateInterval;
    344349    satPhaseBias._yawDeg     = _phaseBias.Sat[ii].YawAngle * 180.0 / M_PI;
    345350    satPhaseBias._yawDegRate = _phaseBias.Sat[ii].YawRate * 180.0 / M_PI;
     
    363368  if (_vTEC.NumLayers > 0) {
    364369    _vTecMap[_lastTime]._time  = _lastTime;
     370    _vTecMap[_lastTime]._updateInt =  _vTEC.UpdateInterval;
    365371    _vTecMap[_lastTime]._staID = _staID.toAscii().data();
    366372    for (unsigned ii = 0; ii < _vTEC.NumLayers; ii++) {
     
    463469//
    464470////////////////////////////////////////////////////////////////////////////
    465 void RTCM3coDecoder::setReferenceTime() {
     471void RTCM3coDecoder::setEpochTime() {
    466472
    467473  _lastTime.reset();
    468474
    469   const QVector<int> updateInt = QVector<int>()  << 1 << 2 << 5 << 10 << 15 << 30
    470                                                  << 60 << 120 << 240 << 300 << 600
    471                                                  << 900 << 1800 << 3600 << 7200
    472                                                  << 10800;
    473475  double epoSecGPS = -1.0;
    474476  double epoSecGlo = -1.0;
    475477  if      (_clkOrb.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
    476478    epoSecGPS = _clkOrb.EpochTime[CLOCKORBIT_SATGPS];        // 0 .. 604799 s
    477     if (_clkOrb.UpdateInterval) {
    478       epoSecGPS += 0.5 * updateInt[_clkOrb.UpdateInterval];
    479     }
    480479  }
    481480  else if (_codeBias.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
    482481    epoSecGPS = _codeBias.EpochTime[CLOCKORBIT_SATGPS];      // 0 .. 604799 s 
    483     if (_codeBias.UpdateInterval) {
    484       epoSecGPS += 0.5 * updateInt[_codeBias.UpdateInterval];
    485     }
    486482  }
    487483  else if (_phaseBias.NumberOfSat[CLOCKORBIT_SATGPS] > 0) {
    488484    epoSecGPS = _phaseBias.EpochTime[CLOCKORBIT_SATGPS];     // 0 .. 604799 s 
    489     if (_phaseBias.UpdateInterval) {
    490       epoSecGPS += 0.5 * updateInt[_phaseBias.UpdateInterval];
    491     }
    492485  }
    493486  else if (_vTEC.NumLayers > 0) {
    494487    epoSecGPS = _vTEC.EpochTime;                             // 0 .. 604799 s 
    495     if (_vTEC.UpdateInterval) {
    496       epoSecGPS += 0.5 * updateInt[_vTEC.UpdateInterval];
    497     }
    498488  }
    499489  else if (_clkOrb.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
    500490    epoSecGlo = _clkOrb.EpochTime[CLOCKORBIT_SATGLONASS];    // 0 .. 86399 s
    501     if (_clkOrb.UpdateInterval) {
    502       epoSecGlo += 0.5 * updateInt[_clkOrb.UpdateInterval];
    503     }
    504491  }
    505492  else if (_codeBias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
    506493    epoSecGlo = _codeBias.EpochTime[CLOCKORBIT_SATGLONASS];  // 0 .. 86399 s
    507     if (_codeBias.UpdateInterval) {
    508       epoSecGlo += 0.5 * updateInt[_codeBias.UpdateInterval];
    509     }
    510494  }
    511495  else if (_phaseBias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) {
    512496    epoSecGlo = _phaseBias.EpochTime[CLOCKORBIT_SATGLONASS]; // 0 .. 86399 s
    513     if (_phaseBias.UpdateInterval) {
    514       epoSecGlo += 0.5 * updateInt[_phaseBias.UpdateInterval];
    515     }
    516497  }
    517498
Note: See TracChangeset for help on using the changeset viewer.