Changeset 2711 in ntrip for trunk/BNC/bncrinex.cpp


Ignore:
Timestamp:
Nov 18, 2010, 1:38:51 PM (13 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncrinex.cpp

    r2710 r2711  
    107107////////////////////////////////////////////////////////////////////////////
    108108bncRinex::~bncRinex() {
    109   QListIterator<t_obs*> it(_obs);
    110   while (it.hasNext()) {
    111     delete it.next();
    112   }
    113109  bncSettings settings;
    114110  if ((_rinexVers == 3) && ( Qt::CheckState(settings.value("rnxAppend").toInt()) != Qt::Checked) ) {
     
    518514// Stores Observation into Internal Array
    519515////////////////////////////////////////////////////////////////////////////
    520 void bncRinex::deepCopy(const t_obs* obs) {
    521   t_obs* newObs = new t_obs();
    522   memcpy(newObs, obs, sizeof(t_obs));
    523   _obs.push_back(newObs);
     516void bncRinex::deepCopy(t_obs obs) {
     517  _obs.push_back(obs);
    524518}
    525519
     
    530524  // Select observations older than maxTime
    531525  // --------------------------------------
    532   QList<t_obs*> dumpList;
    533   QMutableListIterator<t_obs*> mIt(_obs);
     526  QList<t_obs> dumpList;
     527  QMutableListIterator<t_obs> mIt(_obs);
    534528  while (mIt.hasNext()) {
    535     t_obs* obs = mIt.next();
    536     if (obs->GPSWeek * 7*24*3600 + obs->GPSWeeks < maxTime - 0.05) {
     529    t_obs obs = mIt.next();
     530    if (obs.GPSWeek * 7*24*3600 + obs.GPSWeeks < maxTime - 0.05) {
    537531      dumpList.push_back(obs);
    538532      mIt.remove();
     
    548542  // Time of Epoch
    549543  // -------------
    550   t_obs* fObs = *dumpList.begin();
    551   QDateTime datTim    = dateAndTimeFromGPSweek(fObs->GPSWeek, fObs->GPSWeeks);
    552   QDateTime datTimNom = dateAndTimeFromGPSweek(fObs->GPSWeek,
    553                                                floor(fObs->GPSWeeks+0.5));
     544  const t_obs& fObs   = dumpList.first();
     545  QDateTime datTim    = dateAndTimeFromGPSweek(fObs.GPSWeek, fObs.GPSWeeks);
     546  QDateTime datTimNom = dateAndTimeFromGPSweek(fObs.GPSWeek,
     547                                               floor(fObs.GPSWeeks+0.5));
    554548
    555549  // Close the file
     
    566560  }
    567561
    568   double sec = double(datTim.time().second()) + fmod(fObs->GPSWeeks,1.0);
     562  double sec = double(datTim.time().second()) + fmod(fObs.GPSWeeks,1.0);
    569563
    570564  // Epoch header line: RINEX Version 3
     
    582576         << "  " << 0 << setw(3)  << dumpList.size();
    583577
    584     QListIterator<t_obs*> it(dumpList); int iSat = 0;
     578    QListIterator<t_obs> it(dumpList); int iSat = 0;
    585579    while (it.hasNext()) {
    586580      iSat++;
    587       t_obs* obs = it.next();
    588       _out << obs->satSys << setw(2) << obs->satNum;
     581      const t_obs& obs = it.next();
     582      _out << obs.satSys << setw(2) << obs.satNum;
    589583      if (iSat == 12 && it.hasNext()) {
    590584        _out << endl << "                                ";
     
    595589  }
    596590
    597   QListIterator<t_obs*> it(dumpList);
     591  QListIterator<t_obs> it(dumpList);
    598592  while (it.hasNext()) {
    599     t_obs* obs = it.next();
     593    const t_obs& obs = it.next();
    600594
    601595    // Cycle slips detection
    602596    // ---------------------
    603     QString prn = QString("%1%2").arg(obs->satSys)
    604                             .arg(obs->satNum, 2, 10, QChar('0'));
     597    QString prn = QString("%1%2").arg(obs.satSys)
     598                            .arg(obs.satNum, 2, 10, QChar('0'));
    605599
    606600    char lli1 = ' ';
    607601    char lli2 = ' ';
    608602    char lli5 = ' ';
    609     if      ( obs->slip_cnt_L1 >= 0 ) {
     603    if      ( obs.slip_cnt_L1 >= 0 ) {
    610604      if ( _slip_cnt_L1.find(prn)         != _slip_cnt_L1.end() &&
    611            _slip_cnt_L1.find(prn).value() != obs->slip_cnt_L1 ) {
     605           _slip_cnt_L1.find(prn).value() != obs.slip_cnt_L1 ) {
    612606        lli1 = '1';
    613607      }
    614608    }
    615609
    616     if ( obs->slip_cnt_L2 >= 0 ) {
     610    if ( obs.slip_cnt_L2 >= 0 ) {
    617611      if ( _slip_cnt_L2.find(prn)         != _slip_cnt_L2.end() &&
    618            _slip_cnt_L2.find(prn).value() != obs->slip_cnt_L2 ) {
     612           _slip_cnt_L2.find(prn).value() != obs.slip_cnt_L2 ) {
    619613        lli2 = '1';
    620614      }
    621615    }
    622616
    623     if ( obs->slip_cnt_L5 >= 0 ) {
     617    if ( obs.slip_cnt_L5 >= 0 ) {
    624618      if ( _slip_cnt_L5.find(prn)         != _slip_cnt_L5.end() &&
    625            _slip_cnt_L5.find(prn).value() != obs->slip_cnt_L5 ) {
     619           _slip_cnt_L5.find(prn).value() != obs.slip_cnt_L5 ) {
    626620        lli5 = '1';
    627621      }
    628622    }
    629623
    630     _slip_cnt_L1[prn]   = obs->slip_cnt_L1;
    631     _slip_cnt_L2[prn]   = obs->slip_cnt_L2;
    632     _slip_cnt_L5[prn]   = obs->slip_cnt_L5;
     624    _slip_cnt_L1[prn]   = obs.slip_cnt_L1;
     625    _slip_cnt_L2[prn]   = obs.slip_cnt_L2;
     626    _slip_cnt_L5[prn]   = obs.slip_cnt_L5;
    633627
    634628    // RINEX Version 3
     
    642636    // ---------------
    643637    else {
    644       _out << setw(14) << setprecision(3) << obs->C1 << ' '  << ' '
    645            << setw(14) << setprecision(3) << obs->P1 << ' '  << ' '
    646            << setw(14) << setprecision(3) << obs->L1()  << lli1 << ' '
    647            << setw(14) << setprecision(3) << obs->S1()  << ' '  << ' '
    648            << setw(14) << setprecision(3) << obs->C2 << ' '  << ' ' << endl
    649            << setw(14) << setprecision(3) << obs->P2 << ' '  << ' '
    650            << setw(14) << setprecision(3) << obs->L2()  << lli2 << ' '
    651            << setw(16) << setprecision(3) << obs->S2()  << endl;
    652     }
    653 
    654     delete obs;
     638      _out << setw(14) << setprecision(3) << obs.C1 << ' '  << ' '
     639           << setw(14) << setprecision(3) << obs.P1 << ' '  << ' '
     640           << setw(14) << setprecision(3) << obs.L1()  << lli1 << ' '
     641           << setw(14) << setprecision(3) << obs.S1()  << ' '  << ' '
     642           << setw(14) << setprecision(3) << obs.C2 << ' '  << ' ' << endl
     643           << setw(14) << setprecision(3) << obs.P2 << ' '  << ' '
     644           << setw(14) << setprecision(3) << obs.L2()  << lli2 << ' '
     645           << setw(16) << setprecision(3) << obs.S2()  << endl;
     646    }
    655647  }
    656648
     
    679671// One Line in RINEX v3 (static)
    680672////////////////////////////////////////////////////////////////////////////
    681 string bncRinex::rinexSatLine(const t_obs* obs,
     673string bncRinex::rinexSatLine(const t_obs& obs,
    682674                              char lli1, char lli2, char lli5) {
    683675  ostringstream str;
    684676  str.setf(ios::showpoint | ios::fixed);
    685677
    686   if      (obs->satSys == 'G') { // GPS
    687     str << obs->satSys
    688         << setw(2) << setfill('0') << obs->satNum << setfill(' ')
    689         << setw(14) << setprecision(3) << obs->C1  << ' '  << ' ' 
    690         << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
    691         << setw(14) << setprecision(3) << obs->D1C << ' '  << ' '
    692         << setw(14) << setprecision(3) << obs->S1C << ' '  << ' '
    693         << setw(14) << setprecision(3) << obs->P1  << ' '  << ' ' 
    694         << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
    695         << setw(14) << setprecision(3) << obs->D1P << ' '  << ' '
    696         << setw(14) << setprecision(3) << obs->S1P << ' '  << ' '
    697         << setw(14) << setprecision(3) << obs->P2  << ' '  << ' '
    698         << setw(14) << setprecision(3) << obs->L2P << lli2 << ' '
    699         << setw(14) << setprecision(3) << obs->D2P << ' '  << ' '
    700         << setw(14) << setprecision(3) << obs->S2P << ' '  << ' '
    701         << setw(14) << setprecision(3) << obs->C2  << ' '  << ' ' 
    702         << setw(14) << setprecision(3) << obs->L2C << lli2 << ' '
    703         << setw(14) << setprecision(3) << obs->D2C << ' '  << ' '
    704         << setw(14) << setprecision(3) << obs->S2C << ' '  << ' '
    705         << setw(14) << setprecision(3) << obs->C5  << ' '  << ' ' 
    706         << setw(14) << setprecision(3) << obs->L5  << lli5 << ' '
    707         << setw(14) << setprecision(3) << obs->D5  << ' '  << ' ' 
    708         << setw(14) << setprecision(3) << obs->S5;
    709   }
    710   else if (obs->satSys == 'R') { // Glonass
    711     str << obs->satSys
    712         << setw(2) << setfill('0') << obs->satNum << setfill(' ')
    713         << setw(14) << setprecision(3) << obs->C1  << ' '  << ' ' 
    714         << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
    715         << setw(14) << setprecision(3) << obs->D1C << ' '  << ' ' 
    716         << setw(14) << setprecision(3) << obs->S1C << ' '  << ' '
    717         << setw(14) << setprecision(3) << obs->P1  << ' '  << ' ' 
    718         << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
    719         << setw(14) << setprecision(3) << obs->D1P << ' '  << ' ' 
    720         << setw(14) << setprecision(3) << obs->S1P << ' '  << ' '
    721         << setw(14) << setprecision(3) << obs->P2  << ' '  << ' ' 
    722         << setw(14) << setprecision(3) << obs->L2P << lli2 << ' '
    723         << setw(14) << setprecision(3) << obs->D2P << ' '  << ' ' 
    724         << setw(14) << setprecision(3) << obs->S2P << ' '  << ' '
    725         << setw(14) << setprecision(3) << obs->C2  << ' '  << ' '
    726         << setw(14) << setprecision(3) << obs->L2C << lli2 << ' '
    727         << setw(14) << setprecision(3) << obs->D2C << ' '  << ' ' 
    728         << setw(14) << setprecision(3) << obs->S2C;
    729   }
    730   else if (obs->satSys == 'S') { // SBAS
    731     str << obs->satSys
    732         << setw(2) << setfill('0') << obs->satNum << setfill(' ')
    733         << setw(14) << setprecision(3) << obs->C1  << ' '  << ' ' 
    734         << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
    735         << setw(14) << setprecision(3) << obs->D1C << ' '  << ' ' 
    736         << setw(14) << setprecision(3) << obs->S1C << ' '  << ' '
    737         << setw(14) << setprecision(3) << obs->P1  << ' '  << ' ' 
    738         << setw(14) << setprecision(3) << obs->L1P << lli1 << ' '
    739         << setw(14) << setprecision(3) << obs->D1P << ' '  << ' ' 
    740         << setw(14) << setprecision(3) << obs->S1P;
    741   }
    742   else if (obs->satSys == 'E') { // Galileo
    743     str << obs->satSys
    744         << setw(2) << setfill('0') << obs->satNum << setfill(' ')
    745         << setw(14) << setprecision(3) << obs->C1  << ' '  << ' ' 
    746         << setw(14) << setprecision(3) << obs->L1C << lli1 << ' '
    747         << setw(14) << setprecision(3) << obs->D1C << ' '  << ' '
    748         << setw(14) << setprecision(3) << obs->S1C << ' '  << ' '
    749         << setw(14) << setprecision(3) << obs->C5  << ' '  << ' ' 
    750         << setw(14) << setprecision(3) << obs->L5  << lli5 << ' '
    751         << setw(14) << setprecision(3) << obs->D5  << ' '  << ' ' 
    752         << setw(14) << setprecision(3) << obs->S5;
     678  if      (obs.satSys == 'G') { // GPS
     679    str << obs.satSys
     680        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
     681        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' ' 
     682        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
     683        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '
     684        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
     685        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' ' 
     686        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
     687        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '
     688        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' '
     689        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' '
     690        << setw(14) << setprecision(3) << obs.L2P << lli2 << ' '
     691        << setw(14) << setprecision(3) << obs.D2P << ' '  << ' '
     692        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' '
     693        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' ' 
     694        << setw(14) << setprecision(3) << obs.L2C << lli2 << ' '
     695        << setw(14) << setprecision(3) << obs.D2C << ' '  << ' '
     696        << setw(14) << setprecision(3) << obs.S2C << ' '  << ' '
     697        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' ' 
     698        << setw(14) << setprecision(3) << obs.L5  << lli5 << ' '
     699        << setw(14) << setprecision(3) << obs.D5  << ' '  << ' ' 
     700        << setw(14) << setprecision(3) << obs.S5;
     701  }
     702  else if (obs.satSys == 'R') { // Glonass
     703    str << obs.satSys
     704        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
     705        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' ' 
     706        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
     707        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' ' 
     708        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
     709        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' ' 
     710        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
     711        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' ' 
     712        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' '
     713        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' ' 
     714        << setw(14) << setprecision(3) << obs.L2P << lli2 << ' '
     715        << setw(14) << setprecision(3) << obs.D2P << ' '  << ' ' 
     716        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' '
     717        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' '
     718        << setw(14) << setprecision(3) << obs.L2C << lli2 << ' '
     719        << setw(14) << setprecision(3) << obs.D2C << ' '  << ' ' 
     720        << setw(14) << setprecision(3) << obs.S2C;
     721  }
     722  else if (obs.satSys == 'S') { // SBAS
     723    str << obs.satSys
     724        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
     725        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' ' 
     726        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
     727        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' ' 
     728        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
     729        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' ' 
     730        << setw(14) << setprecision(3) << obs.L1P << lli1 << ' '
     731        << setw(14) << setprecision(3) << obs.D1P << ' '  << ' ' 
     732        << setw(14) << setprecision(3) << obs.S1P;
     733  }
     734  else if (obs.satSys == 'E') { // Galileo
     735    str << obs.satSys
     736        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
     737        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' ' 
     738        << setw(14) << setprecision(3) << obs.L1C << lli1 << ' '
     739        << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '
     740        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
     741        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' ' 
     742        << setw(14) << setprecision(3) << obs.L5  << lli5 << ' '
     743        << setw(14) << setprecision(3) << obs.D5  << ' '  << ' ' 
     744        << setw(14) << setprecision(3) << obs.S5;
    753745  }
    754746  return str.str();
Note: See TracChangeset for help on using the changeset viewer.