Changeset 2709 in ntrip for trunk/BNC/RTCM


Ignore:
Timestamp:
Nov 18, 2010, 12:28:40 PM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC/RTCM
Files:
2 edited

Legend:

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

    r2702 r2709  
    2929#include <vector>
    3030#include <string>
    31 #include <QPointer>
    3231#include <QList>
    3332#include <QStringList>
     
    3534#include "bncconst.h"
    3635
    37 struct t_obsInternal {
     36class t_obs {
     37 public:
     38  enum t_obs_status {initial, posted, received};
     39  t_obs() {
     40    _status     = initial;
     41    satSys      = 'G';
     42    satNum      = 0;
     43    slotNum     = 0;
     44    GPSWeek     = 0;
     45    GPSWeeks    = 0.0;
     46    C1          = 0.0;
     47    P1          = 0.0;
     48    L1C         = 0.0;
     49    D1C         = 0.0;
     50    S1C         = 0.0;
     51    L1P         = 0.0;
     52    D1P         = 0.0;
     53    S1P         = 0.0;
     54    C2          = 0.0;
     55    P2          = 0.0;
     56    L2C         = 0.0;
     57    D2C         = 0.0;
     58    S2C         = 0.0;
     59    L2P         = 0.0;
     60    D2P         = 0.0;
     61    S2P         = 0.0;
     62    C5          = 0.0;
     63    L5          = 0.0;
     64    D5          = 0.0;
     65    S5          = 0.0;
     66    slip_cnt_L1 = -1;
     67    slip_cnt_L2 = -1;
     68    slip_cnt_L5 = -1;
     69    StatID[0]   = '\x0';
     70  }
     71
     72  ~t_obs() {}
     73
     74  double L1() const {return (L1P != 0.0 ? L1P : L1C);}
     75  double L2() const {return (L2P != 0.0 ? L2P : L2C);}
     76  double S1() const {return (L1P != 0.0 ? S1P : S1C);}
     77  double S2() const {return (L2P != 0.0 ? S2P : S2C);}
     78
     79  t_obs_status  _status;
     80
    3881  char   StatID[20+1]; // Station ID
    3982  char   satSys;       // Satellite System ('G' or 'R')
     
    71114};
    72115
    73 class t_obs : public QObject{
    74  public:
    75   enum t_obs_status {initial, posted, received};
    76   t_obs() {
    77     _status        = initial;
    78     _o.satSys      = 'G';
    79     _o.satNum      = 0;
    80     _o.slotNum     = 0;
    81     _o.GPSWeek     = 0;
    82     _o.GPSWeeks    = 0.0;
    83     _o.C1          = 0.0;
    84     _o.P1          = 0.0;
    85     _o.L1C         = 0.0;
    86     _o.D1C         = 0.0;
    87     _o.S1C         = 0.0;
    88     _o.L1P         = 0.0;
    89     _o.D1P         = 0.0;
    90     _o.S1P         = 0.0;
    91     _o.C2          = 0.0;
    92     _o.P2          = 0.0;
    93     _o.L2C         = 0.0;
    94     _o.D2C         = 0.0;
    95     _o.S2C         = 0.0;
    96     _o.L2P         = 0.0;
    97     _o.D2P         = 0.0;
    98     _o.S2P         = 0.0;
    99     _o.C5          = 0.0;
    100     _o.L5          = 0.0;
    101     _o.D5          = 0.0;
    102     _o.S5          = 0.0;
    103     _o.slip_cnt_L1 = -1;
    104     _o.slip_cnt_L2 = -1;
    105     _o.slip_cnt_L5 = -1;
    106     _o.StatID[0]   = '\x0';
    107   }
    108   ~t_obs() {}
    109   double L1() const {return (_o.L1P != 0.0 ? _o.L1P : _o.L1C);}
    110   double L2() const {return (_o.L2P != 0.0 ? _o.L2P : _o.L2C);}
    111   double S1() const {return (_o.L1P != 0.0 ? _o.S1P : _o.S1C);}
    112   double S2() const {return (_o.L2P != 0.0 ? _o.S2P : _o.S2C);}
    113   t_obsInternal _o;
    114   t_obs_status  _status;
    115 };
    116 
    117 typedef QPointer<t_obs> p_obs;
     116typedef t_obs* p_obs;
    118117
    119118class GPSDecoder {
     
    125124    while (it.hasNext()) {
    126125      p_obs obs = it.next();
    127       if (!obs.isNull() && obs->_status == t_obs::initial) {
     126      if (obs && obs->_status == t_obs::initial) {
    128127        delete obs;
    129128      }
  • trunk/BNC/RTCM/RTCM2Decoder.cpp

    r2702 r2709  
    143143          _obsList.push_back(obs);
    144144          if (_ObsBlock.PRN[iSat] > 100) {
    145             obs->_o.satNum      = _ObsBlock.PRN[iSat] % 100;
    146             obs->_o.satSys      = 'R';
     145            obs->satNum      = _ObsBlock.PRN[iSat] % 100;
     146            obs->satSys      = 'R';
    147147          }                     
    148148          else {               
    149             obs->_o.satNum      = _ObsBlock.PRN[iSat];
    150             obs->_o.satSys      = 'G';
     149            obs->satNum      = _ObsBlock.PRN[iSat];
     150            obs->satSys      = 'G';
    151151          }                     
    152           obs->_o.GPSWeek       = epochWeek;
    153           obs->_o.GPSWeeks      = epochSecs;
    154           obs->_o.C1            = _ObsBlock.rng_C1[iSat];
    155           obs->_o.P1            = _ObsBlock.rng_P1[iSat];
    156           obs->_o.P2            = _ObsBlock.rng_P2[iSat];
    157           obs->_o.L1P           = _ObsBlock.resolvedPhase_L1(iSat);
    158           obs->_o.L2P           = _ObsBlock.resolvedPhase_L2(iSat);
    159           obs->_o.slip_cnt_L1   = _ObsBlock.slip_L1[iSat];
    160           obs->_o.slip_cnt_L2   = _ObsBlock.slip_L2[iSat];
     152          obs->GPSWeek       = epochWeek;
     153          obs->GPSWeeks      = epochSecs;
     154          obs->C1            = _ObsBlock.rng_C1[iSat];
     155          obs->P1            = _ObsBlock.rng_P1[iSat];
     156          obs->P2            = _ObsBlock.rng_P2[iSat];
     157          obs->L1P           = _ObsBlock.resolvedPhase_L1(iSat);
     158          obs->L2P           = _ObsBlock.resolvedPhase_L2(iSat);
     159          obs->slip_cnt_L1   = _ObsBlock.slip_L1[iSat];
     160          obs->slip_cnt_L2   = _ObsBlock.slip_L2[iSat];
    161161        }
    162162        _ObsBlock.clear();
     
    382382          new_obs = new t_obs();
    383383
    384           new_obs->_o.StatID[0] = '\x0';
    385           new_obs->_o.satSys    = (corr->PRN < 200 ? 'G'       : 'R');
    386           new_obs->_o.satNum    = (corr->PRN < 200 ? corr->PRN : corr->PRN - 200);
     384          new_obs->StatID[0] = '\x0';
     385          new_obs->satSys    = (corr->PRN < 200 ? 'G'       : 'R');
     386          new_obs->satNum    = (corr->PRN < 200 ? corr->PRN : corr->PRN - 200);
    387387         
    388           new_obs->_o.GPSWeek   = GPSWeek_rcv;
    389           new_obs->_o.GPSWeeks  = GPSWeeks_rcv;
     388          new_obs->GPSWeek   = GPSWeek_rcv;
     389          new_obs->GPSWeeks  = GPSWeeks_rcv;
    390390        }
    391391       
     
    394394        switch (ii) {
    395395        case 0: // --- L1 ---
    396           new_obs->_o.L1P = *obsVal / LAMBDA_1;
    397           new_obs->_o.slip_cnt_L1   = corr->lock1;
     396          new_obs->L1P = *obsVal / LAMBDA_1;
     397          new_obs->slip_cnt_L1   = corr->lock1;
    398398          break;
    399399        case 1: // --- L2 ---
    400           new_obs->_o.L2P = *obsVal / LAMBDA_2;
    401           new_obs->_o.slip_cnt_L2   = corr->lock2;
     400          new_obs->L2P = *obsVal / LAMBDA_2;
     401          new_obs->slip_cnt_L2   = corr->lock2;
    402402          break;
    403403        case 2: // --- C1 / P1 ---
    404404          if ( corr->Pind1 )
    405             new_obs->_o.P1 = *obsVal;
     405            new_obs->P1 = *obsVal;
    406406          else
    407             new_obs->_o.C1 = *obsVal;
     407            new_obs->C1 = *obsVal;
    408408          break;
    409409        case 3: // --- C2 / P2 ---
    410410          if ( corr->Pind2 )
    411             new_obs->_o.P2 = *obsVal;
     411            new_obs->P2 = *obsVal;
    412412          else
    413             new_obs->_o.C2 = *obsVal;
     413            new_obs->C2 = *obsVal;
    414414          break;
    415415        default:
Note: See TracChangeset for help on using the changeset viewer.