Changeset 4768 in ntrip


Ignore:
Timestamp:
Oct 24, 2012, 6:02:49 PM (11 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/src/RTRover
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTRover/bncrtrover.cpp

    r4764 r4768  
    1515////////////////////////////////////////////////////////////////////////////
    1616t_bncRtrover::t_bncRtrover() : QThread(0) {
    17 
    1817}
    1918
     
    2120////////////////////////////////////////////////////////////////////////////
    2221t_bncRtrover::~t_bncRtrover() {
    23   QMapIterator<QString, t_corr*> ic(_corr);
    24   while (ic.hasNext()) {
    25     ic.next();
    26     delete ic.value();
    27   }
    2822  rtrover_destroy();
    2923}
     
    3428  bncSettings settings;
    3529
    36   // Processed Station, Corrections Source
    37   // -------------------------------------
    38   _pppCorrMount = settings.value("pppCorrMount").toString();
     30  // User Options
     31  // ------------
     32  _mode       = settings.value("rtroverMode").toByteArray();
     33  _roverMount = settings.value("rtroverRoverMount").toByteArray();
     34  _baseMount  = settings.value("rtroverBaseMount").toByteArray();
     35  _corrMount  = settings.value("rtroverCorrMount").toByteArray();
     36  _outputFile.setFileName(settings.value("rtroverOutput").toString());
     37  _outputFile.open(QIODevice::WriteOnly | QIODevice::Text);
    3938
    4039  // Define Input Options
    4140  // --------------------
    4241  rtrover_opt opt;
     42  opt._roverName = strdup(_roverMount.data());
     43  opt._baseName  = strdup(_baseMount.data());
     44  opt._xyzAprRover[0] = settings.value("rtroverRoverRefCrdX").toDouble();
     45  opt._xyzAprRover[1] = settings.value("rtroverRoverRefCrdY").toDouble();
     46  opt._xyzAprRover[2] = settings.value("rtroverRoverRefCrdZ").toDouble();
     47  opt._xyzAprBase[0]  = settings.value("rtroverBaseRefCrdX").toDouble();
     48  opt._xyzAprBase[1]  = settings.value("rtroverBaseRefCrdY").toDouble();
     49  opt._xyzAprBase[2]  = settings.value("rtroverBaseRefCrdZ").toDouble();
     50  opt._sigmaPhase = 0.002; // TODO
     51  opt._sigmaCode  = 2.0;   // TODO
    4352  rtrover_setOptions(&opt);
    4453
     
    155164  // Check the Mountpoint (source of corrections)
    156165  // --------------------------------------------
    157   if (!_pppCorrMount.isEmpty()) {
    158     QMutableListIterator<QString> itm(corrList);
    159     while (itm.hasNext()) {
    160       QStringList hlp = itm.next().split(" ");
    161       if (hlp.size() > 0) {
    162         QString mountpoint = hlp[hlp.size()-1];
    163         if (mountpoint != _pppCorrMount) {
    164           itm.remove();     
    165         }
     166  QMutableListIterator<QString> itm(corrList);
     167  while (itm.hasNext()) {
     168    QStringList hlp = itm.next().split(" ");
     169    if (hlp.size() > 0) {
     170      QString mountpoint = hlp[hlp.size()-1];
     171      if (mountpoint != _corrMount) {
     172        itm.remove();     
    166173      }
    167174    }
     
    185192
    186193    if ( t_corr::relevantMessageType(messageType) ) {
    187       t_corr* cc = 0;
    188       if (_corr.contains(prn)) {
    189         cc = _corr.value(prn);
    190       }
    191       else {
    192         cc = new t_corr();
    193         _corr[prn] = cc;
    194       }
    195 
    196       cc->readLine(line);
    197194    }
    198195  }
    199 
    200   QMapIterator<QString, t_corr*> ic(_corr);
    201   while (ic.hasNext()) {
    202     ic.next();
    203     t_corr* cc = ic.value();
    204     if (cc->ready()) {
    205 
    206     }
    207   }
    208196}
    209197
    210198//
    211199////////////////////////////////////////////////////////////////////////////
    212 void t_bncRtrover::slotNewObs(QByteArray staID, bool firstObs, t_obs obsIn) {
    213   QMutexLocker locker(&_mutex);
     200void t_bncRtrover::slotNewObs(QByteArray staID, bool /* firstObs */, t_obs obsIn) {
     201  QMutexLocker locker(&_mutex);
     202
     203  if (staID != _roverMount && staID != _baseMount) {
     204    return;
     205  }
    214206
    215207  bncTime obsTime(obsIn.GPSWeek, obsIn.GPSWeeks);
    216 
    217   if (_epoch.size() != 0) {
    218     bncTime epoTime(_epoch[0].GPSWeek, _epoch[0].GPSWeeks);
    219     if (epoTime != obsTime) {
    220       ////      const GPSS::gpcObs* allObs[_epoch.size()];
    221       for (unsigned iObs = 0; iObs < _epoch.size(); iObs++) {
    222         t_obs& obs = _epoch[iObs];
    223 
    224       }
    225 
    226 //      for (unsigned iObs = 0; iObs < _epoch.size(); iObs++) {
    227 //        delete allObs[iObs];
    228 //      }
    229 
    230       _epoch.clear();
    231     }
    232   }
    233 
    234   t_obs newObs(obsIn);
    235   _epoch.push_back(newObs);
    236 
    237208  int numSatRover = 1;
    238209  rtrover_satObs satObsRover[numSatRover];
     
    242213  rtrover_output output;
    243214  rtrover_processEpoch(numSatRover, satObsRover, 0, 0, &output);
    244 }
     215
     216  _outputFile.write(output._log);
     217  _outputFile.flush();
     218}
  • trunk/BNC/src/RTRover/bncrtrover.h

    r4763 r4768  
    33
    44#include <vector>
     5#include <queue>
    56
    67#include "RTCM/GPSDecoder.h"
     
    2324
    2425 private:
    25   QMutex                 _mutex;
    26   QString                _pppCorrMount;
    27   QMap<QString, t_corr*> _corr;
    28   std::vector<t_obs>     _epoch;
     26  class t_epoData {
     27   public:
     28    bncTime            _time;
     29    std::vector<t_obs> _obsRover;
     30    std::vector<t_obs> _obsBase;
     31  };
     32  QMutex                _mutex;
     33  QByteArray            _mode;
     34  QFile                 _outputFile;
     35  QByteArray            _roverMount;
     36  QByteArray            _baseMount;
     37  QByteArray            _corrMount;
     38  std::queue<t_epoData> _epochs;
    2939};
    3040
Note: See TracChangeset for help on using the changeset viewer.