Ignore:
Timestamp:
Sep 17, 2024, 4:56:38 PM (8 weeks ago)
Author:
stuerze
Message:

Service and RTCM CRS encoding and decoding as well as Helmert parameter decoding added + some re-organisation

File:
1 edited

Legend:

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

    r10527 r10534  
    9898
    9999  _ssrCorr = 0;
     100
    100101}
    101102
     
    178179    struct SsrCorr::PhaseBias  phaseBiasSav;
    179180    struct SsrCorr::VTEC       vTECSav;
    180     memcpy(&clkOrbSav,    &_clkOrb,    sizeof(clkOrbSav)); // save state
    181     memcpy(&codeBiasSav,  &_codeBias,  sizeof(codeBiasSav));
    182     memcpy(&phaseBiasSav, &_phaseBias, sizeof(phaseBiasSav));
    183     memcpy(&vTECSav,      &_vTEC,      sizeof(vTECSav));
     181    memcpy(&clkOrbSav,     &_clkOrb,    sizeof(clkOrbSav)); // save state
     182    memcpy(&codeBiasSav,   &_codeBias,  sizeof(codeBiasSav));
     183    memcpy(&phaseBiasSav,  &_phaseBias, sizeof(phaseBiasSav));
     184    memcpy(&vTECSav,       &_vTEC,      sizeof(vTECSav));
    184185
    185186    int bytesused = 0;
     
    205206
    206207      if (irc == GCOBR_OK || irc == GCOBR_MESSAGEFOLLOWS ) {
    207 
    208208        setEpochTime(); // sets _lastTime
    209209
     
    554554  newProviderID[1] = _clkOrb.SSRSolutionID;
    555555  newProviderID[2] = _clkOrb.SSRIOD;
     556  QString newProviderIDStr = QString(" [SSR Provider ID: %1 SSR Solution ID: %2 SSR IOD: %3]: ")
     557      .arg(newProviderID[0]).arg(newProviderID[1]).arg(newProviderID[2]);
    556558
    557559  bool alreadySet = false;
     
    569571
    570572  if (alreadySet && different) {
    571     emit newMessage("RTCM3coDecoder: Provider Changed: " + _staID.toLatin1(), true);
     573    emit newMessage("RTCM3coDecoder: Provider Changed " +  newProviderIDStr.toLatin1() + _staID.toLatin1(), true);
    572574    emit providerIDChanged(_staID);
    573575  }
     
    657659  }
    658660  else if (epoSecGlo != -1) {
     661    QDate date = dateAndTimeFromGPSweek(currentTime.gpsw(), currentTime.gpssec()).date();
     662    if (_type == IGSssr) {
     663      if (epoSecGPS != -1 && epoSecGPS != epoSecGlo) {// should be not done in case of an IGS-SSR encoding error => line has to be deleted
     664        epoSecGlo = epoSecGlo + gnumleap(date.year(), date.month(), date.day());
     665      }
     666    }
    659667    if (_type == RTCMssr) {
    660       QDate date = dateAndTimeFromGPSweek(currentTime.gpsw(), currentTime.gpssec()).date();
    661668      epoSecGlo = epoSecGlo - 3 * 3600 + gnumleap(date.year(), date.month(), date.day());
    662669    }
     
    673680  }
    674681  else if (epoSecBds != -1) {
     682    if (_type == IGSssr) {
     683      if (epoSecGPS != -1 && epoSecGPS != epoSecBds) {// should be not done in case of an IGS-SSR encoding error => line has to be deleted
     684        epoSecBds += 14.0;
     685        if (epoSecBds > 604800.0) {
     686          epoSecBds -= 7.0*24.0*60.0*60.0;
     687        }
     688      }
     689    }//  line has to be deleted
    675690    if (_type == RTCMssr) {
    676691      epoSecBds += 14.0;
Note: See TracChangeset for help on using the changeset viewer.