Changeset 621 in ntrip


Ignore:
Timestamp:
Dec 16, 2007, 3:44:57 PM (16 years ago)
Author:
mervart
Message:

* empty log message *

Location:
trunk/BNC
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/RTCM/GPSDecoder.h

    r464 r621  
    2626#define GPSDECODER_H
    2727
    28 #include <list>
     28#include <QPointer>
     29#include <QList>
    2930
    30 class Observation {
     31class Observation : public QObject{
    3132  public:
    3233  Observation() {
     
    6869};
    6970
     71typedef QPointer<Observation> p_obs;
     72
    7073class GPSDecoder {
    7174  public:
    7275    virtual void Decode(char* buffer, int bufLen) = 0;
    7376    virtual ~GPSDecoder() {}
    74     std::list<Observation*> _obsList;
     77    QList<p_obs> _obsList;
    7578};
    7679
  • trunk/BNC/RTCM/RTCM2Decoder.cpp

    r464 r621  
    5858
    5959RTCM2Decoder::~RTCM2Decoder() {
    60 
     60  QListIterator<p_obs> it(_obsList);
     61  while (it.hasNext()) {
     62    delete it.next();
     63  }
     64  _obsList.clear();
    6165}
    6266
  • trunk/BNC/RTCM3/RTCM3Decoder.cpp

    r585 r621  
    8484////////////////////////////////////////////////////////////////////////////
    8585RTCM3Decoder::~RTCM3Decoder() {
     86  QListIterator<p_obs> it(_obsList);
     87  while (it.hasNext()) {
     88    delete it.next();
     89  }
     90  _obsList.clear();
    8691}
    8792
  • trunk/BNC/RTIGS/RTIGSDecoder.cpp

    r464 r621  
    5555////////////////////////////////////////////////////////////////////////////
    5656RTIGSDecoder::~RTIGSDecoder() {
     57  QListIterator<p_obs> it(_obsList);
     58  while (it.hasNext()) {
     59    delete it.next();
     60  }
     61  _obsList.clear();
    5762}
    5863
  • trunk/BNC/bnc.pro

    r610 r621  
    22# Switch to debug configuration
    33# -----------------------------
    4 ### CONFIG -= release
    5 ### CONFIG += debug
     4CONFIG -= release
     5CONFIG += debug
    66
    77DEFINES += NO_RTCM3_MAIN
  • trunk/BNC/bncapp.cpp

    r600 r621  
    7373  _logFile     = 0;
    7474  _logStream   = 0;
     75  _caster      = 0;
    7576
    7677  // Lists of Ephemeris
     
    617618}
    618619
     620//
     621////////////////////////////////////////////////////////////////////////////
     622void bncApp::slotQuit() {
     623  cout << "bncApp::slotQuit" << endl;
     624  delete _caster;
     625  quit();
     626}
     627
     628
  • trunk/BNC/bncapp.h

    r600 r621  
    4040    QString bncVersion() const {return _bncVersion;}
    4141    void    setPort(int port);
     42    void setCaster(bncCaster* caster) {_caster = caster;}
    4243  public slots:
    4344    void slotMessage(const QByteArray msg);
    4445    void slotNewGPSEph(gpsephemeris* gpseph);
    4546    void slotNewGlonassEph(glonassephemeris* glonasseph);
     47    void slotQuit();
     48   
    4649 private slots:
    4750   void slotNewConnection();
     
    7073    QTcpServer*         _server;
    7174    QList<QTcpSocket*>* _sockets;
     75    bncCaster*          _caster;
    7276};
    7377#endif
  • trunk/BNC/bncgetthread.cpp

    r620 r621  
    377377  // ------------------
    378378  while (true) {
     379
     380    if (_decoder) {
     381      QListIterator<p_obs> it(_decoder->_obsList);
     382      while (it.hasNext()) {
     383        delete it.next();
     384      }
     385      _decoder->_obsList.clear();
     386    }
     387
    379388    try {
    380389      if (_socket->state() != QAbstractSocket::ConnectedState) {
     
    394403        delete [] data;
    395404       
    396         for (list<Observation*>::iterator it = _decoder->_obsList.begin();
    397              it != _decoder->_obsList.end(); it++) {
     405
     406        QListIterator<p_obs> it(_decoder->_obsList);
     407        while (it.hasNext()) {
     408          p_obs obs = it.next();
    398409
    399410          // Check observation epoch
     
    406417          const double maxDt      = 600.0;           
    407418
    408           if (week < (*it)->GPSWeek) {
     419          if (week < obs->GPSWeek) {
    409420            week += 1;
    410421            sec  -= secPerWeek;
    411422          }
    412           if (week > (*it)->GPSWeek) {
     423          if (week > obs->GPSWeek) {
    413424            week -= 1;
    414425            sec  += secPerWeek;
    415426          }
    416           double dt = fabs(sec - (*it)->GPSWeeks);
    417           if (week != (*it)->GPSWeek || dt > maxDt) {
     427          double dt = fabs(sec - obs->GPSWeeks);
     428          if (week != obs->GPSWeek || dt > maxDt) {
    418429            emit( newMessage("Wrong observation epoch") );
    419             delete (*it);
     430            delete obs;
    420431            continue;
    421432          }
     
    424435          // ------------
    425436          if (_rnx) {
    426              long iSec    = long(floor((*it)->GPSWeeks+0.5));
    427              long newTime = (*it)->GPSWeek * 7*24*3600 + iSec;
     437             long iSec    = long(floor(obs->GPSWeeks+0.5));
     438             long newTime = obs->GPSWeek * 7*24*3600 + iSec;
    428439            if (_samplingRate == 0 || iSec % _samplingRate == 0) {
    429               _rnx->deepCopy(*it);
     440              _rnx->deepCopy(obs);
    430441            }
    431442            _rnx->dumpEpoch(newTime);
    432443          }
    433444
    434           bool firstObs = (it == _decoder->_obsList.begin());
    435           emit newObs(_staID, firstObs, *it);
     445          bool firstObs = (obs == _decoder->_obsList.first());
     446          emit newObs(_staID, firstObs, obs);
    436447        }
    437448        _decoder->_obsList.clear();
  • trunk/BNC/bncmain.cpp

    r606 r621  
    5050using namespace std;
    5151
    52 bncCaster* _caster = 0;
    53 
    5452void catch_signal(int) {
    55   delete _caster;
    5653  cout << "Program Interrupted by Ctrl-C" << endl;
    57   ((bncApp*)qApp)->quit();
     54  ((bncApp*)qApp)->slotQuit();
    5855}
    5956
     
    109106  // ----------------------------
    110107  else {
     108
     109    bncCaster* caster = new bncCaster(settings.value("outFile").toString(),
     110                                      settings.value("outPort").toInt());
     111   
     112    app.setCaster(caster);
     113
    111114    // Ctrl-C Signal Handling
    112115    // ----------------------
    113116    signal(SIGINT, catch_signal);
    114117
    115     _caster = new bncCaster(settings.value("outFile").toString(),
    116                             settings.value("outPort").toInt());
    117    
     118    //// beg test
     119    QTimer::singleShot(30000, &app, SLOT(slotQuit()));
     120    //// end test
     121
    118122    app.setPort(settings.value("outEphPort").toInt());
    119123
    120     app.connect(_caster, SIGNAL(getThreadErrors()), &app, SLOT(quit()));
    121     app.connect(_caster, SIGNAL(newMessage(const QByteArray&)),
     124    app.connect(caster, SIGNAL(getThreadErrors()), &app, SLOT(quit()));
     125    app.connect(caster, SIGNAL(newMessage(const QByteArray&)),
    122126                &app, SLOT(slotMessage(const QByteArray&)));
    123127 
     
    139143                  &app, SLOT(slotMessage(const QByteArray&)));
    140144
    141       _caster->addGetThread(getThread);
     145      caster->addGetThread(getThread);
    142146
    143147      getThread->start();
    144148    }
    145     if (_caster->numStations() == 0) {
     149    if (caster->numStations() == 0) {
    146150      return 0;
    147151    }
Note: See TracChangeset for help on using the changeset viewer.