Changeset 8484 in ntrip for branches/BNC_2.12
- Timestamp:
- Sep 18, 2018, 12:50:00 PM (6 years ago)
- Location:
- branches/BNC_2.12/src
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/BNC_2.12/src/PPP_SSR_I/pppClient.cpp
r8370 r8484 408 408 bncTime ToT = satData->tt - prange / t_CST::c - clkSat; 409 409 410 ColumnVector xc( 4);410 ColumnVector xc(7); 411 411 ColumnVector vv(3); 412 412 if (getSatPos(ToT, satData->prn, xc, vv) != success) { -
branches/BNC_2.12/src/RTCM/rtcm_utils.cpp
r6139 r8484 10 10 11 11 void resolveEpoch (double secsHour, 12 int refWeek, double refSecs, 12 int refWeek, double refSecs, 13 13 int& epochWeek, double& epochSecs) { 14 14 15 const double secsPerWeek = 604800.0; 15 const double secsPerWeek = 604800.0; 16 16 17 17 epochWeek = refWeek; 18 18 epochSecs = secsHour + 3600.0*(floor((refSecs-secsHour)/3600.0+0.5)); 19 19 20 20 if (epochSecs<0 ) { epochWeek--; epochSecs+=secsPerWeek; }; 21 21 if (epochSecs>secsPerWeek) { epochWeek++; epochSecs-=secsPerWeek; }; … … 29 29 double& xSat, double& ySat, double& zSat, double& clkSat) { 30 30 31 const double omega_earth = 7292115.1467e-11; 32 const double secsPerWeek = 604800.0; 31 const double omega_earth = 7292115.1467e-11; 32 const double secsPerWeek = 604800.0; 33 33 34 34 // Initial values 35 35 // -------------- 36 36 rho = 0.0; 37 ColumnVector xc( 4);37 ColumnVector xc(7); 38 38 ColumnVector vv(3); 39 39 eph->getCrd(bncTime(GPSWeek, GPSWeeks), xc, vv, false); … … 45 45 ////cout << "----- cmpRho -----\n"; 46 46 ////eph->print(cout); 47 ////cout << " pos " << setw(4) << GPSWeek 47 ////cout << " pos " << setw(4) << GPSWeek 48 48 //// << " " << setw(14) << setprecision(6) << GPSWeeks 49 49 //// << " " << setw(13) << setprecision(3) << xSat … … 57 57 do { 58 58 rhoLast = rho; 59 59 60 60 // Correction station position due to Earth Rotation 61 61 // ------------------------------------------------- 62 62 double dPhi = omega_earth * rho / c_light; 63 double xRec = stax * cos(dPhi) - stay * sin(dPhi); 64 double yRec = stay * cos(dPhi) + stax * sin(dPhi); 63 double xRec = stax * cos(dPhi) - stay * sin(dPhi); 64 double yRec = stay * cos(dPhi) + stax * sin(dPhi); 65 65 double zRec = staz; 66 66 … … 81 81 GPSWeek_tot += 1; 82 82 } 83 83 84 84 eph->getCrd(bncTime(GPSWeek_tot, GPSWeeks_tot), xc, vv, false); 85 85 xSat = xc(1); … … 94 94 rho = sqrt(dx*dx + dy*dy + dz*dz); 95 95 96 ////cout << " scrd " << setw(4) << GPSWeek_tot 96 ////cout << " scrd " << setw(4) << GPSWeek_tot 97 97 //// << " " << setw(15) << setprecision(8) << GPSWeeks_tot 98 98 //// << " " << setw(13) << setprecision(3) << xSat … … 108 108 //// << " rho " << setw(13) << setprecision(3) << rho 109 109 //// << endl; 110 110 111 111 112 112 ////cout.setf(ios::fixed); 113 113 //// 114 ////cout << "niter " << setw(3) << ++niter 114 ////cout << "niter " << setw(3) << ++niter 115 115 //// << " " << setw(14) << setprecision(3) << rhoLast 116 116 //// << " " << setw(14) << setprecision(3) << rho -
branches/BNC_2.12/src/bncclockrinex.cpp
r8089 r8484 41 41 //////////////////////////////////////////////////////////////////////////// 42 42 t_irc bncClockRinex::write(int GPSweek, double GPSweeks, const QString& prn, 43 double sp3Clk) { 43 double clkRnx, double clkRnxRate, double clkRnxAcc, 44 double clkRnxSig, double clkRnxRateSig, double clkRnxAccSig) { 44 45 45 46 if (reopen(GPSweek, GPSweeks) == success) { … … 48 49 double sec = fmod(GPSweeks, 60.0); 49 50 50 _out << "AS " << prn.toAscii().data() 51 << datTim.toString(" yyyy MM dd hh mm").toAscii().data() 51 int numValues = 1; 52 if (clkRnxSig && clkRnxRate && clkRnxRateSig) { 53 numValues += 3; 54 } 55 if (clkRnxAcc && clkRnxAccSig) { 56 numValues += 2; 57 } 58 59 _out << "AS " << prn.toLatin1().data() 60 << datTim.toString(" yyyy MM dd hh mm").toLatin1().data() 52 61 << fixed << setw(10) << setprecision(6) << sec 53 << " 1 " << fortranFormat(sp3Clk, 19, 12).toAscii().data() << endl; 62 << " " << numValues << " " 63 << fortranFormat(clkRnx, 19, 12).toLatin1().data(); 54 64 65 if (numValues >=2) { 66 _out << " " << fortranFormat(clkRnxSig, 19, 12).toLatin1().data() << endl; 67 } 68 if (numValues == 4) { 69 _out << fortranFormat(clkRnxRate, 19, 12).toLatin1().data() << " "; 70 _out << fortranFormat(clkRnxRateSig, 19, 12).toLatin1().data() << " "; 71 } 72 if (numValues == 6) { 73 _out << fortranFormat(clkRnxAcc, 19, 12).toLatin1().data() << " "; 74 _out << " " << fortranFormat(clkRnxAccSig, 19, 12).toLatin1().data(); 75 } 76 _out << endl; 55 77 return success; 56 78 } -
branches/BNC_2.12/src/bncclockrinex.h
r4991 r8484 12 12 bncClockRinex(const QString& sklFileName, const QString& intr, int sampl); 13 13 virtual ~bncClockRinex(); 14 virtual t_irc write(int GPSweek, double GPSweeks, const QString& prn, 15 double sp3Clk); 14 virtual t_irc write(int GPSweek, double GPSweeks, const QString& prn, 15 double clkRnx, double clkRnxRate, double clkRnxAcc, 16 double clkRnxSig, double clkRnxRateSig, double clkRnxAccSig); 16 17 17 18 private: -
branches/BNC_2.12/src/bncephuser.cpp
r8370 r8484 188 188 // Simple Check - check satellite radial distance 189 189 // ---------------------------------------------- 190 ColumnVector xc( 4);190 ColumnVector xc(7); 191 191 ColumnVector vv(3); 192 192 if (eph->getCrd(eph->TOC(), xc, vv, false) != success) { … … 241 241 } 242 242 } 243 243 244 244 // Check consistency with older ephemerides 245 245 // ---------------------------------------- -
branches/BNC_2.12/src/bnchelp.html
r8469 r8484 3903 3903 The following satellite specific keys and values are currently specified for that in BNC:<br><br> 3904 3904 <table> 3905 <tr><td><i>Key </i></td><td><i>Values</i></td></tr> 3906 <tr><td>APC</td><td>Satellite Antenna Phase Center coordinates in meters</td></tr> 3907 <tr><td>Clk</td><td>Satellite clock correction in meters, relativistic correction applied like in broadcast clocks</td></tr> 3908 <tr><td>Vel</td><td>Satellite velocity in meters per second</td></tr> 3909 <tr><td>CoM</td><td>Satellite Center of Mass coordinates in meters</td></tr> 3910 <tr><td>CodeBias</td><td>Satellite Code Biases in meters with two characters for frequency and tracking mode per bias as defined in RINEX 3 and preceded by total number of biases</td></tr> 3911 <tr><td>YawAngle</td><td>Satellite Yaw Angle in radian, restricted to be in [0, 2π] which shall be used for the computation of phase wind-up correction</td></tr> 3912 <tr><td>YawRate</td><td>Satellite Yaw Rate in radian per second which is the rate of Yaw Angle</td></tr> 3913 <tr><td>PhaseBias</td><td>Satellite Phase Biases in meters with two characters for frequency and tracking mode per bias as defined in RINEX 3, preceded by total number of biases and followed by Signal Integer Indicator, Signals Wilde-Lane Integer Indicator as well as Signal Discontinuity Counter</td></tr> 3905 <tr><td><i>Key </i></td><td><i>Values</i></td></tr> 3906 <tr><td>APC</td><td>Satellite Antenna Phase Center coordinate components in meters</td></tr> 3907 <tr><td>Clk</td><td>Satellite clock correction components in meters, meters per seconds and meters per sec² (relativistic correction applied like in broadcast clocks)</td></tr> 3908 <tr><td>ClkSig</td><td>Standard deviation for satellite clock correction components in meters, meters per seconds and meters per sec² (required for Clock RINEX file only) /td></tr> 3909 <tr><td>Vel</td><td>Satellite velocity components in meters per second</td></tr> 3910 <tr><td>CoM</td><td>Satellite Center of Mass coordinate components in meters</td></tr> 3911 <tr><td>Ura</td><td>User range accuracy value in meters</td></tr> 3912 <tr><td>CodeBias</td><td>Satellite Code Biases in meters with two characters for frequency and tracking mode per bias as defined in RINEX 3 and preceded by total number of biases</td></tr> 3913 <tr><td>PhaseBias</td><td>Satellite Phase Biases in meters with two characters for frequency and tracking mode per bias as defined in RINEX 3, preceded by total number of biases and followed by Signal Integer Indicator, Signals Wilde-Lane Integer Indicator as well as Signal Discontinuity Counter</td></tr> 3914 <tr><td>YawAngle</td><td>Satellite Yaw Angle in radian, restricted to be in [0, 2π], which shall be used for the computation of phase wind-up correction</td></tr> 3915 <tr><td>YawRate</td><td>Satellite Yaw Rate in radian per second which is the rate of Yaw Angle</td></tr> 3914 3916 </table> 3915 3917 <p> -
branches/BNC_2.12/src/bncsp3.cpp
r8089 r8484 64 64 //////////////////////////////////////////////////////////////////////////// 65 65 t_irc bncSP3::write(int GPSweek, double GPSweeks, const QString& prn, 66 const ColumnVector& xCoM, double sp3Clk) { 66 const ColumnVector& xCoM, double sp3Clk, 67 const ColumnVector& v, double sp3ClkRate) { 67 68 68 69 if (reopen(GPSweek, GPSweeks) == success) { … … 87 88 } 88 89 89 _out << "P" << prn.toAscii().data() 90 << setw(14) << setprecision(6) << xCoM(1) / 1000.0 91 << setw(14) << setprecision(6) << xCoM(2) / 1000.0 92 << setw(14) << setprecision(6) << xCoM(3) / 1000.0 93 << setw(14) << setprecision(6) << sp3Clk * 1e6 << endl; 94 90 _out << "P" << prn.toLatin1().data() 91 << setw(14) << setprecision(6) << xCoM(1) / 1000.0 // [km] 92 << setw(14) << setprecision(6) << xCoM(2) / 1000.0 // [km] 93 << setw(14) << setprecision(6) << xCoM(3) / 1000.0 // [km] 94 << setw(14) << setprecision(6) << sp3Clk * 1e6 // microseconds 95 << endl; 96 97 if (sp3ClkRate) { 98 _out << "V" << prn.toLatin1().data() 99 << setw(14) << setprecision(6) << v(1) * 10.0 // [dm/s] 100 << setw(14) << setprecision(6) << v(2) * 10.0 // [dm/s] 101 << setw(14) << setprecision(6) << v(3) * 10.0 // [dm/s] 102 << setw(14) << setprecision(6) << sp3ClkRate * 1e2 // 10^⁻4 microseconds/sec 103 << endl; 104 } 95 105 return success; 96 106 } -
branches/BNC_2.12/src/bncsp3.h
r6351 r8484 44 44 virtual ~bncSP3(); 45 45 t_irc write(int GPSweek, double GPSweeks, const QString& prn, 46 const ColumnVector& xCoM, double sp3Clk); 46 const ColumnVector& xCoM, double sp3Clk, 47 const ColumnVector& v, double sp3ClkRate); 47 48 const t_sp3Epoch* nextEpoch(); 48 49 const t_sp3Epoch* currEpoch() const {return _currEpoch;} -
branches/BNC_2.12/src/combination/bnccomb.cpp
r8448 r8484 356 356 continue; 357 357 } 358 358 359 359 // Check Modulo Time 360 360 // ----------------- … … 449 449 } 450 450 451 ColumnVector oldXC( 4);451 ColumnVector oldXC(7); 452 452 ColumnVector oldVV(3); 453 453 corr->_eph->getCrd(corr->_time, oldXC, oldVV, false); 454 454 455 ColumnVector newXC( 4);455 ColumnVector newXC(7); 456 456 ColumnVector newVV(3); 457 457 lastEph->getCrd(corr->_time, newXC, newVV, false); … … 688 688 const t_eph* eph = corr->_eph; 689 689 if (eph) { 690 ColumnVector xc( 4);690 ColumnVector xc(7); 691 691 ColumnVector vv(3); 692 692 eph->getCrd(_resTime, xc, vv, false); … … 740 740 clkCorrections.push_back(clkCorr); 741 741 742 ColumnVector xc( 4);742 ColumnVector xc(7); 743 743 ColumnVector vv(3); 744 744 corr->_eph->setClkCorr(dynamic_cast<const t_clkCorr*>(&clkCorr)); -
branches/BNC_2.12/src/ephemeris.cpp
r8455 r8484 368 368 double tc = tt - _TOC; 369 369 xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc; 370 371 xc[4] = _clock_bias; 372 xc[5] = _clock_drift; 373 xc[6] = _clock_driftrate; 370 374 371 375 // Velocity … … 651 655 xc[3] = -_tau + _gamma * dtClk; 652 656 657 xc[4] = -_tau; 658 xc[5] = _gamma; 659 xc[6] = 0.0; 660 653 661 return success; 654 662 } … … 963 971 xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc; 964 972 973 xc[4] = _clock_bias; 974 xc[5] = _clock_drift; 975 xc[6] = _clock_driftrate; 976 965 977 // Velocity 966 978 // -------- … … 1304 1316 1305 1317 xc[3] = _agf0 + _agf1 * dt; 1318 1319 xc[4] = _agf0; 1320 xc[5] = _agf1; 1321 xc[6] = 0.0; 1306 1322 1307 1323 return success; … … 1682 1698 xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc; 1683 1699 1700 xc[4] = _clock_bias; 1701 xc[5] = _clock_drift; 1702 xc[6] = _clock_driftrate; 1703 1684 1704 // dotC = _clock_drift + _clock_driftrate*tc 1685 1705 // - 4.442807633e-10*_e*sqrt(a0)*cos(E) * dEdM * n; -
branches/BNC_2.12/src/rinex/reqcanalyze.cpp
r8398 r8484 351 351 } 352 352 if (eph) { 353 ColumnVector xc( 4);353 ColumnVector xc(7); 354 354 ColumnVector vv(3); 355 355 if ( xyzSta.size() == 3 && (xyzSta[0] != 0.0 || xyzSta[1] != 0.0 || xyzSta[2] != 0.0) && … … 1101 1101 for (epoTime = startTime - interval; epoTime < endTime; 1102 1102 epoTime = epoTime + interval) { 1103 ColumnVector xc( 4);1103 ColumnVector xc(7); 1104 1104 ColumnVector vv(3); 1105 1105 if ( xyzSta.size() == 3 && (xyzSta[0] != 0.0 || xyzSta[1] != 0.0 || xyzSta[2] != 0.0) && -
branches/BNC_2.12/src/satObs.cpp
r7058 r8484 140 140 corr._prn.setFlags(1);// I/NAV 141 141 } 142 corrList.push_back(corr); 143 } 144 } 145 146 // Constructor 147 //////////////////////////////////////////////////////////////////////////// 148 t_URA::t_URA() { 149 _updateInt = 0; 150 _iod = 0; 151 _ura = 0.0; 152 } 153 154 // 155 //////////////////////////////////////////////////////////////////////////// 156 void t_URA::writeEpoch(ostream* out, const QList<t_URA>& corrList) { 157 if (!out || corrList.size() == 0) { 158 return; 159 } 160 out->setf(ios::fixed); 161 bncTime epoTime; 162 QListIterator<t_URA> it(corrList); 163 while (it.hasNext()) { 164 const t_URA& corr = it.next(); 165 if (!epoTime.valid()) { 166 epoTime = corr._time; 167 *out << "> URA " << epoTime.datestr(' ') << ' ' << epoTime.timestr(1,' ') << " " 168 << corr._updateInt << " " 169 << corrList.size() << ' ' << corr._staID << endl; 170 } 171 *out << corr._prn.toString() << ' ' << setw(11) << corr._iod << ' ' 172 << setw(10) << setprecision(4) << corr._ura << endl; 173 } 174 out->flush(); 175 } 176 177 // 178 //////////////////////////////////////////////////////////////////////////// 179 void t_URA::readEpoch(const string& epoLine, istream& inStream, QList<t_URA>& corrList) { 180 bncTime epoTime; 181 unsigned int updateInt; 182 int numCorr; 183 string staID; 184 if (t_corrSSR::readEpoLine(epoLine, epoTime, updateInt, numCorr, staID) != t_corrSSR::URA) { 185 return; 186 } 187 for (int ii = 0; ii < numCorr; ii++) { 188 t_URA corr; 189 corr._time = epoTime; 190 corr._updateInt = updateInt; 191 corr._staID = staID; 192 193 string line; 194 getline(inStream, line); 195 istringstream in(line.c_str()); 196 197 in >> corr._prn >> corr._iod >> corr._ura; 198 142 199 corrList.push_back(corr); 143 200 } … … 390 447 return vTec; 391 448 } 449 else if (typeString == "URA") { 450 return URA; 451 } 392 452 } 393 453 -
branches/BNC_2.12/src/satObs.h
r7611 r8484 110 110 }; 111 111 112 class t_URA { 113 public: 114 t_URA(); 115 static void writeEpoch(std::ostream* out, const QList<t_URA>& corrList); 116 static void readEpoch(const std::string& epoLine, std::istream& in, QList<t_URA>& corrList); 117 std::string _staID; 118 t_prn _prn; 119 unsigned int _iod; 120 bncTime _time; 121 unsigned int _updateInt; 122 double _ura; 123 }; 124 112 125 class t_frqCodeBias { 113 126 public: … … 189 202 class t_corrSSR { 190 203 public: 191 enum e_type {clkCorr, orbCorr, codeBias, phaseBias, vTec, unknown};204 enum e_type {clkCorr, orbCorr, codeBias, phaseBias, vTec, URA, unknown}; 192 205 static e_type readEpoLine(const std::string& line, bncTime& epoTime, 193 206 unsigned int& updateInt, int& numEntries, std::string& staID); -
branches/BNC_2.12/src/upload/bncrtnetuploadcaster.cpp
r8411 r8484 330 330 for (int ii = 1; ii < lines.size(); ii++) { 331 331 QString key; // prn or key VTEC, IND (phase bias indicators) 332 ColumnVector rtnAPC; 333 ColumnVector rtnVel; 334 ColumnVector rtnCoM; 335 double rtnClk; 332 double rtnUra; // [m] 333 ColumnVector rtnAPC; // [m, m, m] 334 ColumnVector rtnVel; // [m/s, m/s, m/s]] 335 ColumnVector rtnCoM; // [m, m, m] 336 ColumnVector rtnClk; // [m, m/s, m/s²] 337 ColumnVector rtnClkSig; // [m, m/s, m/s²] 336 338 t_prn prn; 337 339 … … 432 434 } 433 435 } 434 else if (key == " Clk") {436 else if (key == "Ura") { 435 437 in >> numVal; 436 438 if (numVal == 1) 437 in >> rtnClk; 439 in >> rtnUra; 440 } 441 else if (key == "Clk") { 442 rtnClk.ReSize(3); 443 for (int ii = 0; ii < 3; ii++) { 444 rtnClk[ii] = 0.0; 445 } 446 in >> numVal; 447 for (int ii = 0; ii < numVal; ii++) { 448 in >> rtnClk[ii]; 449 } 450 } 451 else if (key == "ClkSig") { 452 rtnClkSig.ReSize(3); 453 for (int ii = 0; ii < 3; ii++) { 454 rtnClkSig[ii] = 0.0; 455 } 456 in >> numVal; 457 for (int ii = 0; ii < numVal; ii++) { 458 in >> rtnClkSig[ii]; 459 } 438 460 } 439 461 else if (key == "Vel") { … … 523 545 if (sd) { 524 546 QString outLine; 525 processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC, 526 rtnClk, rtnVel, rtnCoM, sd, outLine);547 processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC, rtnUra, 548 rtnClk, rtnVel, rtnCoM, rtnClkSig, sd, outLine); 527 549 } 528 550 … … 2240 2262 void bncRtnetUploadCaster::processSatellite(const t_eph* eph, int GPSweek, 2241 2263 double GPSweeks, const QString& prn, const ColumnVector& rtnAPC, 2242 double rtnClk, const ColumnVector& rtnVel, const ColumnVector& rtnCoM, 2264 double rtnUra, const ColumnVector& rtnClk, const ColumnVector& rtnVel, 2265 const ColumnVector& rtnCoM, const ColumnVector& rtnClkSig, 2243 2266 struct ClockOrbit::SatData* sd, QString& outLine) { 2244 2267 2245 2268 // Broadcast Position and Velocity 2246 2269 // ------------------------------- 2247 ColumnVector xB( 4);2270 ColumnVector xB(7); 2248 2271 ColumnVector vB(3); 2249 2272 eph->getCrd(bncTime(GPSweek, GPSweeks), xB, vB, false); … … 2273 2296 // Clock Correction 2274 2297 // ---------------- 2275 double dClk = rtnClk - (xB(4) - dc) * t_CST::c; 2298 double dClkA0 = rtnClk(1) - (xB(5) - dc) * t_CST::c; 2299 double dClkA1 = rtnClk(2) - xB(6) * t_CST::c; 2300 double dClkA2 = rtnClk(3) - xB(7) * t_CST::c; 2276 2301 2277 2302 if (sd) { 2278 2303 sd->ID = prn.mid(1).toInt(); 2279 2304 sd->IOD = eph->IOD(); 2280 sd->Clock.DeltaA0 = dClk; 2281 sd->Clock.DeltaA1 = 0.0; // TODO 2282 sd->Clock.DeltaA2 = 0.0; // TODO 2283 sd->Orbit.DeltaRadial = rsw(1); 2305 sd->Clock.DeltaA0 = dClkA0; 2306 sd->Clock.DeltaA1 = dClkA1; 2307 sd->Clock.DeltaA2 = dClkA2; 2308 sd->UserRangeAccuracy = rtnUra; 2309 sd->Orbit.DeltaRadial = rsw(1); 2284 2310 sd->Orbit.DeltaAlongTrack = rsw(2); 2285 2311 sd->Orbit.DeltaCrossTrack = rsw(3); 2286 sd->Orbit.DotDeltaRadial = dotRsw(1);2312 sd->Orbit.DotDeltaRadial = dotRsw(1); 2287 2313 sd->Orbit.DotDeltaAlongTrack = dotRsw(2); 2288 2314 sd->Orbit.DotDeltaCrossTrack = dotRsw(3); 2289 2315 } 2290 2316 2291 outLine.sprintf("%d %.1f %s %u %10.3f %8.3f %8.3f %8.3f\n", GPSweek,2292 GPSweeks, eph->prn().toString().c_str(), eph->IOD(), dClk , rsw(1), rsw(2),2293 rsw( 3));2317 outLine.sprintf("%d %.1f %s %u %10.3f %8.3f %8.3f %8.3f %8.3f %8.3f\n", GPSweek, 2318 GPSweeks, eph->prn().toString().c_str(), eph->IOD(), dClkA0, dClkA1, dClkA2, 2319 rsw(1), rsw(2), rsw(3)); 2294 2320 2295 2321 double relativity = -2.0 * DotProduct(xP, rtnVel) / t_CST::c; 2296 double sp3Clk = (rtnClk - relativity) / t_CST::c; // in seconds 2322 double clkRnx = (rtnClk[0] - relativity) / t_CST::c; // in seconds 2323 double clkRnxRate = rtnClk[1] / t_CST::c; // [s/s = -] 2324 double clkRnxAcc = rtnClk[2] / t_CST::c; // [s/s² ) -/s] 2297 2325 2298 2326 if (_rnx) { 2299 _rnx->write(GPSweek, GPSweeks, prn, sp3Clk); 2327 double clkRnxSig = rtnClkSig[0] / t_CST::c; // in seconds 2328 double clkRnxRateSig = rtnClkSig[1] / t_CST::c; // [s/s = -] 2329 double clkRnxAccSig = rtnClkSig[2] / t_CST::c; // [s/s² ) -/s] 2330 _rnx->write(GPSweek, GPSweeks, prn, clkRnx, clkRnxRate, clkRnxAcc, 2331 clkRnxSig, clkRnxRateSig, clkRnxAccSig); 2300 2332 } 2301 2333 if (_sp3) { 2302 _sp3->write(GPSweek, GPSweeks, prn, rtnCoM, sp3Clk);2334 _sp3->write(GPSweek, GPSweeks, prn, rtnCoM, clkRnx, rtnVel, clkRnxRate); 2303 2335 } 2304 2336 } … … 2356 2388 meanSta(3) = 0.0; // TODO 2357 2389 } 2358 2390 2359 2391 // Clock correction proportional to topocentric distance to satellites 2360 2392 // ------------------------------------------------------------------- -
branches/BNC_2.12/src/upload/bncrtnetuploadcaster.h
r8415 r8484 32 32 double GPSweeks, const QString& prn, 33 33 const ColumnVector& rtnAPC, 34 double rtnClk, 34 double ura, 35 const ColumnVector& rtnClk, 35 36 const ColumnVector& rtnVel, 36 37 const ColumnVector& rtnCoM, 38 const ColumnVector& rtnClkSig, 37 39 struct ClockOrbit::SatData* sd, 38 40 QString& outLine);
Note:
See TracChangeset
for help on using the changeset viewer.