Changeset 11037 in ntrip for trunk/BNC/src/satObs.cpp
- Timestamp:
- Sep 21, 2026, 3:24:09 PM (15 hours ago)
- File:
-
- 1 edited
-
trunk/BNC/src/satObs.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/satObs.cpp
r11008 r11037 493 493 // 494 494 //////////////////////////////////////////////////////////////////////////// 495 void t_satAntenna::writeEpoch(ostream* out, const QList<t_satAntenna>& antList) { 496 if (!out || antList.size() == 0) { 497 return; 498 } 499 out->setf(ios::fixed); 500 bncTime epoTime; 501 QListIterator<t_satAntenna> it(antList); 502 while (it.hasNext()) { 503 const t_satAntenna& satAntenna = it.next(); 504 if (!epoTime.valid()) { 505 epoTime = satAntenna._time; 506 *out << "> SAT_ANTENNA " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1, ' ') << " " 507 << 0 << " " << antList.size() << ' ' << satAntenna._staID << endl; 508 } 509 // header fields are genuinely per system (e.g. GPS/GLONASS/Galileo carry 510 // different maximumOffNadirAngle), so they are written per satellite 511 // rather than once per epoch like t_satPhaseBias's metadata line 512 *out << satAntenna._prn.toString() << ' ' 513 << setw(4) << satAntenna._ssrProviderID << ' ' 514 << setw(2) << satAntenna._satelliteAntennaIOD << ' ' 515 << setw(1) << satAntenna._phaseCenterInfoInd << ' ' 516 << setw(1) << satAntenna._groupDelayInfoInd << ' ' 517 << setw(1) << satAntenna._nadirAngleDependentCorrInd << ' ' 518 << setw(2) << satAntenna._maximumOffNadirAngle << ' ' 519 << setw(2) << satAntenna._nadirAngleRangeExtension << " " 520 << setw(2) << satAntenna._freq.size(); 521 for (unsigned ii = 0; ii < satAntenna._freq.size(); ii++) { 522 const t_frqAntenna& frqAntenna = satAntenna._freq[ii]; 523 *out << " " << frqAntenna._freqIndex << ' ' 524 << frqAntenna._nadirCorrectionIndicator << ' ' 525 << setw(10) << setprecision(4) << frqAntenna._nadirCorrection; 526 for (unsigned jj = 0; jj < frqAntenna._nadirAngleCorrection.size(); jj++) { 527 *out << ' ' << setw(9) << setprecision(4) << frqAntenna._nadirAngleCorrection[jj]; 528 } 529 } 530 *out << endl; 531 } 532 out->flush(); 533 } 534 535 // 536 //////////////////////////////////////////////////////////////////////////// 537 void t_satAntenna::readEpoch(const string& epoLine, istream& inStream, QList<t_satAntenna>& antList) { 538 bncTime epoTime; 539 unsigned int updateInt; 540 int numSat; 541 string staID; 542 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numSat, staID) != t_corrSSR::satAntenna) { 543 return; 544 } 545 for (int ii = 0; ii < numSat; ii++) { 546 t_satAntenna satAntenna; 547 satAntenna._time = epoTime; 548 satAntenna._staID = staID; 549 550 string line; 551 getline(inStream, line); 552 istringstream in(line.c_str()); 553 554 int numFreq; 555 in >> satAntenna._prn 556 >> satAntenna._ssrProviderID 557 >> satAntenna._satelliteAntennaIOD 558 >> satAntenna._phaseCenterInfoInd 559 >> satAntenna._groupDelayInfoInd 560 >> satAntenna._nadirAngleDependentCorrInd 561 >> satAntenna._maximumOffNadirAngle 562 >> satAntenna._nadirAngleRangeExtension 563 >> numFreq; 564 565 char sys = satAntenna._prn.system(); 566 int num = satAntenna._prn.number(); 567 int flag = t_corrSSR::getSsrNavTypeFlag(sys, num); 568 satAntenna._prn.setFlag(flag); 569 570 unsigned int numAngles = satAntenna._nadirAngleDependentCorrInd ? 571 satAntenna._maximumOffNadirAngle + 1 : 0; 572 573 for (int jj = 0; jj < numFreq; jj++) { 574 t_frqAntenna frqAntenna; 575 in >> frqAntenna._freqIndex >> frqAntenna._nadirCorrectionIndicator >> frqAntenna._nadirCorrection; 576 for (unsigned kk = 0; kk < numAngles; kk++) { 577 double val; 578 in >> val; 579 frqAntenna._nadirAngleCorrection.push_back(val); 580 } 581 satAntenna._freq.push_back(frqAntenna); 582 } 583 584 antList.push_back(satAntenna); 585 } 586 } 587 588 // 589 //////////////////////////////////////////////////////////////////////////// 495 590 void t_metaData::write(ostream* out, const t_metaData& md) { 496 591 if (!out || md._entries.size() == 0) { … … 582 677 else if (typeString == "META_DATA") { 583 678 return metaData; 679 } 680 else if (typeString == "SAT_ANTENNA") { 681 return satAntenna; 584 682 } 585 683 }
Note:
See TracChangeset
for help on using the changeset viewer.
