Changeset 2711 in ntrip for trunk/BNC/bncrinex.cpp
- Timestamp:
- Nov 18, 2010, 1:38:51 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncrinex.cpp
r2710 r2711 107 107 //////////////////////////////////////////////////////////////////////////// 108 108 bncRinex::~bncRinex() { 109 QListIterator<t_obs*> it(_obs);110 while (it.hasNext()) {111 delete it.next();112 }113 109 bncSettings settings; 114 110 if ((_rinexVers == 3) && ( Qt::CheckState(settings.value("rnxAppend").toInt()) != Qt::Checked) ) { … … 518 514 // Stores Observation into Internal Array 519 515 //////////////////////////////////////////////////////////////////////////// 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); 516 void bncRinex::deepCopy(t_obs obs) { 517 _obs.push_back(obs); 524 518 } 525 519 … … 530 524 // Select observations older than maxTime 531 525 // -------------------------------------- 532 QList<t_obs *> dumpList;533 QMutableListIterator<t_obs *> mIt(_obs);526 QList<t_obs> dumpList; 527 QMutableListIterator<t_obs> mIt(_obs); 534 528 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) { 537 531 dumpList.push_back(obs); 538 532 mIt.remove(); … … 548 542 // Time of Epoch 549 543 // ------------- 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)); 554 548 555 549 // Close the file … … 566 560 } 567 561 568 double sec = double(datTim.time().second()) + fmod(fObs ->GPSWeeks,1.0);562 double sec = double(datTim.time().second()) + fmod(fObs.GPSWeeks,1.0); 569 563 570 564 // Epoch header line: RINEX Version 3 … … 582 576 << " " << 0 << setw(3) << dumpList.size(); 583 577 584 QListIterator<t_obs *> it(dumpList); int iSat = 0;578 QListIterator<t_obs> it(dumpList); int iSat = 0; 585 579 while (it.hasNext()) { 586 580 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; 589 583 if (iSat == 12 && it.hasNext()) { 590 584 _out << endl << " "; … … 595 589 } 596 590 597 QListIterator<t_obs *> it(dumpList);591 QListIterator<t_obs> it(dumpList); 598 592 while (it.hasNext()) { 599 t_obs*obs = it.next();593 const t_obs& obs = it.next(); 600 594 601 595 // Cycle slips detection 602 596 // --------------------- 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')); 605 599 606 600 char lli1 = ' '; 607 601 char lli2 = ' '; 608 602 char lli5 = ' '; 609 if ( obs ->slip_cnt_L1 >= 0 ) {603 if ( obs.slip_cnt_L1 >= 0 ) { 610 604 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 ) { 612 606 lli1 = '1'; 613 607 } 614 608 } 615 609 616 if ( obs ->slip_cnt_L2 >= 0 ) {610 if ( obs.slip_cnt_L2 >= 0 ) { 617 611 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 ) { 619 613 lli2 = '1'; 620 614 } 621 615 } 622 616 623 if ( obs ->slip_cnt_L5 >= 0 ) {617 if ( obs.slip_cnt_L5 >= 0 ) { 624 618 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 ) { 626 620 lli5 = '1'; 627 621 } 628 622 } 629 623 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; 633 627 634 628 // RINEX Version 3 … … 642 636 // --------------- 643 637 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 } 655 647 } 656 648 … … 679 671 // One Line in RINEX v3 (static) 680 672 //////////////////////////////////////////////////////////////////////////// 681 string bncRinex::rinexSatLine(const t_obs *obs,673 string bncRinex::rinexSatLine(const t_obs& obs, 682 674 char lli1, char lli2, char lli5) { 683 675 ostringstream str; 684 676 str.setf(ios::showpoint | ios::fixed); 685 677 686 if (obs ->satSys == 'G') { // GPS687 str << obs ->satSys688 << 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') { // Glonass711 str << obs ->satSys712 << 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') { // SBAS731 str << obs ->satSys732 << 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') { // Galileo743 str << obs ->satSys744 << 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; 753 745 } 754 746 return str.str();
Note:
See TracChangeset
for help on using the changeset viewer.