Changeset 11000 in ntrip
- Timestamp:
- Aug 31, 2026, 5:27:46 PM (2 weeks ago)
- Location:
- trunk/BNC/src
- Files:
-
- 4 edited
-
RTCM3/RTCM3Decoder.cpp (modified) (1 diff)
-
RTCM3/RTCM3coDecoder.cpp (modified) (2 diffs)
-
RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp (modified) (5 diffs)
-
satObs.cpp (modified) (36 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
r10994 r11000 2263 2263 if ((id >= 1057 && id <= 1068) || 2264 2264 (id >= 1240 && id <= 1270) || 2265 (id > 0 && id <= 100) || 2265 2266 (id == 4076)) { 2266 2267 if (!_coDecoders.contains(_staID.toLatin1())) { -
trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
r10999 r11000 505 505 satPhaseBias._ssrFormat = (_type == RTCMssr) ? ssrRtcmOld : 506 506 (_type == RTCMnewssr) ? ssrRtcmNew : ssrUnknown; 507 satPhaseBias._dispBiasConsistInd = _phaseBias.DispersiveBiasConsistencyIndicator; 508 satPhaseBias._MelbWuebConsistInd = _phaseBias.MWConsistencyIndicator; 507 if (satPhaseBias._ssrFormat == e_ssrFormat::ssrRtcmNew) { 508 satPhaseBias._satYawInfoInd = _phaseBias.SatelliteYawInformationIndicator; 509 satPhaseBias._extPBPhaseInd = _phaseBias.ExtendedPhaseBiasPropertyID; 510 } 511 else { 512 satPhaseBias._dispBiasConsistInd = _phaseBias.DispersiveBiasConsistencyIndicator; 513 satPhaseBias._MelbWuebConsistInd = _phaseBias.MWConsistencyIndicator; 514 } 509 515 satPhaseBias._yaw = _phaseBias.Sat[ii].YawAngle; 510 516 satPhaseBias._yawRate = _phaseBias.Sat[ii].YawRate; … … 513 519 t_frqPhaseBias frqPhaseBias; 514 520 frqPhaseBias._rnxType2ch.assign(_ssrCorr->codeTypeToRnxType(sys, biasEntry.Type)); 515 frqPhaseBias._value = biasEntry.Bias; 516 frqPhaseBias._fixIndicator = biasEntry.IntegerIndicator; 517 frqPhaseBias._fixWideLaneIndicator = biasEntry.WidelaneGroupIndicator; 518 frqPhaseBias._jumpCounter = biasEntry.DiscontinuityCounter; 521 frqPhaseBias._value = biasEntry.Bias; 522 frqPhaseBias._fixIndicator = biasEntry.IntegerIndicator; 523 if (satPhaseBias._ssrFormat == e_ssrFormat::ssrRtcmNew) { 524 if (satPhaseBias._extPBPhaseInd) { 525 frqPhaseBias._fixWideLaneIndicator = biasEntry.WidelaneGroupIndicator; 526 } 527 } 528 else { 529 frqPhaseBias._fixWideLaneIndicator = biasEntry.WidelaneGroupIndicator; 530 } 531 frqPhaseBias._jumpCounter = biasEntry.DiscontinuityCounter; 519 532 if (!frqPhaseBias._rnxType2ch.empty()) { 520 533 satPhaseBias._bias.push_back(frqPhaseBias); -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp
r10998 r11000 380 380 E_GPS_SATELLITE_ID(b->Sat[i].ID) 381 381 E_NO_OF_BIASES(b->Sat[i].NumberOfPhaseBiases) 382 E_YAW_ANGLE(b->Sat[i].YawAngle) 383 E_YAW_RATE(b->Sat[i].YawRate) 382 if (b->SatelliteYawInformationIndicator) { 383 E_YAW_ANGLE(b->Sat[i].YawAngle) 384 E_YAW_RATE(b->Sat[i].YawRate) 385 } 384 386 for (j = 0; j < b->Sat[i].NumberOfPhaseBiases; ++j) { 385 387 E_GNSS_SIGNAL_IDENTIFIER(b->Sat[i].Biases[j].Type) … … 605 607 pb->Sat[pos].ID = id; 606 608 D_NO_OF_BIASES(pb->Sat[pos].NumberOfPhaseBiases) 607 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 608 D_YAW_RATE(pb->Sat[pos].YawRate) 609 if (pb->SatelliteYawInformationIndicator) { 610 D_YAW_ANGLE(pb->Sat[pos].YawAngle) 611 D_YAW_RATE(pb->Sat[pos].YawRate) 612 } 609 613 #ifdef BNC_DEBUG_SSR 610 614 fprintf(stderr, "id %2d #%d y %10.6f yr %10.6f ", … … 619 623 D_PHASE_BIAS_CORRECTION(pb->Sat[pos].Biases[j].Bias) 620 624 #ifdef BNC_DEBUG_SSR 621 fprintf(stderr, "t%02d int %d disc %d b %8.4f ", 625 fprintf(stderr, "t %02d int %02d disc %d b %8.4f ", 622 626 pb->Sat[pos].Biases[j].Type, 623 627 pb->Sat[pos].Biases[j].IntegerIndicator, … … 677 681 D_WIDE_LANE_INDICATOR(pb->Sat[pos].Biases[j].WidelaneGroupIndicator) 678 682 #ifdef BNC_DEBUG_SSR 679 fprintf(stderr, "t %02d int %d /*wl %d*/ disc %d b %8.4f",683 fprintf(stderr, "t %02d wl %d ", 680 684 pb->Sat[pos].Biases[j].Type, 681 pb->Sat[pos].Biases[j].IntegerIndicator, 682 pb->Sat[pos].Biases[j].WidelaneGroupIndicator, 683 pb->Sat[pos].Biases[j].DiscontinuityCounter, 684 pb->Sat[pos].Biases[j].Bias); 685 pb->Sat[pos].Biases[j].WidelaneGroupIndicator); 685 686 #endif 686 687 } … … 1038 1039 D_CODE_BIAS(b->Sat[pos].Biases[j].Bias) 1039 1040 #ifdef BNC_DEBUG_SSR 1040 fprintf(stderr, "t%02d b %8.2f ", 1041 fprintf(stderr, "t %02d b %8.2f ", 1041 1042 b->Sat[pos].Biases[j].Type, b->Sat[pos].Biases[j].Bias); 1042 1043 #endif -
trunk/BNC/src/satObs.cpp
r10999 r11000 10 10 // Constructor 11 11 //////////////////////////////////////////////////////////////////////////// 12 t_clkCorr::t_clkCorr() { 13 _updateInt = 0; 14 _iod = 0; 15 _dClk = 0.0; 16 _dotDClk = 0.0; 12 t_clkCorr::t_clkCorr() 13 { 14 _updateInt = 0; 15 _iod = 0; 16 _dClk = 0.0; 17 _dotDClk = 0.0; 17 18 _dotDotDClk = 0.0; 18 19 } … … 20 21 // 21 22 //////////////////////////////////////////////////////////////////////////// 22 void t_clkCorr::writeEpoch(ostream* out, const QList<t_clkCorr>& corrList) { 23 void t_clkCorr::writeEpoch(ostream* out, const QList<t_clkCorr>& corrList) 24 { 23 25 if (!out || corrList.size() == 0) { 24 26 return; … … 31 33 if (!epoTime.valid()) { 32 34 epoTime = corr._time; 33 *out << "> CLOCK " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 34 <<corr._updateInt <<" "35 << corrList.size() << ' ' << corr._staID << endl;35 *out << "> CLOCK " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 36 << corr._updateInt << " " 37 << corrList.size() << ' ' << corr._staID << endl; 36 38 } 37 39 *out << corr._prn.toString() << ' ' << setw(11) << corr._iod << ' ' 38 << setw(10) << setprecision(4) << corr._dClk* t_CST::c<< ' '// m39 << setw(10) << setprecision(4) << corr._dotDClk* t_CST::c * 1.e3 << ' ' // m/s => mm/s40 << setw(10) << setprecision(4) << corr._dotDotDClk * t_CST::c * 1.e3 << endl;// m/s² => mm/s²40 << setw(10) << setprecision(4) << corr._dClk * t_CST::c << ' ' // m 41 << setw(10) << setprecision(4) << corr._dotDClk * t_CST::c * 1.e3 << ' ' // m/s => mm/s 42 << setw(10) << setprecision(4) << corr._dotDotDClk * t_CST::c * 1.e3 << endl; // m/s² => mm/s² 41 43 } 42 44 out->flush(); … … 45 47 // 46 48 //////////////////////////////////////////////////////////////////////////// 47 void t_clkCorr::readEpoch(const string& epoLine, istream& inStream, QList<t_clkCorr>& corrList) { 48 bncTime epoTime; 49 void t_clkCorr::readEpoch(const string& epoLine, istream& inStream, QList<t_clkCorr>& corrList) 50 { 51 bncTime epoTime; 49 52 unsigned int updateInt; 50 int numCorr;51 string staID;53 int numCorr; 54 string staID; 52 55 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numCorr, staID) != t_corrSSR::clkCorr) { 53 56 return; … … 55 58 for (int ii = 0; ii < numCorr; ii++) { 56 59 t_clkCorr corr; 57 corr._time = epoTime;60 corr._time = epoTime; 58 61 corr._updateInt = updateInt; 59 corr._staID = staID;62 corr._staID = staID; 60 63 61 64 string line; … … 66 69 67 70 char sys = corr._prn.system(); 68 int num = corr._prn.number();71 int num = corr._prn.number(); 69 72 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 70 73 corr._prn.setFlag(flag); 71 74 72 corr._dClk /= (t_CST::c);73 corr._dotDClk /= (t_CST::c * 1.e3);75 corr._dClk /= (t_CST::c); 76 corr._dotDClk /= (t_CST::c * 1.e3); 74 77 corr._dotDotDClk /= (t_CST::c * 1.e3); 75 78 … … 80 83 // Constructor 81 84 //////////////////////////////////////////////////////////////////////////// 82 t_orbCorr::t_orbCorr() { 85 t_orbCorr::t_orbCorr() 86 { 83 87 _updateInt = 0; 84 _iod = 0; 85 _system = 'R'; 86 _xr.ReSize(3); _xr = 0.0; 87 _dotXr.ReSize(3); _dotXr = 0.0; 88 _iod = 0; 89 _system = 'R'; 90 _xr.ReSize(3); 91 _xr = 0.0; 92 _dotXr.ReSize(3); 93 _dotXr = 0.0; 88 94 _ssrFormat = ssrUnknown; 89 95 } … … 91 97 // 92 98 //////////////////////////////////////////////////////////////////////////// 93 void t_orbCorr::writeEpoch(ostream* out, const QList<t_orbCorr>& corrList) { 99 void t_orbCorr::writeEpoch(ostream* out, const QList<t_orbCorr>& corrList) 100 { 94 101 if (!out || corrList.size() == 0) { 95 102 return; … … 102 109 if (!epoTime.valid()) { 103 110 epoTime = corr._time; 104 *out << "> ORBIT " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 105 << corr._updateInt <<" "106 << corrList.size() << ' ' << corr._staID << endl;111 *out << "> ORBIT " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 112 << corr._updateInt << " " 113 << corrList.size() << ' ' << corr._staID << endl; 107 114 *out << " " << static_cast<int>(corr._ssrFormat) << endl; 108 115 } 109 116 *out << corr._prn.toString() << ' ' << setw(11) << corr._iod << ' ' 110 << setw(10) << setprecision(4) << corr._xr[0]<< ' '111 << setw(10) << setprecision(4) << corr._xr[1]<< ' '112 << setw(10) << setprecision(4) << corr._xr[2]<< " "113 << setw(10) << setprecision(4) << corr._dotXr[0] * 1.e3 << ' ' // m/s => mm/s114 << setw(10) << setprecision(4) << corr._dotXr[1] * 1.e3 << ' ' // m/s => mm/s115 << setw(10) << setprecision(4) << corr._dotXr[2] * 1.e3 << endl; // m/s => mm/s117 << setw(10) << setprecision(4) << corr._xr[0] << ' ' 118 << setw(10) << setprecision(4) << corr._xr[1] << ' ' 119 << setw(10) << setprecision(4) << corr._xr[2] << " " 120 << setw(10) << setprecision(4) << corr._dotXr[0] * 1.e3 << ' ' // m/s => mm/s 121 << setw(10) << setprecision(4) << corr._dotXr[1] * 1.e3 << ' ' // m/s => mm/s 122 << setw(10) << setprecision(4) << corr._dotXr[2] * 1.e3 << endl; // m/s => mm/s 116 123 } 117 124 out->flush(); … … 120 127 // 121 128 //////////////////////////////////////////////////////////////////////////// 122 void t_orbCorr::readEpoch(const string& epoLine, istream& inStream, QList<t_orbCorr>& corrList) { 123 bncTime epoTime; 129 void t_orbCorr::readEpoch(const string& epoLine, istream& inStream, QList<t_orbCorr>& corrList) 130 { 131 bncTime epoTime; 124 132 unsigned int updateInt; 125 int numCorr;126 string staID;133 int numCorr; 134 string staID; 127 135 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numCorr, staID) != t_corrSSR::orbCorr) { 128 136 return; … … 142 150 for (int ii = 0; ii < numCorr; ii++) { 143 151 t_orbCorr corr; 144 corr._time = epoTime;152 corr._time = epoTime; 145 153 corr._updateInt = updateInt; 146 corr._staID = staID;154 corr._staID = staID; 147 155 corr._ssrFormat = ssrFormat; 148 156 … … 151 159 istringstream in(line.c_str()); 152 160 153 in >> corr._prn >> corr._iod 154 >> corr._xr[0] >> corr._xr[1] >> corr._xr[2] 155 >> corr._dotXr[0] >> corr._dotXr[1] >> corr._dotXr[2]; 161 in >> corr._prn >> corr._iod >> corr._xr[0] >> corr._xr[1] >> corr._xr[2] >> corr._dotXr[0] >> corr._dotXr[1] >> corr._dotXr[2]; 156 162 157 163 char sys = corr._prn.system(); 158 int num = corr._prn.number();164 int num = corr._prn.number(); 159 165 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 160 166 corr._prn.setFlag(flag); … … 170 176 // Constructor 171 177 //////////////////////////////////////////////////////////////////////////// 172 t_URA::t_URA() { 173 _updateInt = 0; 174 _iod = 0; 175 _ura = 0.0; 176 } 177 178 // 179 //////////////////////////////////////////////////////////////////////////// 180 void t_URA::writeEpoch(ostream* out, const QList<t_URA>& corrList) { 178 t_URA::t_URA() 179 { 180 _updateInt = 0; 181 _iod = 0; 182 _ura = 0.0; 183 } 184 185 // 186 //////////////////////////////////////////////////////////////////////////// 187 void t_URA::writeEpoch(ostream* out, const QList<t_URA>& corrList) 188 { 181 189 if (!out || corrList.size() == 0) { 182 190 return; … … 189 197 if (!epoTime.valid()) { 190 198 epoTime = corr._time; 191 *out << "> URA " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 192 <<corr._updateInt <<" "193 << corrList.size() << ' ' << corr._staID << endl;199 *out << "> URA " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 200 << corr._updateInt << " " 201 << corrList.size() << ' ' << corr._staID << endl; 194 202 } 195 203 *out << corr._prn.toString() << ' ' << setw(11) << corr._iod << ' ' 196 << setw(10) << setprecision(4) << corr._ura << endl;204 << setw(10) << setprecision(4) << corr._ura << endl; 197 205 } 198 206 out->flush(); … … 201 209 // 202 210 //////////////////////////////////////////////////////////////////////////// 203 void t_URA::readEpoch(const string& epoLine, istream& inStream, QList<t_URA>& corrList) { 204 bncTime epoTime; 211 void t_URA::readEpoch(const string& epoLine, istream& inStream, QList<t_URA>& corrList) 212 { 213 bncTime epoTime; 205 214 unsigned int updateInt; 206 int numCorr;207 string staID;215 int numCorr; 216 string staID; 208 217 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numCorr, staID) != t_corrSSR::URA) { 209 218 return; … … 211 220 for (int ii = 0; ii < numCorr; ii++) { 212 221 t_URA corr; 213 corr._time = epoTime;222 corr._time = epoTime; 214 223 corr._updateInt = updateInt; 215 corr._staID = staID;224 corr._staID = staID; 216 225 217 226 string line; … … 222 231 223 232 char sys = corr._prn.system(); 224 int num = corr._prn.number();233 int num = corr._prn.number(); 225 234 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 226 235 corr._prn.setFlag(flag); … … 232 241 // 233 242 //////////////////////////////////////////////////////////////////////////// 234 void t_satCodeBias::writeEpoch(ostream* out, const QList<t_satCodeBias>& biasList) { 243 void t_satCodeBias::writeEpoch(ostream* out, const QList<t_satCodeBias>& biasList) 244 { 235 245 if (!out || biasList.size() == 0) { 236 246 return; … … 243 253 if (!epoTime.valid()) { 244 254 epoTime = satCodeBias._time; 245 *out << "> CODE_BIAS " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 246 << satCodeBias._updateInt <<" "247 << biasList.size() << ' ' << satCodeBias._staID << endl;255 *out << "> CODE_BIAS " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 256 << satCodeBias._updateInt << " " 257 << biasList.size() << ' ' << satCodeBias._staID << endl; 248 258 } 249 259 *out << satCodeBias._prn.toString() << " " << setw(2) << satCodeBias._bias.size(); … … 251 261 const t_frqCodeBias& frqCodeBias = satCodeBias._bias[ii]; 252 262 *out << " " << frqCodeBias._rnxType2ch << ' ' 253 << setw(10) << setprecision(4) << frqCodeBias._value;263 << setw(10) << setprecision(4) << frqCodeBias._value; 254 264 } 255 265 *out << endl; … … 260 270 // 261 271 //////////////////////////////////////////////////////////////////////////// 262 void t_satCodeBias::readEpoch(const string& epoLine, istream& inStream, QList<t_satCodeBias>& biasList) { 263 bncTime epoTime; 272 void t_satCodeBias::readEpoch(const string& epoLine, istream& inStream, QList<t_satCodeBias>& biasList) 273 { 274 bncTime epoTime; 264 275 unsigned int updateInt; 265 int numSat;266 string staID;276 int numSat; 277 string staID; 267 278 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numSat, staID) != t_corrSSR::codeBias) { 268 279 return; … … 270 281 for (int ii = 0; ii < numSat; ii++) { 271 282 t_satCodeBias satCodeBias; 272 satCodeBias._time = epoTime;283 satCodeBias._time = epoTime; 273 284 satCodeBias._updateInt = updateInt; 274 satCodeBias._staID = staID;285 satCodeBias._staID = staID; 275 286 276 287 string line; … … 282 293 283 294 char sys = satCodeBias._prn.system(); 284 int num = satCodeBias._prn.number();295 int num = satCodeBias._prn.number(); 285 296 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 286 297 satCodeBias._prn.setFlag(flag); … … 300 311 // 301 312 //////////////////////////////////////////////////////////////////////////// 302 void t_satPhaseBias::writeEpoch(ostream* out, const QList<t_satPhaseBias>& biasList) { 313 void t_satPhaseBias::writeEpoch(ostream* out, const QList<t_satPhaseBias>& biasList) 314 { 303 315 if (!out || biasList.size() == 0) { 304 316 return; … … 311 323 if (!epoTime.valid()) { 312 324 epoTime = satPhaseBias._time; 313 *out << "> PHASE_BIAS " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 314 << satPhaseBias._updateInt <<" "315 << biasList.size() << ' ' << satPhaseBias._staID <<endl;325 *out << "> PHASE_BIAS " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 326 << satPhaseBias._updateInt << " " 327 << biasList.size() << ' ' << satPhaseBias._staID << endl; 316 328 317 329 if (satPhaseBias._ssrFormat == e_ssrFormat::ssrRtcmNew) { 318 330 *out << " " << static_cast<int>(satPhaseBias._ssrFormat) << " " 319 << satPhaseBias._satYawInfoInd << " " 320 << satPhaseBias._extPBPhaseInd << endl; 321 } else { 322 *out << " " << static_cast<int>(satPhaseBias._ssrFormat) << " " 323 << satPhaseBias._dispBiasConsistInd << " " 324 << satPhaseBias._MelbWuebConsistInd << endl; 325 } 326 } 327 *out << satPhaseBias._prn.toString() << ' ' 328 << setw(12) << setprecision(8) << satPhaseBias._yaw * 180.0 / M_PI << ' ' 329 << setw(12) << setprecision(8) << satPhaseBias._yawRate * 180.0 / M_PI<< " " 330 << setw(2) << satPhaseBias._bias.size(); 331 for (unsigned ii = 0; ii < satPhaseBias._bias.size(); ii++) { 332 const t_frqPhaseBias& frqPhaseBias = satPhaseBias._bias[ii]; 333 *out << " " << frqPhaseBias._rnxType2ch << ' ' 334 << setw(10) << setprecision(4) << frqPhaseBias._value << ' ' 335 << setw(3) << frqPhaseBias._fixIndicator << ' ' 336 << setw(3) << frqPhaseBias._fixWideLaneIndicator << ' ' 337 << setw(3) << frqPhaseBias._jumpCounter; 338 } 339 *out << endl; 331 << satPhaseBias._satYawInfoInd << " " 332 << satPhaseBias._extPBPhaseInd << endl; 333 } 334 else { 335 *out << " " << static_cast<int>(satPhaseBias._ssrFormat) << " " 336 << satPhaseBias._dispBiasConsistInd << " " 337 << satPhaseBias._MelbWuebConsistInd << endl; 338 } 339 } 340 if (satPhaseBias._ssrFormat == e_ssrFormat::ssrRtcmNew) { 341 *out << satPhaseBias._prn.toString() << ' ' 342 << setw(12) << setprecision(8) << satPhaseBias._yaw * 180.0 / M_PI << ' ' 343 << setw(12) << setprecision(8) << satPhaseBias._yawRate * 180.0 / M_PI << " " 344 << setw(2) << satPhaseBias._bias.size(); 345 for (unsigned ii = 0; ii < satPhaseBias._bias.size(); ii++) { 346 const t_frqPhaseBias& frqPhaseBias = satPhaseBias._bias[ii]; 347 *out << " " << frqPhaseBias._rnxType2ch << ' ' 348 << setw(10) << setprecision(4) << frqPhaseBias._value << ' ' 349 << setw(3) << frqPhaseBias._fixIndicator << ' ' 350 << setw(3) << frqPhaseBias._fixWideLaneIndicator << ' ' 351 << setw(3) << frqPhaseBias._jumpCounter; 352 } 353 *out << endl; 354 } 355 else { 356 *out << satPhaseBias._prn.toString() << ' ' 357 << setw(12) << setprecision(8) << satPhaseBias._yaw * 180.0 / M_PI << ' ' 358 << setw(12) << setprecision(8) << satPhaseBias._yawRate * 180.0 / M_PI << " " 359 << setw(2) << satPhaseBias._bias.size(); 360 for (unsigned ii = 0; ii < satPhaseBias._bias.size(); ii++) { 361 const t_frqPhaseBias& frqPhaseBias = satPhaseBias._bias[ii]; 362 *out << " " << frqPhaseBias._rnxType2ch << ' ' 363 << setw(10) << setprecision(4) << frqPhaseBias._value << ' ' 364 << setw(3) << frqPhaseBias._fixIndicator << ' ' 365 << setw(3) << frqPhaseBias._fixWideLaneIndicator << ' ' 366 << setw(3) << frqPhaseBias._jumpCounter; 367 } 368 *out << endl; 369 } 340 370 } 341 371 out->flush(); … … 344 374 // 345 375 //////////////////////////////////////////////////////////////////////////// 346 void t_satPhaseBias::readEpoch(const string& epoLine, istream& inStream, QList<t_satPhaseBias>& biasList) { 347 bncTime epoTime; 376 void t_satPhaseBias::readEpoch(const string& epoLine, istream& inStream, QList<t_satPhaseBias>& biasList) 377 { 378 bncTime epoTime; 348 379 unsigned int updateInt; 349 int numSat;350 string staID;380 int numSat; 381 string staID; 351 382 unsigned int metadata1; 352 383 unsigned int metadata2; 353 e_ssrFormat ssrFormat = ssrUnknown;384 e_ssrFormat ssrFormat = ssrUnknown; 354 385 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numSat, staID) != t_corrSSR::phaseBias) { 355 386 return; … … 357 388 for (int ii = 0; ii <= numSat; ii++) { 358 389 t_satPhaseBias satPhaseBias; 359 satPhaseBias._time = epoTime;390 satPhaseBias._time = epoTime; 360 391 satPhaseBias._updateInt = updateInt; 361 satPhaseBias._staID = staID;392 satPhaseBias._staID = staID; 362 393 363 394 string line; … … 372 403 } 373 404 satPhaseBias._ssrFormat = ssrFormat; 374 switch(ssrFormat) { 375 case e_ssrFormat::ssrRtcmNew:376 satPhaseBias._dispBiasConsistInd = metadata1;377 satPhaseBias._MelbWuebConsistInd = metadata2;378 break;379 case e_ssrFormat::ssrRtcmOld:380 case e_ssrFormat::ssrUnknown:381 satPhaseBias._satYawInfoInd = metadata1;382 satPhaseBias._extPBPhaseInd = metadata2;383 break;405 switch (ssrFormat) { 406 case e_ssrFormat::ssrRtcmNew: 407 satPhaseBias._dispBiasConsistInd = metadata1; 408 satPhaseBias._MelbWuebConsistInd = metadata2; 409 break; 410 case e_ssrFormat::ssrRtcmOld: 411 case e_ssrFormat::ssrUnknown: 412 satPhaseBias._satYawInfoInd = metadata1; 413 satPhaseBias._extPBPhaseInd = metadata2; 414 break; 384 415 } 385 416 int numBias; 386 417 double yawDeg, yawDegRate; 387 in >> satPhaseBias._prn >> yawDeg >> yawDegRate>> numBias;418 in >> satPhaseBias._prn >> yawDeg >> yawDegRate >> numBias; 388 419 satPhaseBias._yaw = yawDeg * M_PI / 180.0; 389 420 satPhaseBias._yawRate = yawDegRate * M_PI / 180.0; 390 421 391 422 char sys = satPhaseBias._prn.system(); 392 int num = satPhaseBias._prn.number();423 int num = satPhaseBias._prn.number(); 393 424 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 394 425 satPhaseBias._prn.setFlag(flag); … … 396 427 while (in.good()) { 397 428 t_frqPhaseBias frqPhaseBias; 398 in >> frqPhaseBias._rnxType2ch >> frqPhaseBias._value 399 >> frqPhaseBias._fixIndicator >> frqPhaseBias._fixWideLaneIndicator 400 >> frqPhaseBias._jumpCounter; 429 in >> frqPhaseBias._rnxType2ch >> frqPhaseBias._value >> frqPhaseBias._fixIndicator >> frqPhaseBias._fixWideLaneIndicator >> frqPhaseBias._jumpCounter; 401 430 if (!frqPhaseBias._rnxType2ch.empty()) { 402 431 satPhaseBias._bias.push_back(frqPhaseBias); … … 410 439 // 411 440 //////////////////////////////////////////////////////////////////////////// 412 void t_vTec::write(ostream* out, const t_vTec& vTec) { 441 void t_vTec::write(ostream* out, const t_vTec& vTec) 442 { 413 443 if (!out || vTec._layers.size() == 0) { 414 444 return; … … 416 446 out->setf(ios::fixed); 417 447 bncTime epoTime = vTec._time; 418 *out << "> VTEC " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 419 << vTec._updateInt <<" "420 << vTec._layers.size() << ' ' << vTec._staID << endl;448 *out << "> VTEC " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 449 << vTec._updateInt << " " 450 << vTec._layers.size() << ' ' << vTec._staID << endl; 421 451 for (unsigned ii = 0; ii < vTec._layers.size(); ii++) { 422 452 const t_vTecLayer& layer = vTec._layers[ii]; 423 *out << setw(2) << ii+1 << ' '424 << setw(2)<< layer._C.Nrows()-1 << ' '425 << setw(2)<< layer._C.Ncols()-1 << ' '426 << setw(10) << setprecision(1) << layer._height << endl427 << setw(10) << setprecision(4) << layer._C428 << setw(10) << setprecision(4) << layer._S;453 *out << setw(2) << ii + 1 << ' ' 454 << setw(2) << layer._C.Nrows() - 1 << ' ' 455 << setw(2) << layer._C.Ncols() - 1 << ' ' 456 << setw(10) << setprecision(1) << layer._height << endl 457 << setw(10) << setprecision(4) << layer._C 458 << setw(10) << setprecision(4) << layer._S; 429 459 } 430 460 out->flush(); … … 433 463 // 434 464 //////////////////////////////////////////////////////////////////////////// 435 void t_vTec::read(const string& epoLine, istream& inStream, t_vTec& vTec) { 436 bncTime epoTime; 465 void t_vTec::read(const string& epoLine, istream& inStream, t_vTec& vTec) 466 { 467 bncTime epoTime; 437 468 unsigned int updateInt; 438 int numLayers;439 string staID;469 int numLayers; 470 string staID; 440 471 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numLayers, staID) != t_corrSSR::vTec) { 441 472 return; … … 444 475 return; 445 476 } 446 vTec._time = epoTime;477 vTec._time = epoTime; 447 478 vTec._updateInt = updateInt; 448 vTec._staID = staID;479 vTec._staID = staID; 449 480 for (int ii = 0; ii < numLayers; ii++) { 450 481 t_vTecLayer layer; … … 457 488 in >> dummy >> maxDeg >> maxOrd >> layer._height; 458 489 459 layer._C.ReSize(maxDeg +1, maxOrd+1);460 layer._S.ReSize(maxDeg +1, maxOrd+1);490 layer._C.ReSize(maxDeg + 1, maxOrd + 1); 491 layer._S.ReSize(maxDeg + 1, maxOrd + 1); 461 492 462 493 for (int iDeg = 0; iDeg <= maxDeg; iDeg++) { … … 478 509 //////////////////////////////////////////////////////////////////////////// 479 510 t_corrSSR::e_type t_corrSSR::readEpoLine(const string& line, bncTime& epoTime, 480 unsigned int& updateInt, int& numEntries, 481 string& staID) { 511 unsigned int& updateInt, int& numEntries, 512 string& staID) 513 { 482 514 483 515 istringstream inLine(line.c_str()); 484 516 485 char epoChar;517 char epoChar; 486 518 string typeString; 487 int year, month, day, hour, min;519 int year, month, day, hour, min; 488 520 double sec; 489 521 490 inLine >> epoChar >> typeString 491 >> year >> month >> day >> hour >> min >> sec >> updateInt >> numEntries >> staID; 522 inLine >> epoChar >> typeString >> year >> month >> day >> hour >> min >> sec >> updateInt >> numEntries >> staID; 492 523 493 524 if (epoChar == '>') { 494 525 epoTime.set(year, month, day, hour, min, sec); 495 if (typeString == "CLOCK") {526 if (typeString == "CLOCK") { 496 527 return clkCorr; 497 528 } … … 518 549 // Set NAV type to force NAVtype usage according SSR standard 519 550 ///////////////////////////////////////////////////////////// 520 t_eph::e_type t_corrSSR::getSsrNavTypeFlag(char sys, int num) { 551 t_eph::e_type t_corrSSR::getSsrNavTypeFlag(char sys, int num) 552 { 521 553 522 554 t_eph::e_type flag = t_eph::undefined; 523 555 524 556 switch (sys) { 525 case 'G':526 case 'J':527 case 'I': // not part of the SSR standard528 flag = t_eph::LNAV;529 break;530 case 'R':531 flag = t_eph::FDMA_M;532 break;533 case 'E':534 flag = t_eph::INAV;535 break;536 case 'C':537 if (num < 6) {// GEO538 flag = t_eph::D2;539 }540 else if (num > 58 && num < 63) { // GEO541 flag = t_eph::D2;542 }543 else {544 flag = t_eph::D1;545 }546 break;547 case 'S':548 flag = t_eph::SBASL1;549 break;557 case 'G': 558 case 'J': 559 case 'I': // not part of the SSR standard 560 flag = t_eph::LNAV; 561 break; 562 case 'R': 563 flag = t_eph::FDMA_M; 564 break; 565 case 'E': 566 flag = t_eph::INAV; 567 break; 568 case 'C': 569 if (num < 6) { // GEO 570 flag = t_eph::D2; 571 } 572 else if (num > 58 && num < 63) { // GEO 573 flag = t_eph::D2; 574 } 575 else { 576 flag = t_eph::D1; 577 } 578 break; 579 case 'S': 580 flag = t_eph::SBASL1; 581 break; 550 582 } 551 583
Note:
See TracChangeset
for help on using the changeset viewer.
