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


Ignore:
Timestamp:
Nov 18, 2010, 12:28:40 PM (13 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncrinex.cpp

    r2703 r2709  
    520520void bncRinex::deepCopy(const p_obs obs) {
    521521  p_obs newObs = new t_obs();
    522   memcpy(&newObs->_o, &obs->_o, sizeof(t_obsInternal));
     522  memcpy(newObs, obs, sizeof(t_obs));
    523523  _obs.push_back(newObs);
    524524}
     
    534534  while (mIt.hasNext()) {
    535535    p_obs obs = mIt.next();
    536     if (obs->_o.GPSWeek * 7*24*3600 + obs->_o.GPSWeeks < maxTime - 0.05) {
     536    if (obs->GPSWeek * 7*24*3600 + obs->GPSWeeks < maxTime - 0.05) {
    537537      dumpList.push_back(obs);
    538538      mIt.remove();
     
    549549  // -------------
    550550  p_obs fObs = *dumpList.begin();
    551   QDateTime datTim    = dateAndTimeFromGPSweek(fObs->_o.GPSWeek, fObs->_o.GPSWeeks);
    552   QDateTime datTimNom = dateAndTimeFromGPSweek(fObs->_o.GPSWeek,
    553                                                floor(fObs->_o.GPSWeeks+0.5));
     551  QDateTime datTim    = dateAndTimeFromGPSweek(fObs->GPSWeek, fObs->GPSWeeks);
     552  QDateTime datTimNom = dateAndTimeFromGPSweek(fObs->GPSWeek,
     553                                               floor(fObs->GPSWeeks+0.5));
    554554
    555555  // Close the file
     
    566566  }
    567567
    568   double sec = double(datTim.time().second()) + fmod(fObs->_o.GPSWeeks,1.0);
     568  double sec = double(datTim.time().second()) + fmod(fObs->GPSWeeks,1.0);
    569569
    570570  // Epoch header line: RINEX Version 3
     
    586586      iSat++;
    587587      p_obs obs = it.next();
    588       _out << obs->_o.satSys << setw(2) << obs->_o.satNum;
     588      _out << obs->satSys << setw(2) << obs->satNum;
    589589      if (iSat == 12 && it.hasNext()) {
    590590        _out << endl << "                                ";
     
    601601    // Cycle slips detection
    602602    // ---------------------
    603     QString prn = QString("%1%2").arg(obs->_o.satSys)
    604                             .arg(obs->_o.satNum, 2, 10, QChar('0'));
     603    QString prn = QString("%1%2").arg(obs->satSys)
     604                            .arg(obs->satNum, 2, 10, QChar('0'));
    605605
    606606    char lli1 = ' ';
    607607    char lli2 = ' ';
    608608    char lli5 = ' ';
    609     if      ( obs->_o.slip_cnt_L1 >= 0 ) {
     609    if      ( obs->slip_cnt_L1 >= 0 ) {
    610610      if ( _slip_cnt_L1.find(prn)         != _slip_cnt_L1.end() &&
    611            _slip_cnt_L1.find(prn).value() != obs->_o.slip_cnt_L1 ) {
     611           _slip_cnt_L1.find(prn).value() != obs->slip_cnt_L1 ) {
    612612        lli1 = '1';
    613613      }
    614614    }
    615615
    616     if ( obs->_o.slip_cnt_L2 >= 0 ) {
     616    if ( obs->slip_cnt_L2 >= 0 ) {
    617617      if ( _slip_cnt_L2.find(prn)         != _slip_cnt_L2.end() &&
    618            _slip_cnt_L2.find(prn).value() != obs->_o.slip_cnt_L2 ) {
     618           _slip_cnt_L2.find(prn).value() != obs->slip_cnt_L2 ) {
    619619        lli2 = '1';
    620620      }
    621621    }
    622622
    623     if ( obs->_o.slip_cnt_L5 >= 0 ) {
     623    if ( obs->slip_cnt_L5 >= 0 ) {
    624624      if ( _slip_cnt_L5.find(prn)         != _slip_cnt_L5.end() &&
    625            _slip_cnt_L5.find(prn).value() != obs->_o.slip_cnt_L5 ) {
     625           _slip_cnt_L5.find(prn).value() != obs->slip_cnt_L5 ) {
    626626        lli5 = '1';
    627627      }
    628628    }
    629629
    630     _slip_cnt_L1[prn]   = obs->_o.slip_cnt_L1;
    631     _slip_cnt_L2[prn]   = obs->_o.slip_cnt_L2;
    632     _slip_cnt_L5[prn]   = obs->_o.slip_cnt_L5;
     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;
    633633
    634634    // RINEX Version 3
    635635    // ---------------
    636636    if (_rinexVers == 3) {
    637       _out << rinexSatLine(obs->_o, lli1, lli2, lli5);
     637      _out << rinexSatLine(obs, lli1, lli2, lli5);
    638638      _out << endl;
    639639    }
     
    642642    // ---------------
    643643    else {
    644       _out << setw(14) << setprecision(3) << obs->_o.C1 << ' '  << ' '
    645            << setw(14) << setprecision(3) << obs->_o.P1 << ' '  << ' '
     644      _out << setw(14) << setprecision(3) << obs->C1 << ' '  << ' '
     645           << setw(14) << setprecision(3) << obs->P1 << ' '  << ' '
    646646           << setw(14) << setprecision(3) << obs->L1()  << lli1 << ' '
    647647           << setw(14) << setprecision(3) << obs->S1()  << ' '  << ' '
    648            << setw(14) << setprecision(3) << obs->_o.C2 << ' '  << ' ' << endl
    649            << setw(14) << setprecision(3) << obs->_o.P2 << ' '  << ' '
     648           << setw(14) << setprecision(3) << obs->C2 << ' '  << ' ' << endl
     649           << setw(14) << setprecision(3) << obs->P2 << ' '  << ' '
    650650           << setw(14) << setprecision(3) << obs->L2()  << lli2 << ' '
    651651           << setw(16) << setprecision(3) << obs->S2()  << endl;
     
    679679// One Line in RINEX v3 (static)
    680680////////////////////////////////////////////////////////////////////////////
    681 string bncRinex::rinexSatLine(const t_obsInternal& obs,
     681string bncRinex::rinexSatLine(const t_obs* obs,
    682682                              char lli1, char lli2, char lli5) {
    683683  ostringstream str;
    684684  str.setf(ios::showpoint | ios::fixed);
    685685
    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;
     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;
    753753  }
    754754  return str.str();
Note: See TracChangeset for help on using the changeset viewer.