- Timestamp:
- Sep 11, 2014, 2:06:12 PM (10 years ago)
- Location:
- trunk/BNC/src/rinex
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/rinex/rnxobsfile.cpp
r5883 r6119 48 48 using namespace std; 49 49 50 const QString t_rnxObsHeader:: _emptyStr;50 const QString t_rnxObsHeader::defaultSystems = "GRES"; 51 51 52 52 // Constructor … … 162 162 int nTypes; 163 163 *in >> nTypes; 164 _obsTypesV2.clear(); 164 char sys = defaultSystems[0].toAscii(); 165 _obsTypes[sys].clear(); 165 166 for (int ii = 0; ii < nTypes; ii++) { 166 167 if (ii > 0 && ii % 9 == 0) { … … 171 172 QString hlp; 172 173 *in >> hlp; 173 _obsTypesV2.append(hlp); 174 _obsTypes[sys].append(hlp); 175 } 176 for (int ii = 1; ii < defaultSystems.length(); ii++) { 177 char sys = defaultSystems[ii].toAscii(); 178 _obsTypes[sys] = _obsTypes[0]; 174 179 } 175 180 } … … 179 184 int nTypes; 180 185 *in >> sys >> nTypes; 181 _obsTypes V3[sys].clear();186 _obsTypes[sys].clear(); 182 187 for (int ii = 0; ii < nTypes; ii++) { 183 188 if (ii > 0 && ii % 13 == 0) { … … 188 193 QString hlp; 189 194 *in >> hlp; 190 _obsTypes V3[sys].push_back(hlp);195 _obsTypes[sys].push_back(hlp); 191 196 } 192 197 delete in; … … 331 336 } 332 337 338 // Number of Different Systems 339 //////////////////////////////////////////////////////////////////////////// 340 int t_rnxObsHeader::numSys() const { 341 return _obsTypes.size(); 342 } 343 333 344 // Number of Observation Types (satellite-system specific) 334 345 //////////////////////////////////////////////////////////////////////////// 335 346 int t_rnxObsHeader::nTypes(char sys) const { 347 if (_obsTypes.contains(sys)) { 348 return _obsTypes[sys].size(); 349 } 350 else { 351 return 0; 352 } 353 } 354 355 // Observation Type (satellite-system specific) 356 //////////////////////////////////////////////////////////////////////////// 357 QString t_rnxObsHeader::obsType(char sys, int index) const { 358 if (_obsTypes.contains(sys)) { 359 return _obsTypes[sys].at(index); 360 } 361 else { 362 return ""; 363 } 364 } 365 366 // Write Observation Types 367 //////////////////////////////////////////////////////////////////////////// 368 QStringList t_rnxObsHeader::obsTypesStrings() const { 369 370 QStringList strList; 371 336 372 if (_version < 3.0) { 337 return _obsTypesV2.size(); 338 } 339 else { 340 if (_obsTypesV3.contains(sys)) { 341 return _obsTypesV3[sys].size(); 342 } 343 else { 344 return 0; 345 } 346 } 347 } 348 349 // Observation Type (satellite-system specific) 350 //////////////////////////////////////////////////////////////////////////// 351 const QString& t_rnxObsHeader::obsType(char sys, int index) const { 352 if (_version < 3.0) { 353 return _obsTypesV2.at(index); 354 } 355 else { 356 if (_obsTypesV3.contains(sys)) { 357 return _obsTypesV3[sys].at(index); 358 } 359 else { 360 return _emptyStr; 361 } 362 } 363 } 364 365 // Write Observation Types 366 //////////////////////////////////////////////////////////////////////////// 367 QStringList t_rnxObsHeader::obsTypesStrings() const { 368 369 QStringList strList; 370 371 if (_version < 3.0) { 373 char sys = defaultSystems[0].toAscii(); 372 374 QString hlp; 373 QTextStream(&hlp) << QString("%1").arg(_obsTypes V2.size(), 6);374 for (int ii = 0; ii < _obsTypes V2.size(); ii++) {375 QTextStream(&hlp) << QString("%1").arg(_obsTypes V2[ii], 6);376 if ((ii+1) % 9 == 0 || ii == _obsTypes V2.size()-1) {375 QTextStream(&hlp) << QString("%1").arg(_obsTypes[sys].size(), 6); 376 for (int ii = 0; ii < _obsTypes[sys].size(); ii++) { 377 QTextStream(&hlp) << QString("%1").arg(_obsTypes[sys][ii], 6); 378 if ((ii+1) % 9 == 0 || ii == _obsTypes[sys].size()-1) { 377 379 strList.append(hlp.leftJustified(60) + "# / TYPES OF OBSERV\n"); 378 380 hlp = QString().leftJustified(6); … … 381 383 } 382 384 else { 383 QMapIterator<char, QVector<QString> > it(_obsTypes V3);385 QMapIterator<char, QVector<QString> > it(_obsTypes); 384 386 while (it.hasNext()) { 385 387 it.next(); … … 407 409 _stream = 0; 408 410 _flgPowerFail = false; 409 _trafo = trafoNone;410 411 if (_inpOut == input) { 411 412 openRead(fileName); … … 536 537 //////////////////////////////////////////////////////////////////////////// 537 538 t_rnxObsFile::t_rnxEpo* t_rnxObsFile::nextEpoch() { 538 539 539 _currEpo.clear(); 540 541 540 if (version() < 3.0) { 542 541 return nextEpochV2(); … … 589 588 for (int iSat = 0; iSat < numSat; iSat++) { 590 589 line = _stream->readLine(); 591 _currEpo.rnxSat[iSat].satSys = line.toAscii()[0];592 readInt(line, 1, 2, _currEpo.rnxSat[iSat].satNum);593 char sys = line.toAscii()[0];590 t_prn prn; prn.set(line.left(3).toAscii().data()); 591 _currEpo.rnxSat[iSat].prn = prn; 592 char sys = prn.system(); 594 593 for (int iType = 0; iType < _header.nTypes(sys); iType++) { 595 594 int pos = 3 + 16*iType; … … 600 599 readInt(line, pos + 14, 1, lli); 601 600 readInt(line, pos + 15, 1, snr); 602 603 601 if (_flgPowerFail) { 604 602 lli |= 1; 605 603 } 606 607 _currEpo.rnxSat[iSat].obs .push_back(obsValue);608 _currEpo.rnxSat[iSat]. lli.push_back(lli);609 _currEpo.rnxSat[iSat]. snr.push_back(snr);604 QString type = obsType(sys, iType); 605 _currEpo.rnxSat[iSat].obs[type].value = obsValue; 606 _currEpo.rnxSat[iSat].obs[type].lli = lli; 607 _currEpo.rnxSat[iSat].obs[type].snr = snr; 610 608 } 611 609 } … … 672 670 } 673 671 674 _currEpo.rnxSat[iSat].satSys = line.toAscii()[pos]; 675 if (_currEpo.rnxSat[iSat].satSys == ' ') { 676 _currEpo.rnxSat[iSat].satSys = 'G'; 677 } 678 readInt(line, pos + 1, 2, _currEpo.rnxSat[iSat].satNum); 679 672 char sys = line.toAscii()[pos]; 673 int satNum; readInt(line, pos + 1, 2, satNum); 674 _currEpo.rnxSat[iSat].prn.set(sys, satNum); 675 680 676 pos += 3; 681 677 } … … 684 680 // ------------------------ 685 681 for (int iSat = 0; iSat < numSat; iSat++) { 682 char sys = _currEpo.rnxSat[iSat].prn.system(); 686 683 line = _stream->readLine(); 687 684 pos = 0; 688 for (int iType = 0; iType < _header.nTypes( _currEpo.rnxSat[iSat].satSys); iType++) {685 for (int iType = 0; iType < _header.nTypes(sys); iType++) { 689 686 if (iType > 0 && iType % 5 == 0) { 690 687 line = _stream->readLine(); … … 702 699 } 703 700 704 _currEpo.rnxSat[iSat].obs.push_back(obsValue); 705 _currEpo.rnxSat[iSat].lli.push_back(lli); 706 _currEpo.rnxSat[iSat].snr.push_back(snr); 701 QString type = obsType(sys, iType); 702 _currEpo.rnxSat[iSat].obs[type].value = obsValue; 703 _currEpo.rnxSat[iSat].obs[type].lli = lli; 704 _currEpo.rnxSat[iSat].obs[type].snr = snr; 707 705 708 706 pos += 16; … … 720 718 // Set Header Information 721 719 //////////////////////////////////////////////////////////////////////////// 722 void t_rnxObsFile::setHeader(const t_rnxObsHeader& header, double version) { 723 724 if (int(header._version) == int(version)) { 725 _trafo = trafoNone; 726 _header._version = header._version; 727 } 728 else if (version >= 3.0) { 729 _trafo = trafo2to3; 720 void t_rnxObsFile::setHeader(const t_rnxObsHeader& header, double version, 721 const QStringList& useObsTypes) { 722 723 if (version >= 3.0) { 730 724 _header._version = t_rnxObsHeader::defaultRnxObsVersion3; 731 725 } 732 726 else { 733 _trafo = trafo3to2;734 727 _header._version = t_rnxObsHeader::defaultRnxObsVersion2; 735 728 } 736 737 729 _header._interval = header._interval; 738 730 _header._antennaNumber = header._antennaNumber; … … 749 741 _header._receiverType = header._receiverType; 750 742 _header._receiverVersion = header._receiverVersion; 751 743 _header._startTime = header._startTime; 752 744 for (unsigned iPrn = 1; iPrn <= t_prn::MAXPRN_GPS; iPrn++) { 753 745 _header._wlFactorsL1[iPrn] = header._wlFactorsL1[iPrn]; … … 755 747 } 756 748 757 _header._startTime = header._startTime; 758 759 static const string systems = "GRES"; 760 761 _header._obsTypesV2.clear(); 762 _header._obsTypesV3.clear(); 763 764 // Copy Observation Types 765 // ---------------------- 766 if (_trafo == trafoNone) { 767 for (int ii = 0; ii < header._obsTypesV2.size(); ii++) { 768 _header._obsTypesV2.append(header._obsTypesV2[ii]); 769 } 770 QMapIterator<char, QVector<QString> > it(header._obsTypesV3); 771 while (it.hasNext()) { 772 it.next(); 773 char sys = it.key(); 774 const QVector<QString>& typesV3 = it.value(); 775 for (int ii = 0; ii < typesV3.size(); ii++) { 776 _header._obsTypesV3[sys].push_back(typesV3[ii]); 777 } 778 } 779 } 780 781 // Translate Observation Types v2 --> v3 782 // ------------------------------------- 783 else if (_trafo == trafo2to3) { 784 for (int i2 = 0; i2 < header._obsTypesV2.size(); i2++) { 785 const QString& typeV2 = header._obsTypesV2[i2]; 786 for (unsigned iSys = 0; iSys < systems.length(); iSys++) { 787 char sys = systems[iSys]; 788 QString typeV3 = type2to3(sys, typeV2); 789 if (!typeV3.isEmpty()) { 790 _header._obsTypesV3[sys].push_back(typeV3); 791 int i3 = _header._obsTypesV3[sys].size() - 1; 792 _indexMap3to2[sys][i3] = i2; 793 } 794 } 795 } 796 } 797 798 // Translate Observation Types v3 --> v2 799 // ------------------------------------- 800 else if (_trafo == trafo3to2) { 801 for (unsigned iSys = 0; iSys < systems.length(); iSys++) { 802 char sys = systems[iSys]; 803 if (header._obsTypesV3.contains(sys)) { 804 const QVector<QString>& typesV3 = header._obsTypesV3[sys]; 805 for (int i3 = 0; i3 < typesV3.size(); i3++) { 806 const QString& typeV3 = typesV3[i3]; 807 QString typeV2 = type3to2(typeV3); 808 if (!typeV2.isEmpty()) { 809 bool found = false; 810 for (int i2 = 0; i2 < _header._obsTypesV2.size(); i2++) { 811 if (_header._obsTypesV2[i2] == typeV2) { 812 found = true; 813 if (_indexMap2to3[sys].find(i2) == _indexMap2to3[sys].end()) { 814 _indexMap2to3[sys][i2] = i3; 815 } 816 break; 817 } 818 } 819 if (!found) { 820 _header._obsTypesV2.append(typeV2); 821 int i2 = _header._obsTypesV2.size() - 1; 822 _indexMap2to3[sys][i2] = i3; 823 } 824 } 749 // Set observation types 750 // --------------------- 751 _header._obsTypes.clear(); 752 if (useObsTypes.size() == 0) { 753 _header._obsTypes = header._obsTypes; 754 } 755 else { 756 if (_header._version < 3.0) { 757 char sys = t_rnxObsHeader::defaultSystems[0].toAscii(); 758 for (int ii = 0; ii < useObsTypes.size(); ii++) { 759 _header._obsTypes[sys].push_back(useObsTypes[ii]); 760 } 761 for (int ii = 1; ii < t_rnxObsHeader::defaultSystems.length(); ii++) { 762 char sys = t_rnxObsHeader::defaultSystems[ii].toAscii(); 763 _header._obsTypes[sys] = _header._obsTypes[0]; 764 } 765 } 766 else { 767 for (int ii = 0; ii < useObsTypes.size(); ii++) { 768 QStringList hlp = useObsTypes[ii].split(":", QString::SkipEmptyParts); 769 if (hlp.size() == 2 && hlp[0].length() == 1) { 770 char sys = hlp[0][0].toAscii(); 771 QString type = hlp[1]; 772 _header._obsTypes[sys].push_back(type); 825 773 } 826 774 } … … 866 814 *_stream << endl << QString().leftJustified(32); 867 815 } 868 *_stream << rnxSat. satSys << QString("%1").arg(rnxSat.satNum, 2);816 *_stream << rnxSat.prn; 869 817 } 870 818 *_stream << endl; … … 872 820 873 821 const t_rnxSat& rnxSat = epo->rnxSat[iSat]; 874 char sys = rnxSat.satSys; 875 876 for (int iTypeV2 = 0; iTypeV2 < nTypes(sys); iTypeV2++) { 877 878 if (iTypeV2 > 0 && iTypeV2 % 5 == 0) { 822 char sys = rnxSat.prn.system(); 823 824 for (int iType = 0; iType < nTypes(sys); iType++) { 825 if (iType > 0 && iType % 5 == 0) { 879 826 *_stream << endl; 880 827 } 881 882 int iType = -1; 883 if (_trafo == trafoNone) { 884 iType = iTypeV2; 828 QString type = obsType(sys, iType); 829 if (!rnxSat.obs.contains(type)) { 830 *_stream << QString().leftJustified(16); 885 831 } 886 832 else { 887 if (_indexMap2to3[sys].find(iTypeV2) != _indexMap2to3[sys].end()) { 888 iType = _indexMap2to3[sys][iTypeV2]; 889 } 890 } 891 892 if (iType == -1 || rnxSat.obs[iType] == 0.0) { 893 *_stream << QString().leftJustified(16); 894 } 895 else { 896 *_stream << QString("%1").arg(rnxSat.obs[iType], 14, 'f', 3); 897 if (rnxSat.lli[iType] != 0.0) { 898 *_stream << QString("%1").arg(rnxSat.lli[iType],1); 833 const t_rnxObs& rnxObs = rnxSat.obs[type]; 834 *_stream << QString("%1").arg(rnxObs.value, 14, 'f', 3); 835 if (rnxObs.lli != 0.0) { 836 *_stream << QString("%1").arg(rnxObs.lli,1); 899 837 } 900 838 else { 901 839 *_stream << ' '; 902 840 } 903 if (rnx Sat.snr[iType]!= 0.0) {904 *_stream << QString("%1").arg(rnx Sat.snr[iType],1);841 if (rnxObs.snr != 0.0) { 842 *_stream << QString("%1").arg(rnxObs.snr,1); 905 843 } 906 844 else { … … 937 875 for (unsigned iSat = 0; iSat < epo->rnxSat.size(); iSat++) { 938 876 const t_rnxSat& rnxSat = epo->rnxSat[iSat]; 939 char sys = rnxSat.satSys; 940 *_stream << sys 941 << QString("%1").arg(rnxSat.satNum, 2, 10, QChar('0')); 942 943 for (int iTypeV3 = 0; iTypeV3 < nTypes(sys); iTypeV3++) { 944 945 int iType = -1; 946 if (_trafo == trafoNone) { 947 iType = iTypeV3; 877 char sys = rnxSat.prn.system(); 878 879 *_stream << rnxSat.prn; 880 for (int iType = 0; iType < nTypes(sys); iType++) { 881 QString type = obsType(sys, iType); 882 if (!rnxSat.obs.contains(type)) { 883 *_stream << QString().leftJustified(16); 948 884 } 949 885 else { 950 if (_indexMap3to2[sys].find(iTypeV3) != _indexMap3to2[sys].end()) { 951 iType = _indexMap3to2[sys][iTypeV3]; 952 } 953 } 954 955 if (iType == -1 || rnxSat.obs[iType] == 0.0) { 956 *_stream << QString().leftJustified(16); 957 } 958 else { 959 *_stream << QString("%1").arg(rnxSat.obs[iType], 14, 'f', 3); 960 if (rnxSat.lli[iType] != 0.0) { 961 *_stream << QString("%1").arg(rnxSat.lli[iType],1); 886 const t_rnxObs& rnxObs = rnxSat.obs[type]; 887 *_stream << QString("%1").arg(rnxObs.value, 14, 'f', 3); 888 if (rnxObs.lli != 0.0) { 889 *_stream << QString("%1").arg(rnxObs.lli,1); 962 890 } 963 891 else { 964 892 *_stream << ' '; 965 893 } 966 if (rnx Sat.snr[iType]!= 0.0) {967 *_stream << QString("%1").arg(rnx Sat.snr[iType],1);894 if (rnxObs.snr != 0.0) { 895 *_stream << QString("%1").arg(rnxObs.snr,1); 968 896 } 969 897 else { … … 1068 996 1069 997 t_rnxObsHeader oldHeader(_header); 1070 setHeader(header, oldHeader._version );998 setHeader(header, oldHeader._version, QStringList()); 1071 999 1072 1000 // Check Observation Types 1073 1001 // ----------------------- 1074 1002 bool same = true; 1075 if (_header._version < 3.0) { 1076 if (_header._obsTypesV2 != oldHeader._obsTypesV2) { 1003 QMapIterator<char, QVector<QString> > it(_header._obsTypes); 1004 while (it.hasNext()) { 1005 it.next(); 1006 char sys = it.key(); 1007 const QVector<QString>& types = it.value(); 1008 if (!oldHeader._obsTypes.contains(sys) || oldHeader._obsTypes[sys] != types) { 1077 1009 same = false; 1078 } 1079 } 1080 else { 1081 QMapIterator<char, QVector<QString> > it(_header._obsTypesV3); 1082 while (it.hasNext()) { 1083 it.next(); 1084 char sys = it.key(); 1085 const QVector<QString>& typesV3 = it.value(); 1086 if (!oldHeader._obsTypesV3.contains(sys) || 1087 oldHeader._obsTypesV3[sys] != typesV3) { 1088 same = false; 1089 break; 1090 } 1010 break; 1091 1011 } 1092 1012 } … … 1115 1035 sizeof(obs.StatID)); 1116 1036 1117 obs.satSys = rnxSat. satSys;1118 obs.satNum = rnxSat. satNum;1037 obs.satSys = rnxSat.prn.system(); 1038 obs.satNum = rnxSat.prn.number(); 1119 1039 obs.GPSWeek = epo->tt.gpsw(); 1120 1040 obs.GPSWeeks = epo->tt.gpssec(); 1121 1041 1122 1042 for (int iType = 0; iType < rnxObsFile->nTypes(obs.satSys); iType++) { 1123 QString type = rnxObsFile->obsType(obs.satSys,iType).toAscii(); 1124 obs.setMeasdata(type, rnxObsFile->version(), rnxSat.obs[iType]); 1125 if (type.indexOf("L1") == 0) { 1126 obs.snrL1 = rnxSat.snr[iType]; 1127 obs.slipL1 = (rnxSat.lli[iType] & 1); 1128 } 1129 else if (type.indexOf("L2") == 0) { 1130 obs.snrL2 = rnxSat.snr[iType]; 1131 obs.slipL2 = (rnxSat.lli[iType] & 1); 1132 } 1133 else if (type.indexOf("L5") == 0) { 1134 obs.snrL5 = rnxSat.snr[iType]; 1135 obs.slipL5 = (rnxSat.lli[iType] & 1); 1136 } 1137 } 1138 } 1139 1043 QString type = rnxObsFile->obsType(obs.satSys, iType); 1044 if (rnxSat.obs.contains(type)) { 1045 const t_rnxObs& rnxObs = rnxSat.obs[type]; 1046 obs.setMeasdata(type, rnxObsFile->version(), rnxObs.value); 1047 if (type.indexOf("L1") == 0) { 1048 obs.snrL1 = rnxObs.snr; 1049 obs.slipL1 = (rnxObs.lli & 1); 1050 } 1051 else if (type.indexOf("L2") == 0) { 1052 obs.snrL2 = rnxObs.snr; 1053 obs.slipL2 = (rnxObs.lli & 1); 1054 } 1055 else if (type.indexOf("L5") == 0) { 1056 obs.snrL5 = rnxObs.snr; 1057 obs.slipL5 = (rnxObs.lli & 1); 1058 } 1059 } 1060 } 1061 } 1062 1063 // Set Observations from RINEX File 1064 //////////////////////////////////////////////////////////////////////////// 1065 bool t_rnxObsFile::useType(const QStringList& useObsTypes, const QString& type) { 1066 1067 if (useObsTypes.size() == 0) { 1068 return true; 1069 } 1070 for (int ii = 0; ii < useObsTypes.size(); ii++) { 1071 if (type.left(2) == useObsTypes[ii].left(2)) { 1072 return true; 1073 } 1074 } 1075 return false; 1076 } -
trunk/BNC/src/rinex/rnxobsfile.h
r6118 r6119 39 39 40 40 class t_rnxObsHeader { 41 42 friend class t_rnxObsFile; 43 41 44 public: 42 static const double defaultRnxObsVersion2 = 2.11; 43 static const double defaultRnxObsVersion3 = 3.02; 45 static const double defaultRnxObsVersion2 = 2.11; 46 static const double defaultRnxObsVersion3 = 3.02; 47 static const QString defaultSystems; 44 48 45 49 t_rnxObsHeader(); 46 50 ~t_rnxObsHeader(); 47 51 48 t_irc 49 int nTypes(char sys) const;50 const QString& obsType(char sys, int index) const;51 QString List obsTypesStrings() const;52 void write(QTextStream* stream,53 52 t_irc read(QTextStream* stream, int maxLines = 0); 53 int numSys() const; 54 int nTypes(char sys) const; 55 QString obsType(char sys, int index) const; 56 QStringList obsTypesStrings() const; 57 void write(QTextStream* stream, const QMap<QString, QString>* txtMap = 0) const; 54 58 55 static const QString _emptyStr;59 private: 56 60 float _version; 57 61 double _interval; … … 70 74 ColumnVector _antBSG; 71 75 ColumnVector _xyz; 72 QVector<QString> _obsTypesV2; 73 QMap<char, QVector<QString> > _obsTypesV3; 76 QMap<char, QVector<QString> > _obsTypes; 74 77 int _wlFactorsL1[t_prn::MAXPRN_GPS+1]; 75 78 int _wlFactorsL2[t_prn::MAXPRN_GPS+1]; … … 84 87 } 85 88 89 class t_rnxObs { 90 public: 91 double value; 92 int lli; 93 int snr; 94 }; 95 86 96 class t_rnxSat { 87 97 public: 88 char satSys; 89 int satNum; 90 std::vector<double> obs; 91 std::vector<int> lli; 92 std::vector<int> snr; 98 t_prn prn; 99 QMap<QString, t_rnxObs> obs; 93 100 }; 94 101 … … 96 103 public: 97 104 void clear() { 105 tt.reset(); 98 106 rnxSat.clear(); 99 107 } … … 107 115 ~t_rnxObsFile(); 108 116 109 float 110 double 111 int nTypes(char sys) const {return _header.nTypes(sys);}112 const QString& fileName() const {return _fileName;}113 const QString& obsType(char sys, int index) const {return _header.obsType(sys, index);}114 115 const QString& 116 const QString& 117 const QString& 117 float version() const {return _header._version;} 118 double interval() const {return _header._interval;} 119 int numSys() const {return _header.numSys();} 120 int nTypes(char sys) const {return _header.nTypes(sys);} 121 const QString& fileName() const {return _fileName;} 122 QString obsType(char sys, int index) const {return _header.obsType(sys, index);} 123 const QString& antennaName() const {return _header._antennaName;} 124 const QString& markerName() const {return _header._markerName;} 125 const QString& receiverType() const {return _header._receiverType;} 118 126 119 127 void setInterval(double interval) {_header._interval = interval;} … … 154 162 155 163 private: 156 enum e_trafo {trafoNone, trafo2to2, trafo3to3, trafo2to3, trafo3to2};157 158 164 t_rnxObsFile() {}; 159 165 void openRead(const QString& fileName); … … 179 185 t_rnxEpo _currEpo; 180 186 bool _flgPowerFail; 181 e_trafo _trafo;182 187 }; 183 188
Note:
See TracChangeset
for help on using the changeset viewer.