Changeset 10533 in ntrip
- Timestamp:
- Sep 17, 2024, 4:55:28 PM (4 weeks ago)
- Location:
- trunk/BNC/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/GPSDecoder.h
r8235 r10533 27 27 28 28 #include <iostream> 29 #include <iomanip> 29 30 #include <vector> 30 31 #include <string> … … 35 36 #include "bnctime.h" 36 37 #include "satObs.h" 38 #include "crs.h" 37 39 38 40 class bncRinex; 41 using namespace std; 39 42 40 43 class GPSDecoder { … … 92 95 93 96 /** List of observations */ 94 QList<t_satObs> _obsList; 95 QList<int> _typeList; // RTCM message types 96 QList<t_antInfo> _antType; // RTCM antenna descriptor 97 QList<t_recInfo> _recType; // RTCM receiver descriptor 98 QList<t_antRefPoint> _antList; // RTCM antenna XYZ 99 QString _gloFrq; // GLONASS slot 100 bncRinex* _rnx; // RINEX writer 97 QList<t_satObs> _obsList; 98 QList<int> _typeList; // RTCM message types 99 QList<t_antInfo> _antType; // RTCM antenna descriptor 100 QList<t_recInfo> _recType; // RTCM receiver descriptor 101 QList<t_antRefPoint> _antList; // RTCM antenna XYZ 102 QList<t_helmertPar> _helmertPar; // List of Helmert parameter sets 103 QList<t_serviceCrs> _serviceCrs; // Service CRS 104 QList<t_rtcmCrs> _rtcmCrs; // RTCM CRS 105 QString _gloFrq; // GLONASS slot 106 bncRinex* _rnx; // RINEX writer 101 107 }; 102 108 -
trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit.h
r10529 r10533 17 17 #include "t_prn.h" 18 18 #include "bncutils.h" 19 #include "bits.h" 19 20 20 21 enum IGS_NUMBERS { … … 406 407 virtual CodeType rnxTypeToCodeType(char system, std::string type) = 0; 407 408 408 //#ifndef NOENCODE409 409 #define STOREBITS \ 410 410 while(numbits >= 8) { \ … … 447 447 448 448 #define SCALEADDBITS(a, b, c) ADDBITS(a, (int64_t)(c > 0 ? b*c+0.5 : b*c-0.5)) 449 449 450 #define MPI 3.141592653589793 450 451 … … 665 666 #define G_VTEC_QUALITY_INDICATOR(a) GETSSRFLOAT (a, 9, 1/20.0) /* DF478, IDF041 */ 666 667 667 //#endif /* NODECODE */668 669 668 }; 670 669 -
trunk/BNC/src/bncgetthread.cpp
r10517 r10533 578 578 } else if ((rtcmType >= 1057 && rtcmType <= 1068) || 579 579 (rtcmType >= 1240 && rtcmType <= 1270) || 580 (rtcmType == 4076)) {580 (rtcmType == 4076)) { 581 581 switch (rtcmType) { 582 582 case 1057: case 1063: case 1240: case 1246: case 1252: case 1258: … … 941 941 } 942 942 } 943 944 /* 945 for (int ii = 0; ii < decoder()->_helmertParList.size(); ii++) { 946 decoder()->_helmertParList[ii].print(); 947 } 948 */ 943 // Service CRS 944 // ----------- 945 for (int ii = 0; ii < decoder()->_serviceCrs.size(); ii++) { 946 QString servicecrsname = QString(": Servive CRS Name: %1 ").arg(decoder()->_serviceCrs[ii]._name); 947 QString coordinateEpoch = QString(": Coordinate Epoch: %1 ").arg(decoder()->_serviceCrs[ii]._coordinateEpoch); 948 QString ce = QString(": CE: %1 ").arg(decoder()->_serviceCrs[ii]._CE); 949 emit(newMessage(_staID + servicecrsname.toLatin1(), true)); 950 emit(newMessage(_staID + coordinateEpoch.toLatin1(), true)); 951 emit(newMessage(_staID + ce.toLatin1(), true)); 952 } 953 954 // RTCM CRS 955 // ----------- 956 for (int ii = 0; ii < decoder()->_rtcmCrs.size(); ii++) { 957 QString rtcmcrsname = QString(": RTCM CRS Name: %1 ").arg(decoder()->_rtcmCrs[ii]._name); 958 QString anchor = QString(": Anchor: %1 ").arg(decoder()->_rtcmCrs[ii]._anchor); 959 QString platenumber = QString(": Plate Number: %1 ").arg(decoder()->_rtcmCrs[ii]._plateNumber); 960 emit(newMessage(_staID + rtcmcrsname.toLatin1(), true)); 961 emit(newMessage(_staID + anchor.toLatin1(), true)); 962 emit(newMessage(_staID + platenumber.toLatin1(), true)); 963 for (int i = 0; i<decoder()->_rtcmCrs[ii]._databaseLinks.size(); i++) { 964 QString dblink = QString(": Database Link: %1 ").arg(decoder()->_rtcmCrs[ii]._databaseLinks[i]); 965 emit(newMessage(_staID + dblink.toLatin1(), true)); 966 } 967 } 968 969 // Helmert Parameters 970 //------------------- 971 for (int ii = 0; ii < decoder()->_helmertPar.size(); ii++) { 972 t_helmertPar& helmertPar = decoder()->_helmertPar[ii]; 973 bncTime t; t.setmjd(0, helmertPar._t0); QString dateStr = QString::fromStdString(t.datestr()); 974 QString sourcename = QString(": MT1301 Source Name: %1 ").arg(helmertPar._sourceName); 975 QString targetname = QString(": MT1301 Target Name: %1 ").arg(helmertPar._targetName); 976 QString sysidentnum = QString(": MT1301 Sys Ident Num: %1 ").arg(helmertPar._sysIdentNum); 977 QString trafomessageind = QString(": MT1301 Trafo Ident Num: %1 ").arg(helmertPar.IndtoString()); 978 QString epoch = QString(": MT1301 t0: MJD %1 (%2) ").arg(helmertPar._t0).arg(dateStr); 979 QString partrans = QString(": MT1301 Helmert Par Trans: dx = %1, dy = %2, dz = %3, dxr = %4, dyr = %5, dzr = %6") 980 .arg(helmertPar._dx).arg(helmertPar._dy).arg(helmertPar._dz) 981 .arg(helmertPar._dxr).arg(helmertPar._dyr).arg(helmertPar._dzr); 982 QString parrot = QString(": MT1301 Helmert Par Rot: ox = %1, oy = %2, oz = %3, oxr = %4, oyr = %5, ozr = %6") 983 .arg(helmertPar._ox).arg(helmertPar._oy).arg(helmertPar._oz) 984 .arg(helmertPar._oxr).arg(helmertPar._oyr).arg(helmertPar._ozr); 985 QString parscale = QString(": MT1301 Helmert Par Scale: sc = %1, scr = %2").arg(helmertPar._sc).arg(helmertPar._scr); 986 emit(newMessage(_staID + sourcename.toLatin1(), true)); 987 emit(newMessage(_staID + targetname.toLatin1(), true)); 988 emit(newMessage(_staID + sysidentnum.toLatin1(), true)); 989 emit(newMessage(_staID + trafomessageind.toLatin1(), true)); 990 emit(newMessage(_staID + epoch.toLatin1(), true)); 991 emit(newMessage(_staID + partrans.toLatin1(), true)); 992 emit(newMessage(_staID + parrot.toLatin1(), true)); 993 emit(newMessage(_staID + parscale.toLatin1(), true)); 994 } 949 995 } 950 996 } -
trunk/BNC/src/bncutils.cpp
r10330 r10533 95 95 #define GPSLEAPSTART 19 /* 19 leap seconds existed at 6.1.1980 */ 96 96 97 static int longyear(int year, int month) 98 { 97 static int longyear(int year, int month) { 99 98 if(!(year % 4) && (!(year % 400) || (year % 100))) 100 99 { … … 105 104 } 106 105 107 int gnumleap(int year, int month, int day) 108 { 106 int gnumleap(int year, int month, int day) { 109 107 int ls = 0; 110 108 const struct leapseconds *l; … … 119 117 120 118 /* Convert Moscow time into UTC (fixnumleap == 1) or GPS (fixnumleap == 0) */ 121 void updatetime(int *week, int *secOfWeek, int mSecOfWeek, bool fixnumleap) 122 { 119 void updatetime(int *week, int *secOfWeek, int mSecOfWeek, bool fixnumleap) { 123 120 int y,m,d,k,l, nul; 124 121 unsigned int j = *week*(7*24*60*60) + *secOfWeek + 5*24*60*60+3*60*60; -
trunk/BNC/src/bncutils.h
r10330 r10533 171 171 int bitExtracted(int number, int k, int p); 172 172 173 // RTCM3 GPS EPH encoding174 //////////////////////////////////////////////////////////175 #define GPSTOINT(type, value) static_cast<type>(round(value))176 177 #define GPSADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \178 |(GPSTOINT(long long,b)&((1ULL<<a)-1)); \179 numbits += (a); \180 while(numbits >= 8) { \181 buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}182 183 #define GPSADDBITSFLOAT(a,b,c) {long long i = GPSTOINT(long long,(b)/(c)); \184 GPSADDBITS(a,i)};185 186 // RTCM3 GLONASS EPH encoding187 //////////////////////////////////////////////////////////188 #define GLONASSTOINT(type, value) static_cast<type>(round(value))189 #define GLONASSADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \190 |(GLONASSTOINT(long long,b)&((1ULL<<(a))-1)); \191 numbits += (a); \192 while(numbits >= 8) { \193 buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}194 #define GLONASSADDBITSFLOATM(a,b,c) {int s; long long i; \195 if(b < 0.0) \196 { \197 s = 1; \198 i = GLONASSTOINT(long long,(-b)/(c)); \199 if(!i) s = 0; \200 } \201 else \202 { \203 s = 0; \204 i = GLONASSTOINT(long long,(b)/(c)); \205 } \206 GLONASSADDBITS(1,s) \207 GLONASSADDBITS(a-1,i)}208 209 // RTCM3 Galileo EPH encoding210 //////////////////////////////////////////////////////////211 #define GALILEOTOINT(type, value) static_cast<type>(round(value))212 #define GALILEOADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \213 |(GALILEOTOINT(long long,b)&((1LL<<a)-1)); \214 numbits += (a); \215 while(numbits >= 8) { \216 buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}217 #define GALILEOADDBITSFLOAT(a,b,c) {long long i = GALILEOTOINT(long long,(b)/(c)); \218 GALILEOADDBITS(a,i)};219 220 // RTCM3 SBAS EPH encoding221 //////////////////////////////////////////////////////////222 #define SBASTOINT(type, value) static_cast<type>(round(value))223 #define SBASADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \224 |(SBASTOINT(long long,b)&((1ULL<<a)-1)); \225 numbits += (a); \226 while(numbits >= 8) { \227 buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}228 #define SBASADDBITSFLOAT(a,b,c) {long long i = SBASTOINT(long long,(b)/(c)); \229 SBASADDBITS(a,i)};230 231 // RTCM3 BDS EPH encoding232 //////////////////////////////////////////////////////////233 #define BDSTOINT(type, value) static_cast<type>(round(value))234 #define BDSADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \235 |(BDSTOINT(long long,b)&((1ULL<<a)-1)); \236 numbits += (a); \237 while(numbits >= 8) { \238 buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}239 #define BDSADDBITSFLOAT(a,b,c) {long long i = BDSTOINT(long long,(b)/(c)); \240 BDSADDBITS(a,i)};241 173 242 174 #endif -
trunk/BNC/src/ephemeris.cpp
r10317 r10533 14 14 #include "pppInclude.h" 15 15 #include "pppModel.h" 16 #include "RTCM3/bits.h" 16 17 17 18 using namespace std; -
trunk/BNC/src/ephemeris.h
r10315 r10533 10 10 #include "t_prn.h" 11 11 #include "gnss.h" 12 13 12 14 13 class t_orbCorr; … … 569 568 570 569 }; 570 571 571 #endif -
trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
r10416 r10533 60 60 } 61 61 62 _crdTrafo = crdTrafo;62 _crdTrafoStr = crdTrafo; 63 63 64 64 _ssrFormat = ssrFormat; … … 135 135 // Transformation Parameters from ITRF2014 to ETRF2000 136 136 // http://etrs89.ign.fr/pub/EUREF-TN-1-Mar-04-2024.pdf 137 if (_crdTrafo == "ETRF2000") {137 if (_crdTrafoStr == "ETRF2000") { 138 138 _dx = 0.0552; 139 139 _dy = 0.0527; … … 158 158 } 159 159 // Transformation Parameters from ITRF2014 to GDA2020 (Ryan Ruddick, GA) 160 else if (_crdTrafo == "GDA2020") {160 else if (_crdTrafoStr == "GDA2020") { 161 161 _dx = 0.0; 162 162 _dy = 0.0; … … 182 182 // Transformation Parameters from IGb14 to SIRGAS2000 (Thanks to Sonia Costa, BRA) 183 183 // June 29 2020: TX:-0.0027 m TY:-0.0025 m TZ:-0.0042 m SCL:1.20 (ppb) no rotations and no rates.*/ 184 else if (_crdTrafo == "SIRGAS2000") {184 else if (_crdTrafoStr == "SIRGAS2000") { 185 185 _dx = -0.0027; 186 186 _dy = -0.0025; … … 204 204 } 205 205 // Transformation Parameters from ITRF2014 to DREF91 206 else if (_crdTrafo == "DREF91") {206 else if (_crdTrafoStr == "DREF91") { 207 207 _dx = 0.0547; 208 208 _dy = 0.0522; … … 226 226 _t0 = 2010.0; 227 227 } 228 else if (_crdTrafo == "Custom") {228 else if (_crdTrafoStr == "Custom") { 229 229 _dx = settings.value("trafo_dx").toDouble(); 230 230 _dy = settings.value("trafo_dy").toDouble(); … … 244 244 } 245 245 // TODO: the following lines can be deleted if all parameters are updated regarding ITRF2020 246 if (_crdTrafo == "ETRF2000" ||247 _crdTrafo == "GDA2020" ||248 _crdTrafo == "DREF91" ||249 _crdTrafo == "SIRGAS2000") {246 if (_crdTrafoStr == "ETRF2000" || 247 _crdTrafoStr == "GDA2020" || 248 _crdTrafoStr == "DREF91" || 249 _crdTrafoStr == "SIRGAS2000") { 250 250 // Transformation Parameters from ITRF2020 to ITRF2014 251 251 // from ITRF web site: https://itrf.ign.fr/en/solutions/transformations … … 329 329 if (nextEpoch != -1 && nextEpoch < iEpoEnd) { 330 330 rtnetStreamBuffer = rtnetStreamBuffer.mid(nextEpoch, nextEpochEnd); 331 lines = rtnetStreamBuffer.split('\n', Q String::SkipEmptyParts);331 lines = rtnetStreamBuffer.split('\n', Qt::SkipEmptyParts); 332 332 if (lines.size() > 2) { 333 333 decodeRtnetEpoch(lines); … … 341 341 } 342 342 343 lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', Q String::SkipEmptyParts);343 lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', Qt::SkipEmptyParts); 344 344 345 345 _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd + 3); … … 374 374 memset(&co, 0, sizeof(co)); 375 375 co.EpochTime[CLOCKORBIT_SATGPS] = static_cast<int>(epoTime.gpssec()); 376 double gt = epoTime.gpssec() - gnumleap(year, month, day); 376 377 if (_ssrFormat == "RTCM-SSR") { 377 double gt = epoTime.gpssec() + 3 * 3600 - gnumleap(year, month, day); 378 co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0)); 379 } 380 else if (_ssrFormat == "IGS-SSR") { 381 co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(epoTime.gpssec()); 382 } 378 gt += 3 * 3600; 379 } 380 co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0)); 383 381 co.EpochTime[CLOCKORBIT_SATGALILEO] = static_cast<int>(epoTime.gpssec()); 384 382 co.EpochTime[CLOCKORBIT_SATQZSS] = static_cast<int>(epoTime.gpssec()); 385 383 co.EpochTime[CLOCKORBIT_SATSBAS] = static_cast<int>(epoTime.gpssec()); 386 if (_ssrFormat == "RTCM-SSR") { 387 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec()); 388 } 389 else if (_ssrFormat == "IGS-SSR") { 390 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec()); 391 } 384 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec()); 392 385 co.Supplied[_ssrCorr->COBOFS_CLOCK] = 1; 393 386 co.Supplied[_ssrCorr->COBOFS_ORBIT] = 1; 394 co.SatRefDatum = _ssrCorr->DATUM_ITRF; // ToDo: to decode from RTNET format 387 (_crdTrafoStr == "IGS20") ? 388 co.SatRefDatum = _ssrCorr->DATUM_ITRF : 389 co.SatRefDatum = _ssrCorr->DATUM_LOCAL; 395 390 co.SSRIOD = _IOD; 396 391 co.SSRProviderID = _PID; // 256 .. BKG, 257 ... EUREF 397 392 co.SSRSolutionID = _SID; 393 if (_ssrFormat == "RTCM-SSR") { 394 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec()); 395 } 396 else if (_ssrFormat == "IGS-SSR") { 397 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.gpssec()); 398 } 399 co.Supplied[_ssrCorr->COBOFS_CLOCK] = 1; 400 co.Supplied[_ssrCorr->COBOFS_ORBIT] = 1; 401 402 403 t_serviceCrs serviceCrs; 404 t_rtcmCrs rtcmCrs; 405 if (_crdTrafoStr == "IGS20") { 406 serviceCrs._CE = serviceCrs._coordinateEpoch = 0; 407 int nc = _crdTrafoStr.length(); 408 if (nc > 31) {nc = 31;} 409 for (int i = 0; i < nc; i++) { 410 serviceCrs._name[i] = 411 rtcmCrs._name[i] = _crdTrafoStr.toStdString()[i]; 412 } 413 serviceCrs._name[nc] = 0; 414 rtcmCrs._name[nc] = 0; 415 rtcmCrs._anchor = 0; // global CRS 416 rtcmCrs._plateNumber = 0; // unknown 417 rtcmCrs._databaseLinks << "ISO.DATUM.979" << "ISO.CRS:980"; 418 } 419 else { 420 if (_crdTrafoStr != "Custom") { 421 serviceCrs._coordinateEpoch = _t0; 422 serviceCrs.setCEFromCoordinateEpoch(); 423 int nc = _crdTrafoStr.length(); 424 if (nc > 31) {nc = 31;} 425 for (int i = 0; i < nc; i++) { 426 serviceCrs._name[i] = _crdTrafoStr.toStdString()[i]; 427 } 428 serviceCrs._name[nc] = 0; 429 QString rtcmcrsname = _crdTrafoStr + QString("(%1)").arg(_t0,4,'d',0); 430 nc = rtcmcrsname.length(); 431 if (nc > 31) {nc = 31;} 432 for (int i = 0; i < nc; i++) { 433 rtcmCrs._name[i] = rtcmcrsname.toStdString()[i]; 434 } 435 rtcmCrs._name[nc] = 0; 436 if (_crdTrafoStr == "ETRF2000") { 437 rtcmCrs._anchor = 1; // plate-fixed CRS 438 rtcmCrs._plateNumber = 7; // Eurasia 439 rtcmCrs._databaseLinks << "ISO.DATUM.187" << "ISO.CRS:260" << "ISO.CRS:457" 440 << "EPSG.DATUM:1186" << "EPSG.CRS:7930" << "EPSG.CRS:7931"; 441 } 442 else if (_crdTrafoStr == "DREF91") { 443 rtcmCrs._anchor = 1; // plate-fixed CRS 444 rtcmCrs._plateNumber = 7; // Eurasia 445 } 446 else if (_crdTrafoStr == "GDA2020") { 447 rtcmCrs._anchor = 1; // plate-fixed CRS 448 rtcmCrs._plateNumber = 4; // Australia 449 rtcmCrs._databaseLinks << "ISO.DATUM.186" << "ISO.CRS:404" << "ISO.CRS:329" 450 << "EPSG.DATUM:1168" << "EPSG.CRS:7842" << "EPSG.CRS:7843"; 451 } 452 else if (_crdTrafoStr == "SIRGAS2000") { 453 rtcmCrs._anchor = 1; // plate-fixed CRS 454 rtcmCrs._plateNumber = 12; // S.America 455 rtcmCrs._databaseLinks << "ISO.DATUM:169" << "ISO.CRS:384" << "ISO.CRS:313" 456 << "EPSG.DATUM:6674" << "EPSG.CRS:4988" << "EPSG.CRS:4989"; 457 } 458 } 459 } 460 398 461 399 462 struct SsrCorr::CodeBias bias; … … 1026 1089 1027 1090 double dc = 0.0; 1028 if (_crdTrafo != "IGS20") {1091 if (_crdTrafoStr != "IGS20") { 1029 1092 crdTrafo14(GPSweek, xP, dc); // ITRF2020 => ITRF2014 1030 1093 crdTrafo(GPSweek, xP, dc); // ITRF2014 to other reference frames … … 1142 1205 ColumnVector meanSta(3); 1143 1206 1144 if (_crdTrafo == "ETRF2000") {1207 if (_crdTrafoStr == "ETRF2000") { 1145 1208 meanSta(1) = 3661090.0; 1146 1209 meanSta(2) = 845230.0; 1147 1210 meanSta(3) = 5136850.0; 1148 1211 } 1149 else if (_crdTrafo == "GDA2020") {1212 else if (_crdTrafoStr == "GDA2020") { 1150 1213 meanSta(1) = -4052050.0; 1151 1214 meanSta(2) = 4212840.0; 1152 1215 meanSta(3) = -2545110.0; 1153 1216 } 1154 else if (_crdTrafo == "SIRGAS2000") {1217 else if (_crdTrafoStr == "SIRGAS2000") { 1155 1218 meanSta(1) = 3740860.0; 1156 1219 meanSta(2) = -4964290.0; 1157 1220 meanSta(3) = -1425420.0; 1158 1221 } 1159 else if (_crdTrafo == "DREF91") {1222 else if (_crdTrafoStr == "DREF91") { 1160 1223 meanSta(1) = 3959579.0; 1161 1224 meanSta(2) = 721719.0; 1162 1225 meanSta(3) = 4931539.0; 1163 1226 } 1164 else if (_crdTrafo == "Custom") {1227 else if (_crdTrafoStr == "Custom") { 1165 1228 meanSta(1) = 0.0; 1166 1229 meanSta(2) = 0.0; -
trunk/BNC/src/upload/bncrtnetuploadcaster.h
r9911 r10533 9 9 #include "../RTCM3/clock_and_orbit/clock_orbit_rtcm.h" 10 10 #include "../RTCM3/clock_and_orbit/clock_orbit_igs.h" 11 #include "../RTCM3/crs.h" 11 12 12 13 class bncEphUser; … … 55 56 bncEphUser* _ephUser; 56 57 QString _rtnetStreamBuffer; 57 QString _crdTrafo ;58 QString _crdTrafoStr; 58 59 SsrCorr* _ssrCorr; 59 60 QString _ssrFormat; … … 65 66 int _samplRtcmClkCorr; 66 67 double _samplRtcmEphCorr; 68 67 69 double _dx; 68 70 double _dy; … … 80 82 double _scr; 81 83 double _t0; 82 / / TODO: the following lines can be deleted if all parameters are updated regarding ITRF202084 /* TODO: the following lines can be deleted if all parameters are updated regarding ITRF2020*/ 83 85 double _dx14; 84 86 double _dy14;
Note:
See TracChangeset
for help on using the changeset viewer.