Changeset 1044 in ntrip for trunk/BNC/bncgetthread.cpp


Ignore:
Timestamp:
Aug 19, 2008, 11:36:54 AM (16 years ago)
Author:
zdenek
Message:

Zdenek Lukes: a) added logic for RTCM 2.3 messages 20/21 decoding

b) added logic for cycle slip flags (slip counters or lock time indicators) handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r1035 r1044  
    4040
    4141#include <stdlib.h>
     42#include <iomanip>
    4243
    4344#include <QFile>
     
    144145    _rnx = new bncRinex(_staID, mountPoint, format, latitude, longitude, nmea);
    145146  }
     147  _rnx_set_position = false;
    146148
    147149  msleep(100); //sleep 0.1 sec
     
    160162  }
    161163  delete _decoder;
    162   delete _rnx;   
     164  delete _rnx;
    163165}
    164166
     
    369371    if      (_format.indexOf("RTCM_2") != -1) {
    370372      emit(newMessage("Get Data: " + _staID + " in RTCM 2.x format"));
    371       _decoder = new RTCM2Decoder();
     373      _decoder = new RTCM2Decoder(_staID.data());
    372374    }
    373375    else if (_format.indexOf("RTCM_3") != -1) {
     
    560562
    561563        delete [] data;
    562        
     564
    563565        QListIterator<p_obs> it(_decoder->_obsList);
    564566        while (it.hasNext()) {
     
    648650          // ------------
    649651          if (_rnx) {
    650              long iSec    = long(floor(obs->_o.GPSWeeks+0.5));
    651              long newTime = obs->_o.GPSWeek * 7*24*3600 + iSec;
    652             if (_samplingRate == 0 || iSec % _samplingRate == 0) {
    653               _rnx->deepCopy(obs);
     652            bool dump = true;
     653
     654            ////RTCM2Decoder* decoder2 = dynamic_cast<RTCM2Decoder*>(_decoder);
     655            ////if ( decoder2 && !_rnx_set_position ) {
     656            ////  double stax, stay, staz;
     657            ////  if ( decoder2->getStaCrd(stax, stay, staz) == success ) {
     658            ////        _rnx->setApproxPos(stax, stay, staz);
     659            ////        _rnx_set_position = true;
     660            ////  }
     661            ////  else {
     662            ////        dump = false;
     663            ////  }
     664            ////}
     665             
     666            if ( dump ) {
     667              long iSec    = long(floor(obs->_o.GPSWeeks+0.5));
     668              long newTime = obs->_o.GPSWeek * 7*24*3600 + iSec;
     669              if (_samplingRate == 0 || iSec % _samplingRate == 0) {
     670                _rnx->deepCopy(obs);
     671              }
     672              _rnx->dumpEpoch(newTime);
    654673            }
    655             _rnx->dumpEpoch(newTime);
    656           }
    657 
     674          }
     675
     676          // Emit new observation signal
     677          // ---------------------------
    658678          bool firstObs = (obs == _decoder->_obsList.first());
    659679          obs->_status = t_obs::posted;
     
    757777  }
    758778}
     779
     780//
     781//////////////////////////////////////////////////////////////////////////////
     782void bncGetThread::slotNewEphGPS(gpsephemeris gpseph) {
     783  RTCM2Decoder* decoder = dynamic_cast<RTCM2Decoder*>(_decoder);
     784
     785  if ( decoder ) {
     786    QMutexLocker locker(&_mutex);
     787 
     788    decoder->storeEph(gpseph);
     789  }
     790}
     791
Note: See TracChangeset for help on using the changeset viewer.