- Timestamp:
- Jun 3, 2015, 4:20:21 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
r6876 r6877 28 28 //////////////////////////////////////////////////////////////////////////// 29 29 bncRtnetUploadCaster::bncRtnetUploadCaster(const QString& mountpoint, 30 const QString& outHost, int outPort, 31 const QString& password, 32 const QString& crdTrafo, bool CoM, 33 const QString& sp3FileName, 34 const QString& rnxFileName, 35 int PID, int SID, int IOD, int iRow) : 36 bncUploadCaster(mountpoint, outHost, outPort, password, iRow, 0) { 30 const QString& outHost, int outPort, const QString& password, 31 const QString& crdTrafo, bool CoM, const QString& sp3FileName, 32 const QString& rnxFileName, int PID, int SID, int IOD, int iRow) : 33 bncUploadCaster(mountpoint, outHost, outPort, password, iRow, 0) { 37 34 38 35 if (!outHost.isEmpty()) { … … 49 46 } 50 47 51 _crdTrafo 52 _CoM 53 _PID 54 _SID 55 _IOD 48 _crdTrafo = crdTrafo; 49 _CoM = CoM; 50 _PID = PID; 51 _SID = SID; 52 _IOD = IOD; 56 53 57 54 // Member that receives the ephemeris … … 60 57 61 58 bncSettings settings; 62 QString intr= settings.value("uploadIntr").toString();63 QStringList hlp 59 QString intr = settings.value("uploadIntr").toString(); 60 QStringList hlp = settings.value("combineStreams").toStringList(); 64 61 _samplRtcmEphCorr = settings.value("uploadSamplRtcmEphCorr").toDouble(); 65 62 if (hlp.size() > 1) { // combination stream upload 66 _samplRtcmClkCorr = settings.value("cmbSampl").toInt(); 67 } else { // single stream upload or sp3 file generation 68 _samplRtcmClkCorr = 5; // default 69 } 70 int samplClkRnx = settings.value("uploadSamplClkRnx").toInt(); 71 int samplSp3 = settings.value("uploadSamplSp3").toInt() * 60; 63 _samplRtcmClkCorr = settings.value("cmbSampl").toInt(); 64 } 65 else { // single stream upload or sp3 file generation 66 _samplRtcmClkCorr = 5; // default 67 } 68 int samplClkRnx = settings.value("uploadSamplClkRnx").toInt(); 69 int samplSp3 = settings.value("uploadSamplSp3").toInt() * 60; 72 70 73 71 if (_samplRtcmEphCorr == 0.0) { … … 98 96 // Set Transformation Parameters 99 97 // ----------------------------- 100 if 101 _dx =0.0521;102 _dy =0.0493;103 _dz =-0.0585;104 _dxr = 105 _dyr = 106 _dzr = 107 _ox =0.000891;108 _oy =0.005390;109 _oz 110 _oxr = 111 _oyr = 98 if (_crdTrafo == "ETRF2000") { 99 _dx = 0.0521; 100 _dy = 0.0493; 101 _dz = -0.0585; 102 _dxr = 0.0001; 103 _dyr = 0.0001; 104 _dzr = -0.0018; 105 _ox = 0.000891; 106 _oy = 0.005390; 107 _oz = -0.008712; 108 _oxr = 0.000081; 109 _oyr = 0.000490; 112 110 _ozr = -0.000792; 113 _sc =1.34;114 _scr = 115 _t0 =2000.0;111 _sc = 1.34; 112 _scr = 0.08; 113 _t0 = 2000.0; 116 114 } 117 115 else if (_crdTrafo == "NAD83") { 118 _dx =0.99343;119 _dy =-1.90331;120 _dz =-0.52655;121 _dxr = 122 _dyr = 123 _dzr = 124 _ox 125 _oy 126 _oz 116 _dx = 0.99343; 117 _dy = -1.90331; 118 _dz = -0.52655; 119 _dxr = 0.00079; 120 _dyr = -0.00060; 121 _dzr = -0.00134; 122 _ox = -0.02591467; 123 _oy = -0.00942645; 124 _oz = -0.01159935; 127 125 _oxr = -0.00006667; 128 _oyr = 129 _ozr = 130 _sc =1.71504;131 _scr = 132 _t0 =1997.0;126 _oyr = 0.00075744; 127 _ozr = 0.00005133; 128 _sc = 1.71504; 129 _scr = -0.10201; 130 _t0 = 1997.0; 133 131 } 134 132 else if (_crdTrafo == "GDA94") { 135 _dx =-0.08468;136 _dy =-0.01942;137 _dz =0.03201;138 _dxr = 139 _dyr = 140 _dzr = 141 _ox =0.0004254;142 _oy 143 _oz 133 _dx = -0.08468; 134 _dy = -0.01942; 135 _dz = 0.03201; 136 _dxr = 0.00142; 137 _dyr = 0.00134; 138 _dzr = 0.00090; 139 _ox = 0.0004254; 140 _oy = -0.0022578; 141 _oz = -0.0024015; 144 142 _oxr = -0.0015461; 145 143 _oyr = -0.0011820; 146 144 _ozr = -0.0011551; 147 _sc =9.710;148 _scr = 149 _t0 =1994.0;145 _sc = 9.710; 146 _scr = 0.109; 147 _t0 = 1994.0; 150 148 } 151 149 else if (_crdTrafo == "SIRGAS2000") { 152 _dx =0.0020;153 _dy =0.0041;154 _dz =0.0039;155 _dxr = 156 _dyr = 157 _dzr = 158 _ox =0.000170;159 _oy 160 _oz =0.000070;161 _oxr = 162 _oyr = 163 _ozr = 164 _sc =-1.000;165 _scr = 166 _t0 =0000.0;150 _dx = 0.0020; 151 _dy = 0.0041; 152 _dz = 0.0039; 153 _dxr = 0.0000; 154 _dyr = 0.0000; 155 _dzr = 0.0000; 156 _ox = 0.000170; 157 _oy = -0.000030; 158 _oz = 0.000070; 159 _oxr = 0.000000; 160 _oyr = 0.000000; 161 _ozr = 0.000000; 162 _sc = -1.000; 163 _scr = 0.000; 164 _t0 = 0000.0; 167 165 } 168 166 else if (_crdTrafo == "SIRGAS95") { 169 _dx =0.0077;170 _dy =0.0058;171 _dz =-0.0138;172 _dxr = 173 _dyr = 174 _dzr = 175 _ox =0.000000;176 _oy =0.000000;177 _oz 178 _oxr = 179 _oyr = 180 _ozr = 181 _sc =1.570;182 _scr = 183 _t0 =0000.0;167 _dx = 0.0077; 168 _dy = 0.0058; 169 _dz = -0.0138; 170 _dxr = 0.0000; 171 _dyr = 0.0000; 172 _dzr = 0.0000; 173 _ox = 0.000000; 174 _oy = 0.000000; 175 _oz = -0.000030; 176 _oxr = 0.000000; 177 _oyr = 0.000000; 178 _ozr = 0.000000; 179 _sc = 1.570; 180 _scr = 0.000; 181 _t0 = 0000.0; 184 182 } 185 183 else if (_crdTrafo == "DREF91") { 186 _dx =-0.0118;187 _dy =0.1432;188 _dz =-0.1117;189 _dxr = 190 _dyr = 191 _dzr = 192 _ox =0.003291;193 _oy =0.006190;194 _oz 195 _oxr = 196 _oyr = 184 _dx = -0.0118; 185 _dy = 0.1432; 186 _dz = -0.1117; 187 _dxr = 0.0001; 188 _dyr = 0.0001; 189 _dzr = -0.0018; 190 _ox = 0.003291; 191 _oy = 0.006190; 192 _oz = -0.011012; 193 _oxr = 0.000081; 194 _oyr = 0.000490; 197 195 _ozr = -0.000792; 198 _sc =12.24;199 _scr = 200 _t0 =2000.0;196 _sc = 12.24; 197 _scr = 0.08; 198 _t0 = 2000.0; 201 199 } 202 200 else if (_crdTrafo == "Custom") { 203 _dx 204 _dy 205 _dz 201 _dx = settings.value("trafo_dx").toDouble(); 202 _dy = settings.value("trafo_dy").toDouble(); 203 _dz = settings.value("trafo_dz").toDouble(); 206 204 _dxr = settings.value("trafo_dxr").toDouble(); 207 205 _dyr = settings.value("trafo_dyr").toDouble(); 208 206 _dzr = settings.value("trafo_dzr").toDouble(); 209 _ox 210 _oy 211 _oz 207 _ox = settings.value("trafo_ox").toDouble(); 208 _oy = settings.value("trafo_oy").toDouble(); 209 _oz = settings.value("trafo_oz").toDouble(); 212 210 _oxr = settings.value("trafo_oxr").toDouble(); 213 211 _oyr = settings.value("trafo_oyr").toDouble(); 214 212 _ozr = settings.value("trafo_ozr").toDouble(); 215 _sc 213 _sc = settings.value("trafo_sc").toDouble(); 216 214 _scr = settings.value("trafo_scr").toDouble(); 217 _t0 215 _t0 = settings.value("trafo_t0").toDouble(); 218 216 } 219 217 } … … 256 254 } 257 255 else { 258 lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', QString::SkipEmptyParts); 259 _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd+3); 256 lines = _rtnetStreamBuffer.left(iEpoEnd).split('\n', 257 QString::SkipEmptyParts); 258 _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iEpoEnd + 3); 260 259 } 261 260 … … 268 267 int iLastEOL = _rtnetStreamBuffer.lastIndexOf('\n'); 269 268 if (iLastEOL != -1) { 270 _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iLastEOL +1);269 _rtnetStreamBuffer = _rtnetStreamBuffer.mid(iLastEOL + 1); 271 270 } 272 271 … … 275 274 QTextStream in(lines[0].toAscii()); 276 275 QString hlp; 277 int 278 double 276 int year, month, day, hour, min; 277 double sec; 279 278 in >> hlp >> year >> month >> day >> hour >> min >> sec; 280 bncTime epoTime; epoTime.set( year, month, day, hour, min, sec); 281 282 emit(newMessage("bncRtnetUploadCaster: decode " + 283 QByteArray(epoTime.datestr().c_str()) + " " + 284 QByteArray(epoTime.timestr().c_str()) + " " + 285 _casterID.toAscii(), false)); 279 bncTime epoTime; 280 epoTime.set(year, month, day, hour, min, sec); 281 282 emit(newMessage( 283 "bncRtnetUploadCaster: decode " + QByteArray(epoTime.datestr().c_str()) 284 + " " + QByteArray(epoTime.timestr().c_str()) + " " 285 + _casterID.toAscii(), false)); 286 286 287 287 struct ClockOrbit co; … … 291 291 co.EpochTime[CLOCKORBIT_SATGLONASS] = static_cast<int>(fmod(gt, 86400.0)); 292 292 co.EpochTime[CLOCKORBIT_SATGALILEO] = static_cast<int>(epoTime.gpssec()); 293 co.EpochTime[CLOCKORBIT_SATQZSS] 293 co.EpochTime[CLOCKORBIT_SATQZSS] = static_cast<int>(epoTime.gpssec()); 294 294 co.EpochTime[CLOCKORBIT_SATSBAS] = static_cast<int>(epoTime.gpssec()); 295 295 co.EpochTime[CLOCKORBIT_SATBDS] = static_cast<int>(epoTime.bdssec()); 296 296 co.Supplied[COBOFS_CLOCK] = 1; 297 297 co.Supplied[COBOFS_ORBIT] = 1; 298 co.SatRefDatum 299 co.SSRIOD 298 co.SatRefDatum = DATUM_ITRF; 299 co.SSRIOD = _IOD; 300 300 co.SSRProviderID = _PID; // 256 .. BKG, 257 ... EUREF 301 301 co.SSRSolutionID = _SID; … … 303 303 struct CodeBias bias; 304 304 memset(&bias, 0, sizeof(bias)); 305 bias.EpochTime[CLOCKORBIT_SATGPS] 305 bias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS]; 306 306 bias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS]; 307 307 bias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO]; 308 bias.EpochTime[CLOCKORBIT_SATQZSS] 309 bias.EpochTime[CLOCKORBIT_SATSBAS] 310 bias.EpochTime[CLOCKORBIT_SATBDS] 311 bias.SSRIOD 308 bias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS]; 309 bias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS]; 310 bias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS]; 311 bias.SSRIOD = _IOD; 312 312 bias.SSRProviderID = _PID; 313 313 bias.SSRSolutionID = _SID; … … 317 317 unsigned int dispInd = 0; 318 318 unsigned int mwInd = 0; 319 phasebias.EpochTime[CLOCKORBIT_SATGPS] 319 phasebias.EpochTime[CLOCKORBIT_SATGPS] = co.EpochTime[CLOCKORBIT_SATGPS]; 320 320 phasebias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS]; 321 321 phasebias.EpochTime[CLOCKORBIT_SATGALILEO] = co.EpochTime[CLOCKORBIT_SATGALILEO]; 322 phasebias.EpochTime[CLOCKORBIT_SATQZSS] 323 phasebias.EpochTime[CLOCKORBIT_SATSBAS] 324 phasebias.EpochTime[CLOCKORBIT_SATBDS] 325 phasebias.SSRIOD 322 phasebias.EpochTime[CLOCKORBIT_SATQZSS] = co.EpochTime[CLOCKORBIT_SATQZSS]; 323 phasebias.EpochTime[CLOCKORBIT_SATSBAS] = co.EpochTime[CLOCKORBIT_SATSBAS]; 324 phasebias.EpochTime[CLOCKORBIT_SATBDS] = co.EpochTime[CLOCKORBIT_SATBDS]; 325 phasebias.SSRIOD = _IOD; 326 326 phasebias.SSRProviderID = _PID; 327 327 phasebias.SSRSolutionID = _SID; … … 330 330 memset(&vtec, 0, sizeof(vtec)); 331 331 vtec.EpochTime = static_cast<int>(epoTime.gpssec()); 332 vtec.SSRIOD 332 vtec.SSRIOD = _IOD; 333 333 vtec.SSRProviderID = _PID; 334 334 vtec.SSRSolutionID = _SID; 335 336 335 337 336 // Default Update Interval … … 350 349 } 351 350 352 co.UpdateInterval 351 co.UpdateInterval = clkUpdInd; 353 352 bias.UpdateInterval = clkUpdInd; 354 353 phasebias.UpdateInterval = clkUpdInd; … … 356 355 for (int ii = 1; ii < lines.size(); ii++) { 357 356 358 QString 357 QString key; // prn or key VTEC, IND (phase bias indicators) 359 358 ColumnVector rtnAPC; 360 359 ColumnVector rtnVel; 361 360 ColumnVector rtnCoM; 362 double 363 t_prn 361 double rtnClk; 362 t_prn prn; 364 363 365 364 QTextStream in(lines[ii].toAscii()); … … 368 367 369 368 // non-satellite specific parameters 370 if 369 if (key.contains("IND", Qt::CaseSensitive)) { 371 370 in >> dispInd >> mwInd; 372 371 continue; … … 377 376 int dummy; 378 377 in >> dummy >> vtec.Layers[ll].Degree >> vtec.Layers[ll].Order 379 >> vtec.Layers[ll].Height;378 >> vtec.Layers[ll].Height; 380 379 ii++; 381 380 for (unsigned iDeg = 0; iDeg < vtec.Layers[ll].Degree; iDeg++) { … … 394 393 continue; 395 394 } 396 char sys = key.mid(0,1).at(0).toAscii(); 397 int number = key.mid(1,2).toInt(); 398 int flags = 0; 399 if (sys == 'E') { flags = 1;} // I/NAV 395 // satellite specific parameters 396 char sys = key.mid(0, 1).at(0).toAscii(); 397 int number = key.mid(1, 2).toInt(); 398 int flags = 0; 399 if (sys == 'E') { // I/NAV 400 flags = 1; 401 } 400 402 prn.set(sys, number, flags); 401 403 QString prnInternalStr = QString::fromStdString(prn.toInternalString()); 402 QString prnStr = QString::fromStdString(prn.toString()); 404 QString prnStr = QString::fromStdString(prn.toString()); 405 403 406 const t_eph* ephLast = _ephUser->ephLast(prnInternalStr); 404 407 const t_eph* ephPrev = _ephUser->ephPrev(prnInternalStr); 405 const t_eph* eph 408 const t_eph* eph = ephLast; 406 409 407 410 if (eph) { … … 410 413 // ---------------------------------------------------- 411 414 const int MINAGE = 60; // seconds 412 if (ephPrev && eph->receptDateTime().isValid() &&413 eph->receptDateTime().secsTo(currentDateAndTimeGPS()) < MINAGE) {415 if (ephPrev && eph->receptDateTime().isValid() 416 && eph->receptDateTime().secsTo(currentDateAndTimeGPS()) < MINAGE) { 414 417 eph = ephPrev; 415 418 } … … 425 428 if (_usedEph->contains(prnInternalStr)) { 426 429 const t_eph* usedEph = _usedEph->value(prnInternalStr); 427 if 430 if (usedEph == ephLast) { 428 431 eph = ephLast; 429 432 } … … 444 447 while (true) { 445 448 QString key; 446 int 449 int numVal = 0; 447 450 in >> key; 448 451 if (in.status() != QTextStream::Ok) { 449 452 break; 450 453 } 451 if 454 if (key == "APC") { 452 455 in >> numVal; 453 456 rtnAPC.ReSize(3); … … 458 461 else if (key == "Clk") { 459 462 in >> numVal; 460 if (numVal == 1)463 if (numVal == 1) 461 464 in >> rtnClk; 462 465 } … … 479 482 for (int ii = 0; ii < numVal; ii++) { 480 483 QString type; 481 double 484 double value; 482 485 in >> type >> value; 483 486 codeBiases[type] = value; … … 494 497 for (int ii = 0; ii < numVal; ii++) { 495 498 phaseBiasSignal pb; 496 in >> pb.type >> pb.bias >> pb.intInd >> pb.wlInd 497 >> pb.discCount; 499 in >> pb.type >> pb.bias >> pb.intInd >> pb.wlInd >> pb.discCount; 498 500 phaseBiasList.append(pb); 499 501 } … … 508 510 509 511 struct ClockOrbit::SatData* sd = 0; 510 if 512 if (prn.system() == 'G') { 511 513 sd = co.Sat + co.NumberOfSat[CLOCKORBIT_SATGPS]; 512 514 ++co.NumberOfSat[CLOCKORBIT_SATGPS]; 513 515 } 514 516 else if (prn.system() == 'R') { 515 sd = co.Sat + CLOCKORBIT_NUMGPS 516 + co.NumberOfSat[CLOCKORBIT_SATGLONASS]; 517 sd = co.Sat + CLOCKORBIT_NUMGPS + co.NumberOfSat[CLOCKORBIT_SATGLONASS]; 517 518 ++co.NumberOfSat[CLOCKORBIT_SATGLONASS]; 518 519 } … … 523 524 } 524 525 else if (prn.system() == 'J') { 525 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO526 + co.NumberOfSat[CLOCKORBIT_SATQZSS];526 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 527 + CLOCKORBIT_NUMGALILEO + co.NumberOfSat[CLOCKORBIT_SATQZSS]; 527 528 ++co.NumberOfSat[CLOCKORBIT_SATQZSS]; 528 529 } 529 530 else if (prn.system() == 'S') { 530 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO531 + CLOCKORBIT_NUM QZSS531 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 532 + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS 532 533 + co.NumberOfSat[CLOCKORBIT_SATSBAS]; 533 534 ++co.NumberOfSat[CLOCKORBIT_SATSBAS]; 534 535 } 535 536 else if (prn.system() == 'C') { 536 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO537 + CLOCKORBIT_NUM QZSS + CLOCKORBIT_NUMSBAS537 sd = co.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 538 + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS 538 539 + co.NumberOfSat[CLOCKORBIT_SATBDS]; 539 540 ++co.NumberOfSat[CLOCKORBIT_SATBDS]; … … 541 542 if (sd) { 542 543 QString outLine; 543 processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, 544 rtnAPC,rtnClk, rtnVel, rtnCoM, sd, outLine);544 processSatellite(eph, epoTime.gpsw(), epoTime.gpssec(), prnStr, rtnAPC, 545 rtnClk, rtnVel, rtnCoM, sd, outLine); 545 546 } 546 547 … … 548 549 // ----------- 549 550 struct CodeBias::BiasSat* biasSat = 0; 550 if (prn.system() == 'G') { 551 biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS]; 552 ++bias.NumberOfSat[CLOCKORBIT_SATGPS]; 553 } 554 else if (prn.system() == 'R') { 555 biasSat = bias.Sat + CLOCKORBIT_NUMGPS 556 + bias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 557 ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 558 } 559 else if (prn.system() == 'E') { 560 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 561 + bias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 562 ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 563 } 564 else if (prn.system() == 'J') { 565 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 566 + bias.NumberOfSat[CLOCKORBIT_SATQZSS]; 567 ++bias.NumberOfSat[CLOCKORBIT_SATQZSS]; 568 } 569 else if (prn.system() == 'S') { 570 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 571 + CLOCKORBIT_NUMQZSS 572 + bias.NumberOfSat[CLOCKORBIT_SATSBAS]; 573 ++bias.NumberOfSat[CLOCKORBIT_SATSBAS]; 574 } 575 else if (prn.system() == 'C') { 576 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 577 + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS 578 + bias.NumberOfSat[CLOCKORBIT_SATBDS]; 579 ++bias.NumberOfSat[CLOCKORBIT_SATBDS]; 551 if (!codeBiases.isEmpty()) { 552 if (prn.system() == 'G') { 553 biasSat = bias.Sat + bias.NumberOfSat[CLOCKORBIT_SATGPS]; 554 ++bias.NumberOfSat[CLOCKORBIT_SATGPS]; 555 } 556 else if (prn.system() == 'R') { 557 biasSat = bias.Sat + CLOCKORBIT_NUMGPS 558 + bias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 559 ++bias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 560 } 561 else if (prn.system() == 'E') { 562 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 563 + bias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 564 ++bias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 565 } 566 else if (prn.system() == 'J') { 567 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 568 + CLOCKORBIT_NUMGALILEO + bias.NumberOfSat[CLOCKORBIT_SATQZSS]; 569 ++bias.NumberOfSat[CLOCKORBIT_SATQZSS]; 570 } 571 else if (prn.system() == 'S') { 572 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 573 + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS 574 + bias.NumberOfSat[CLOCKORBIT_SATSBAS]; 575 ++bias.NumberOfSat[CLOCKORBIT_SATSBAS]; 576 } 577 else if (prn.system() == 'C') { 578 biasSat = bias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 579 + CLOCKORBIT_NUMGALILEO + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS 580 + bias.NumberOfSat[CLOCKORBIT_SATBDS]; 581 ++bias.NumberOfSat[CLOCKORBIT_SATBDS]; 582 } 580 583 } 581 584 … … 583 586 biasSat->ID = prn.number(); 584 587 biasSat->NumberOfCodeBiases = 0; 585 if 588 if (prn.system() == 'G') { 586 589 QMapIterator<QString, double> it(codeBiases); 587 590 while (it.hasNext()) { 588 591 it.next(); 589 if (it.key() == "1C") { 590 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 592 if (it.key() == "1C") { 593 int ii = biasSat->NumberOfCodeBiases; 594 if (ii >= CLOCKORBIT_NUMBIAS) 595 break; 591 596 biasSat->NumberOfCodeBiases += 1; 592 597 biasSat->Biases[ii].Type = CODETYPEGPS_L1_CA; … … 594 599 } 595 600 else if (it.key() == "1P") { 596 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 601 int ii = biasSat->NumberOfCodeBiases; 602 if (ii >= CLOCKORBIT_NUMBIAS) 603 break; 597 604 biasSat->NumberOfCodeBiases += 1; 598 605 biasSat->Biases[ii].Type = CODETYPEGPS_L1_P; … … 600 607 } 601 608 else if (it.key() == "1W") { 602 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 609 int ii = biasSat->NumberOfCodeBiases; 610 if (ii >= CLOCKORBIT_NUMBIAS) 611 break; 603 612 biasSat->NumberOfCodeBiases += 1; 604 613 biasSat->Biases[ii].Type = CODETYPEGPS_L1_Z; … … 606 615 } 607 616 else if (it.key() == "2C") { 608 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 617 int ii = biasSat->NumberOfCodeBiases; 618 if (ii >= CLOCKORBIT_NUMBIAS) 619 break; 609 620 biasSat->NumberOfCodeBiases += 1; 610 621 biasSat->Biases[ii].Type = CODETYPEGPS_L2_CA; … … 612 623 } 613 624 else if (it.key() == "2D") { 614 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 625 int ii = biasSat->NumberOfCodeBiases; 626 if (ii >= CLOCKORBIT_NUMBIAS) 627 break; 615 628 biasSat->NumberOfCodeBiases += 1; 616 629 biasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS; … … 618 631 } 619 632 else if (it.key() == "2S") { 620 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 633 int ii = biasSat->NumberOfCodeBiases; 634 if (ii >= CLOCKORBIT_NUMBIAS) 635 break; 621 636 biasSat->NumberOfCodeBiases += 1; 622 637 biasSat->Biases[ii].Type = CODETYPEGPS_L2_CM; … … 624 639 } 625 640 else if (it.key() == "2L") { 626 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 641 int ii = biasSat->NumberOfCodeBiases; 642 if (ii >= CLOCKORBIT_NUMBIAS) 643 break; 627 644 biasSat->NumberOfCodeBiases += 1; 628 645 biasSat->Biases[ii].Type = CODETYPEGPS_L2_CL; … … 630 647 } 631 648 else if (it.key() == "2X") { 632 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 649 int ii = biasSat->NumberOfCodeBiases; 650 if (ii >= CLOCKORBIT_NUMBIAS) 651 break; 633 652 biasSat->NumberOfCodeBiases += 1; 634 653 biasSat->Biases[ii].Type = CODETYPEGPS_L2_CML; … … 636 655 } 637 656 else if (it.key() == "2P") { 638 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 657 int ii = biasSat->NumberOfCodeBiases; 658 if (ii >= CLOCKORBIT_NUMBIAS) 659 break; 639 660 biasSat->NumberOfCodeBiases += 1; 640 661 biasSat->Biases[ii].Type = CODETYPEGPS_L2_P; … … 642 663 } 643 664 else if (it.key() == "2W") { 644 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 665 int ii = biasSat->NumberOfCodeBiases; 666 if (ii >= CLOCKORBIT_NUMBIAS) 667 break; 645 668 biasSat->NumberOfCodeBiases += 1; 646 669 biasSat->Biases[ii].Type = CODETYPEGPS_L2_Z; … … 648 671 } 649 672 else if (it.key() == "5I") { 650 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 673 int ii = biasSat->NumberOfCodeBiases; 674 if (ii >= CLOCKORBIT_NUMBIAS) 675 break; 651 676 biasSat->NumberOfCodeBiases += 1; 652 677 biasSat->Biases[ii].Type = CODETYPEGPS_L5_I; … … 654 679 } 655 680 else if (it.key() == "5Q") { 656 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 681 int ii = biasSat->NumberOfCodeBiases; 682 if (ii >= CLOCKORBIT_NUMBIAS) 683 break; 657 684 biasSat->NumberOfCodeBiases += 1; 658 685 biasSat->Biases[ii].Type = CODETYPEGPS_L5_Q; … … 660 687 } 661 688 else if (it.key() == "5X") { 662 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 689 int ii = biasSat->NumberOfCodeBiases; 690 if (ii >= CLOCKORBIT_NUMBIAS) 691 break; 663 692 biasSat->NumberOfCodeBiases += 1; 664 693 biasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ; … … 671 700 while (it.hasNext()) { 672 701 it.next(); 673 if (it.key() == "1C") { 674 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 702 if (it.key() == "1C") { 703 int ii = biasSat->NumberOfCodeBiases; 704 if (ii >= CLOCKORBIT_NUMBIAS) 705 break; 675 706 biasSat->NumberOfCodeBiases += 1; 676 707 biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA; … … 678 709 } 679 710 else if (it.key() == "1P") { 680 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 711 int ii = biasSat->NumberOfCodeBiases; 712 if (ii >= CLOCKORBIT_NUMBIAS) 713 break; 681 714 biasSat->NumberOfCodeBiases += 1; 682 715 biasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P; … … 684 717 } 685 718 else if (it.key() == "2C") { 686 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 719 int ii = biasSat->NumberOfCodeBiases; 720 if (ii >= CLOCKORBIT_NUMBIAS) 721 break; 687 722 biasSat->NumberOfCodeBiases += 1; 688 723 biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA; … … 690 725 } 691 726 else if (it.key() == "2P") { 692 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 727 int ii = biasSat->NumberOfCodeBiases; 728 if (ii >= CLOCKORBIT_NUMBIAS) 729 break; 693 730 biasSat->NumberOfCodeBiases += 1; 694 731 biasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P; … … 701 738 while (it.hasNext()) { 702 739 it.next(); 703 if (it.key() == "1A") { 704 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 740 if (it.key() == "1A") { 741 int ii = biasSat->NumberOfCodeBiases; 742 if (ii >= CLOCKORBIT_NUMBIAS) 743 break; 705 744 biasSat->NumberOfCodeBiases += 1; 706 745 biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A; … … 708 747 } 709 748 else if (it.key() == "1B") { 710 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 749 int ii = biasSat->NumberOfCodeBiases; 750 if (ii >= CLOCKORBIT_NUMBIAS) 751 break; 711 752 biasSat->NumberOfCodeBiases += 1; 712 753 biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B; … … 714 755 } 715 756 else if (it.key() == "1C") { 716 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 757 int ii = biasSat->NumberOfCodeBiases; 758 if (ii >= CLOCKORBIT_NUMBIAS) 759 break; 717 760 biasSat->NumberOfCodeBiases += 1; 718 761 biasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C; … … 720 763 } 721 764 else if (it.key() == "5I") { 722 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 765 int ii = biasSat->NumberOfCodeBiases; 766 if (ii >= CLOCKORBIT_NUMBIAS) 767 break; 723 768 biasSat->NumberOfCodeBiases += 1; 724 769 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I; … … 726 771 } 727 772 else if (it.key() == "5Q") { 728 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 773 int ii = biasSat->NumberOfCodeBiases; 774 if (ii >= CLOCKORBIT_NUMBIAS) 775 break; 729 776 biasSat->NumberOfCodeBiases += 1; 730 777 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q; … … 732 779 } 733 780 else if (it.key() == "7I") { 734 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 781 int ii = biasSat->NumberOfCodeBiases; 782 if (ii >= CLOCKORBIT_NUMBIAS) 783 break; 735 784 biasSat->NumberOfCodeBiases += 1; 736 785 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I; … … 738 787 } 739 788 else if (it.key() == "7Q") { 740 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 789 int ii = biasSat->NumberOfCodeBiases; 790 if (ii >= CLOCKORBIT_NUMBIAS) 791 break; 741 792 biasSat->NumberOfCodeBiases += 1; 742 793 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q; … … 744 795 } 745 796 else if (it.key() == "8I") { 746 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 797 int ii = biasSat->NumberOfCodeBiases; 798 if (ii >= CLOCKORBIT_NUMBIAS) 799 break; 747 800 biasSat->NumberOfCodeBiases += 1; 748 801 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I; … … 750 803 } 751 804 else if (it.key() == "8Q") { 752 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 805 int ii = biasSat->NumberOfCodeBiases; 806 if (ii >= CLOCKORBIT_NUMBIAS) 807 break; 753 808 biasSat->NumberOfCodeBiases += 1; 754 809 biasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q; … … 756 811 } 757 812 else if (it.key() == "6A") { 758 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 813 int ii = biasSat->NumberOfCodeBiases; 814 if (ii >= CLOCKORBIT_NUMBIAS) 815 break; 759 816 biasSat->NumberOfCodeBiases += 1; 760 817 biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A; … … 762 819 } 763 820 else if (it.key() == "6B") { 764 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 821 int ii = biasSat->NumberOfCodeBiases; 822 if (ii >= CLOCKORBIT_NUMBIAS) 823 break; 765 824 biasSat->NumberOfCodeBiases += 1; 766 825 biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B; … … 768 827 } 769 828 else if (it.key() == "6C") { 770 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 829 int ii = biasSat->NumberOfCodeBiases; 830 if (ii >= CLOCKORBIT_NUMBIAS) 831 break; 771 832 biasSat->NumberOfCodeBiases += 1; 772 833 biasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C; … … 779 840 while (it.hasNext()) { 780 841 it.next(); 781 if (it.key() == "1C") { 782 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 842 if (it.key() == "1C") { 843 int ii = biasSat->NumberOfCodeBiases; 844 if (ii >= CLOCKORBIT_NUMBIAS) 845 break; 783 846 biasSat->NumberOfCodeBiases += 1; 784 847 biasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA; … … 786 849 } 787 850 else if (it.key() == "1S") { 788 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 851 int ii = biasSat->NumberOfCodeBiases; 852 if (ii >= CLOCKORBIT_NUMBIAS) 853 break; 789 854 biasSat->NumberOfCodeBiases += 1; 790 855 biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D; … … 792 857 } 793 858 else if (it.key() == "1L") { 794 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 859 int ii = biasSat->NumberOfCodeBiases; 860 if (ii >= CLOCKORBIT_NUMBIAS) 861 break; 795 862 biasSat->NumberOfCodeBiases += 1; 796 863 biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P; … … 798 865 } 799 866 else if (it.key() == "1X") { 800 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 867 int ii = biasSat->NumberOfCodeBiases; 868 if (ii >= CLOCKORBIT_NUMBIAS) 869 break; 801 870 biasSat->NumberOfCodeBiases += 1; 802 871 biasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP; … … 804 873 } 805 874 else if (it.key() == "2S") { 806 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 875 int ii = biasSat->NumberOfCodeBiases; 876 if (ii >= CLOCKORBIT_NUMBIAS) 877 break; 807 878 biasSat->NumberOfCodeBiases += 1; 808 879 biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CM; … … 810 881 } 811 882 else if (it.key() == "2L") { 812 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 883 int ii = biasSat->NumberOfCodeBiases; 884 if (ii >= CLOCKORBIT_NUMBIAS) 885 break; 813 886 biasSat->NumberOfCodeBiases += 1; 814 887 biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CL; … … 816 889 } 817 890 else if (it.key() == "2X") { 818 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 891 int ii = biasSat->NumberOfCodeBiases; 892 if (ii >= CLOCKORBIT_NUMBIAS) 893 break; 819 894 biasSat->NumberOfCodeBiases += 1; 820 895 biasSat->Biases[ii].Type = CODETYPEQZSS_L2_CML; … … 822 897 } 823 898 else if (it.key() == "5I") { 824 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 899 int ii = biasSat->NumberOfCodeBiases; 900 if (ii >= CLOCKORBIT_NUMBIAS) 901 break; 825 902 biasSat->NumberOfCodeBiases += 1; 826 903 biasSat->Biases[ii].Type = CODETYPEQZSS_L5_I; … … 828 905 } 829 906 else if (it.key() == "5Q") { 830 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 907 int ii = biasSat->NumberOfCodeBiases; 908 if (ii >= CLOCKORBIT_NUMBIAS) 909 break; 831 910 biasSat->NumberOfCodeBiases += 1; 832 911 biasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q; … … 834 913 } 835 914 else if (it.key() == "5X") { 836 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 915 int ii = biasSat->NumberOfCodeBiases; 916 if (ii >= CLOCKORBIT_NUMBIAS) 917 break; 837 918 biasSat->NumberOfCodeBiases += 1; 838 919 biasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ; … … 840 921 } 841 922 else if (it.key() == "6S") { 842 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 923 int ii = biasSat->NumberOfCodeBiases; 924 if (ii >= CLOCKORBIT_NUMBIAS) 925 break; 843 926 biasSat->NumberOfCodeBiases += 1; 844 927 biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S; … … 846 929 } 847 930 else if (it.key() == "6L") { 848 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 931 int ii = biasSat->NumberOfCodeBiases; 932 if (ii >= CLOCKORBIT_NUMBIAS) 933 break; 849 934 biasSat->NumberOfCodeBiases += 1; 850 935 biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L; … … 852 937 } 853 938 else if (it.key() == "6X") { 854 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 939 int ii = biasSat->NumberOfCodeBiases; 940 if (ii >= CLOCKORBIT_NUMBIAS) 941 break; 855 942 biasSat->NumberOfCodeBiases += 1; 856 943 biasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL; … … 863 950 while (it.hasNext()) { 864 951 it.next(); 865 if (it.key() == "1C") { 866 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 952 if (it.key() == "1C") { 953 int ii = biasSat->NumberOfCodeBiases; 954 if (ii >= CLOCKORBIT_NUMBIAS) 955 break; 867 956 biasSat->NumberOfCodeBiases += 1; 868 957 biasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA; … … 870 959 } 871 960 else if (it.key() == "5I") { 872 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 961 int ii = biasSat->NumberOfCodeBiases; 962 if (ii >= CLOCKORBIT_NUMBIAS) 963 break; 873 964 biasSat->NumberOfCodeBiases += 1; 874 965 biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I; … … 876 967 } 877 968 else if (it.key() == "5Q") { 878 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 969 int ii = biasSat->NumberOfCodeBiases; 970 if (ii >= CLOCKORBIT_NUMBIAS) 971 break; 879 972 biasSat->NumberOfCodeBiases += 1; 880 973 biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q; … … 882 975 } 883 976 else if (it.key() == "5X") { 884 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 977 int ii = biasSat->NumberOfCodeBiases; 978 if (ii >= CLOCKORBIT_NUMBIAS) 979 break; 885 980 biasSat->NumberOfCodeBiases += 1; 886 981 biasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ; … … 893 988 while (it.hasNext()) { 894 989 it.next(); 895 if (it.key() == "2I") { 896 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 990 if (it.key() == "2I") { 991 int ii = biasSat->NumberOfCodeBiases; 992 if (ii >= CLOCKORBIT_NUMBIAS) 993 break; 897 994 biasSat->NumberOfCodeBiases += 1; 898 995 biasSat->Biases[ii].Type = CODETYPE_BDS_B1_I; … … 900 997 } 901 998 else if (it.key() == "2Q") { 902 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 999 int ii = biasSat->NumberOfCodeBiases; 1000 if (ii >= CLOCKORBIT_NUMBIAS) 1001 break; 903 1002 biasSat->NumberOfCodeBiases += 1; 904 1003 biasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q; … … 906 1005 } 907 1006 else if (it.key() == "2X") { 908 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1007 int ii = biasSat->NumberOfCodeBiases; 1008 if (ii >= CLOCKORBIT_NUMBIAS) 1009 break; 909 1010 biasSat->NumberOfCodeBiases += 1; 910 1011 biasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ; … … 912 1013 } 913 1014 else if (it.key() == "6I") { 914 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1015 int ii = biasSat->NumberOfCodeBiases; 1016 if (ii >= CLOCKORBIT_NUMBIAS) 1017 break; 915 1018 biasSat->NumberOfCodeBiases += 1; 916 1019 biasSat->Biases[ii].Type = CODETYPE_BDS_B3_I; … … 918 1021 } 919 1022 else if (it.key() == "6Q") { 920 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1023 int ii = biasSat->NumberOfCodeBiases; 1024 if (ii >= CLOCKORBIT_NUMBIAS) 1025 break; 921 1026 biasSat->NumberOfCodeBiases += 1; 922 1027 biasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q; … … 924 1029 } 925 1030 else if (it.key() == "6X") { 926 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1031 int ii = biasSat->NumberOfCodeBiases; 1032 if (ii >= CLOCKORBIT_NUMBIAS) 1033 break; 927 1034 biasSat->NumberOfCodeBiases += 1; 928 1035 biasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ; … … 930 1037 } 931 1038 else if (it.key() == "7I") { 932 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1039 int ii = biasSat->NumberOfCodeBiases; 1040 if (ii >= CLOCKORBIT_NUMBIAS) 1041 break; 933 1042 biasSat->NumberOfCodeBiases += 1; 934 1043 biasSat->Biases[ii].Type = CODETYPE_BDS_B2_I; … … 936 1045 } 937 1046 else if (it.key() == "7Q") { 938 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1047 int ii = biasSat->NumberOfCodeBiases; 1048 if (ii >= CLOCKORBIT_NUMBIAS) 1049 break; 939 1050 biasSat->NumberOfCodeBiases += 1; 940 1051 biasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q; … … 942 1053 } 943 1054 else if (it.key() == "7X") { 944 int ii = biasSat->NumberOfCodeBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1055 int ii = biasSat->NumberOfCodeBiases; 1056 if (ii >= CLOCKORBIT_NUMBIAS) 1057 break; 945 1058 biasSat->NumberOfCodeBiases += 1; 946 1059 biasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ; … … 953 1066 // ------------ 954 1067 struct PhaseBias::PhaseBiasSat* phasebiasSat = 0; 955 if (prn.system() == 'G') { 956 phasebiasSat = phasebias.Sat + phasebias.NumberOfSat[CLOCKORBIT_SATGPS]; 957 ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS]; 958 } 959 else if (prn.system() == 'R') { 960 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 961 + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 962 ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 963 } 964 else if (prn.system() == 'E') { 965 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS 966 + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 967 ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 968 } 969 else if (prn.system() == 'J') { 970 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 971 + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS]; 972 ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS]; 973 } 974 else if (prn.system() == 'S') { 975 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 976 + CLOCKORBIT_NUMQZSS 977 + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS]; 978 ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS]; 979 } 980 else if (prn.system() == 'C') { 981 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 982 + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS 983 + phasebias.NumberOfSat[CLOCKORBIT_SATBDS]; 984 ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS]; 1068 if (!phaseBiasList.isEmpty()) { 1069 if (prn.system() == 'G') { 1070 phasebiasSat = phasebias.Sat 1071 + phasebias.NumberOfSat[CLOCKORBIT_SATGPS]; 1072 ++phasebias.NumberOfSat[CLOCKORBIT_SATGPS]; 1073 } 1074 else if (prn.system() == 'R') { 1075 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 1076 + phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 1077 ++phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS]; 1078 } 1079 else if (prn.system() == 'E') { 1080 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 1081 + CLOCKORBIT_NUMGLONASS 1082 + phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 1083 ++phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO]; 1084 } 1085 else if (prn.system() == 'J') { 1086 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 1087 + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 1088 + phasebias.NumberOfSat[CLOCKORBIT_SATQZSS]; 1089 ++phasebias.NumberOfSat[CLOCKORBIT_SATQZSS]; 1090 } 1091 else if (prn.system() == 'S') { 1092 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 1093 + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 1094 + CLOCKORBIT_NUMQZSS + phasebias.NumberOfSat[CLOCKORBIT_SATSBAS]; 1095 ++phasebias.NumberOfSat[CLOCKORBIT_SATSBAS]; 1096 } 1097 else if (prn.system() == 'C') { 1098 phasebiasSat = phasebias.Sat + CLOCKORBIT_NUMGPS 1099 + CLOCKORBIT_NUMGLONASS + CLOCKORBIT_NUMGALILEO 1100 + CLOCKORBIT_NUMQZSS + CLOCKORBIT_NUMSBAS 1101 + phasebias.NumberOfSat[CLOCKORBIT_SATBDS]; 1102 ++phasebias.NumberOfSat[CLOCKORBIT_SATBDS]; 1103 } 985 1104 } 986 1105 … … 992 1111 phasebiasSat->YawAngle = pbSat.yA; 993 1112 phasebiasSat->YawRate = pbSat.yR; 994 if 1113 if (prn.system() == 'G') { 995 1114 QListIterator<phaseBiasSignal> it(phaseBiasList); 996 1115 while (it.hasNext()) { 997 1116 const phaseBiasSignal &pbSig = it.next(); 998 if (pbSig.type == "1C") { 999 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1117 if (pbSig.type == "1C") { 1118 int ii = phasebiasSat->NumberOfPhaseBiases; 1119 if (ii >= CLOCKORBIT_NUMBIAS) 1120 break; 1000 1121 phasebiasSat->NumberOfPhaseBiases += 1; 1001 1122 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_CA; 1002 1123 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1003 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1004 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1005 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1124 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1125 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1126 pbSig.wlInd; 1127 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1128 pbSig.discCount; 1006 1129 } 1007 1130 else if (pbSig.type == "1P") { 1008 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1131 int ii = phasebiasSat->NumberOfPhaseBiases; 1132 if (ii >= CLOCKORBIT_NUMBIAS) 1133 break; 1009 1134 phasebiasSat->NumberOfPhaseBiases += 1; 1010 1135 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_P; 1011 1136 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1012 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1013 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1014 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1137 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1138 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1139 pbSig.wlInd; 1140 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1141 pbSig.discCount; 1015 1142 } 1016 1143 else if (pbSig.type == "1W") { 1017 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1144 int ii = phasebiasSat->NumberOfPhaseBiases; 1145 if (ii >= CLOCKORBIT_NUMBIAS) 1146 break; 1018 1147 phasebiasSat->NumberOfPhaseBiases += 1; 1019 1148 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L1_Z; 1020 1149 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1021 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1022 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1023 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1150 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1151 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1152 pbSig.wlInd; 1153 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1154 pbSig.discCount; 1024 1155 } 1025 1156 else if (pbSig.type == "2C") { 1026 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1157 int ii = phasebiasSat->NumberOfPhaseBiases; 1158 if (ii >= CLOCKORBIT_NUMBIAS) 1159 break; 1027 1160 phasebiasSat->NumberOfPhaseBiases += 1; 1028 1161 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CA; 1029 1162 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1030 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1031 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1032 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1163 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1164 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1165 pbSig.wlInd; 1166 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1167 pbSig.discCount; 1033 1168 } 1034 1169 else if (pbSig.type == "2D") { 1035 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1170 int ii = phasebiasSat->NumberOfPhaseBiases; 1171 if (ii >= CLOCKORBIT_NUMBIAS) 1172 break; 1036 1173 phasebiasSat->NumberOfPhaseBiases += 1; 1037 1174 phasebiasSat->Biases[ii].Type = CODETYPEGPS_SEMI_CODELESS; 1038 1175 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1039 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1040 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1041 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1176 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1177 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1178 pbSig.wlInd; 1179 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1180 pbSig.discCount; 1042 1181 } 1043 1182 else if (pbSig.type == "2S") { 1044 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1183 int ii = phasebiasSat->NumberOfPhaseBiases; 1184 if (ii >= CLOCKORBIT_NUMBIAS) 1185 break; 1045 1186 phasebiasSat->NumberOfPhaseBiases += 1; 1046 1187 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CM; 1047 1188 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1048 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1049 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1050 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1189 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1190 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1191 pbSig.wlInd; 1192 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1193 pbSig.discCount; 1051 1194 } 1052 1195 else if (pbSig.type == "2L") { 1053 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1196 int ii = phasebiasSat->NumberOfPhaseBiases; 1197 if (ii >= CLOCKORBIT_NUMBIAS) 1198 break; 1054 1199 phasebiasSat->NumberOfPhaseBiases += 1; 1055 1200 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CL; 1056 1201 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1057 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1058 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1059 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1202 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1203 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1204 pbSig.wlInd; 1205 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1206 pbSig.discCount; 1060 1207 } 1061 1208 else if (pbSig.type == "2X") { 1062 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1209 int ii = phasebiasSat->NumberOfPhaseBiases; 1210 if (ii >= CLOCKORBIT_NUMBIAS) 1211 break; 1063 1212 phasebiasSat->NumberOfPhaseBiases += 1; 1064 1213 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_CML; 1065 1214 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1066 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1067 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1068 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1215 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1216 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1217 pbSig.wlInd; 1218 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1219 pbSig.discCount; 1069 1220 } 1070 1221 else if (pbSig.type == "2P") { 1071 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1222 int ii = phasebiasSat->NumberOfPhaseBiases; 1223 if (ii >= CLOCKORBIT_NUMBIAS) 1224 break; 1072 1225 phasebiasSat->NumberOfPhaseBiases += 1; 1073 1226 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_P; 1074 1227 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1075 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1076 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1077 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1228 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1229 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1230 pbSig.wlInd; 1231 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1232 pbSig.discCount; 1078 1233 } 1079 1234 else if (pbSig.type == "2W") { 1080 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1235 int ii = phasebiasSat->NumberOfPhaseBiases; 1236 if (ii >= CLOCKORBIT_NUMBIAS) 1237 break; 1081 1238 phasebiasSat->NumberOfPhaseBiases += 1; 1082 1239 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L2_Z; 1083 1240 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1084 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1085 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1086 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1241 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1242 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1243 pbSig.wlInd; 1244 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1245 pbSig.discCount; 1087 1246 } 1088 1247 else if (pbSig.type == "5I") { 1089 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1248 int ii = phasebiasSat->NumberOfPhaseBiases; 1249 if (ii >= CLOCKORBIT_NUMBIAS) 1250 break; 1090 1251 phasebiasSat->NumberOfPhaseBiases += 1; 1091 1252 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_I; 1092 1253 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1093 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1094 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1095 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1254 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1255 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1256 pbSig.wlInd; 1257 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1258 pbSig.discCount; 1096 1259 } 1097 1260 else if (pbSig.type == "5Q") { 1098 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1261 int ii = phasebiasSat->NumberOfPhaseBiases; 1262 if (ii >= CLOCKORBIT_NUMBIAS) 1263 break; 1099 1264 phasebiasSat->NumberOfPhaseBiases += 1; 1100 1265 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_Q; 1101 1266 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1102 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1103 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1104 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1267 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1268 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1269 pbSig.wlInd; 1270 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1271 pbSig.discCount; 1105 1272 } 1106 1273 else if (pbSig.type == "5X") { 1107 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1274 int ii = phasebiasSat->NumberOfPhaseBiases; 1275 if (ii >= CLOCKORBIT_NUMBIAS) 1276 break; 1108 1277 phasebiasSat->NumberOfPhaseBiases += 1; 1109 1278 phasebiasSat->Biases[ii].Type = CODETYPEGPS_L5_IQ; 1110 1279 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1111 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1112 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1113 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1280 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1281 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1282 pbSig.wlInd; 1283 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1284 pbSig.discCount; 1114 1285 } 1115 1286 } 1116 1287 } 1117 if 1288 if (prn.system() == 'R') { 1118 1289 QListIterator<phaseBiasSignal> it(phaseBiasList); 1119 1290 while (it.hasNext()) { 1120 1291 const phaseBiasSignal &pbSig = it.next(); 1121 if (pbSig.type == "1C") { 1122 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1292 if (pbSig.type == "1C") { 1293 int ii = phasebiasSat->NumberOfPhaseBiases; 1294 if (ii >= CLOCKORBIT_NUMBIAS) 1295 break; 1123 1296 phasebiasSat->NumberOfPhaseBiases += 1; 1124 1297 phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_CA; 1125 1298 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1126 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1127 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1128 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1299 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1300 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1301 pbSig.wlInd; 1302 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1303 pbSig.discCount; 1129 1304 } 1130 1305 else if (pbSig.type == "1P") { 1131 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1306 int ii = phasebiasSat->NumberOfPhaseBiases; 1307 if (ii >= CLOCKORBIT_NUMBIAS) 1308 break; 1132 1309 phasebiasSat->NumberOfPhaseBiases += 1; 1133 1310 phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L1_P; 1134 1311 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1135 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1136 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1137 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1312 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1313 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1314 pbSig.wlInd; 1315 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1316 pbSig.discCount; 1138 1317 } 1139 1318 else if (pbSig.type == "2C") { 1140 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1319 int ii = phasebiasSat->NumberOfPhaseBiases; 1320 if (ii >= CLOCKORBIT_NUMBIAS) 1321 break; 1141 1322 phasebiasSat->NumberOfPhaseBiases += 1; 1142 1323 phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_CA; 1143 1324 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1144 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1145 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1146 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1325 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1326 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1327 pbSig.wlInd; 1328 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1329 pbSig.discCount; 1147 1330 } 1148 1331 else if (pbSig.type == "2P") { 1149 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1332 int ii = phasebiasSat->NumberOfPhaseBiases; 1333 if (ii >= CLOCKORBIT_NUMBIAS) 1334 break; 1150 1335 phasebiasSat->NumberOfPhaseBiases += 1; 1151 1336 phasebiasSat->Biases[ii].Type = CODETYPEGLONASS_L2_P; 1152 1337 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1153 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1154 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1155 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1338 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1339 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1340 pbSig.wlInd; 1341 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1342 pbSig.discCount; 1156 1343 } 1157 1344 } 1158 1345 } 1159 if 1346 if (prn.system() == 'E') { 1160 1347 QListIterator<phaseBiasSignal> it(phaseBiasList); 1161 1348 while (it.hasNext()) { 1162 1349 const phaseBiasSignal &pbSig = it.next(); 1163 if (pbSig.type == "1A") { 1164 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1350 if (pbSig.type == "1A") { 1351 int ii = phasebiasSat->NumberOfPhaseBiases; 1352 if (ii >= CLOCKORBIT_NUMBIAS) 1353 break; 1165 1354 phasebiasSat->NumberOfPhaseBiases += 1; 1166 1355 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_A; 1167 1356 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1168 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1169 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1170 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1357 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1358 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1359 pbSig.wlInd; 1360 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1361 pbSig.discCount; 1171 1362 } 1172 1363 else if (pbSig.type == "1B") { 1173 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1364 int ii = phasebiasSat->NumberOfPhaseBiases; 1365 if (ii >= CLOCKORBIT_NUMBIAS) 1366 break; 1174 1367 phasebiasSat->NumberOfPhaseBiases += 1; 1175 1368 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_B; 1176 1369 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1177 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1178 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1179 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1370 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1371 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1372 pbSig.wlInd; 1373 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1374 pbSig.discCount; 1180 1375 } 1181 1376 else if (pbSig.type == "1C") { 1182 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1377 int ii = phasebiasSat->NumberOfPhaseBiases; 1378 if (ii >= CLOCKORBIT_NUMBIAS) 1379 break; 1183 1380 phasebiasSat->NumberOfPhaseBiases += 1; 1184 1381 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E1_C; 1185 1382 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1186 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1187 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1188 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1383 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1384 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1385 pbSig.wlInd; 1386 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1387 pbSig.discCount; 1189 1388 } 1190 1389 else if (pbSig.type == "5I") { 1191 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1390 int ii = phasebiasSat->NumberOfPhaseBiases; 1391 if (ii >= CLOCKORBIT_NUMBIAS) 1392 break; 1192 1393 phasebiasSat->NumberOfPhaseBiases += 1; 1193 1394 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_I; 1194 1395 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1195 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1196 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1197 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1396 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1397 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1398 pbSig.wlInd; 1399 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1400 pbSig.discCount; 1198 1401 } 1199 1402 else if (pbSig.type == "5Q") { 1200 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1403 int ii = phasebiasSat->NumberOfPhaseBiases; 1404 if (ii >= CLOCKORBIT_NUMBIAS) 1405 break; 1201 1406 phasebiasSat->NumberOfPhaseBiases += 1; 1202 1407 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5A_Q; 1203 1408 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1204 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1205 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1206 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1409 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1410 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1411 pbSig.wlInd; 1412 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1413 pbSig.discCount; 1207 1414 } 1208 1415 else if (pbSig.type == "7I") { 1209 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1416 int ii = phasebiasSat->NumberOfPhaseBiases; 1417 if (ii >= CLOCKORBIT_NUMBIAS) 1418 break; 1210 1419 phasebiasSat->NumberOfPhaseBiases += 1; 1211 1420 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_I; 1212 1421 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1213 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1214 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1215 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1422 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1423 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1424 pbSig.wlInd; 1425 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1426 pbSig.discCount; 1216 1427 } 1217 1428 else if (pbSig.type == "7Q") { 1218 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1429 int ii = phasebiasSat->NumberOfPhaseBiases; 1430 if (ii >= CLOCKORBIT_NUMBIAS) 1431 break; 1219 1432 phasebiasSat->NumberOfPhaseBiases += 1; 1220 1433 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5B_Q; 1221 1434 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1222 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1223 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1224 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1435 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1436 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1437 pbSig.wlInd; 1438 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1439 pbSig.discCount; 1225 1440 } 1226 1441 else if (pbSig.type == "8I") { 1227 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1442 int ii = phasebiasSat->NumberOfPhaseBiases; 1443 if (ii >= CLOCKORBIT_NUMBIAS) 1444 break; 1228 1445 phasebiasSat->NumberOfPhaseBiases += 1; 1229 1446 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_I; 1230 1447 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1231 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1232 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1233 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1448 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1449 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1450 pbSig.wlInd; 1451 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1452 pbSig.discCount; 1234 1453 } 1235 1454 else if (pbSig.type == "8Q") { 1236 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1455 int ii = phasebiasSat->NumberOfPhaseBiases; 1456 if (ii >= CLOCKORBIT_NUMBIAS) 1457 break; 1237 1458 phasebiasSat->NumberOfPhaseBiases += 1; 1238 1459 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E5_Q; 1239 1460 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1240 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1241 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1242 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1461 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1462 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1463 pbSig.wlInd; 1464 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1465 pbSig.discCount; 1243 1466 } 1244 1467 else if (pbSig.type == "6A") { 1245 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1468 int ii = phasebiasSat->NumberOfPhaseBiases; 1469 if (ii >= CLOCKORBIT_NUMBIAS) 1470 break; 1246 1471 phasebiasSat->NumberOfPhaseBiases += 1; 1247 1472 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_A; 1248 1473 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1249 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1250 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1251 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1474 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1475 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1476 pbSig.wlInd; 1477 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1478 pbSig.discCount; 1252 1479 } 1253 1480 else if (pbSig.type == "6B") { 1254 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1481 int ii = phasebiasSat->NumberOfPhaseBiases; 1482 if (ii >= CLOCKORBIT_NUMBIAS) 1483 break; 1255 1484 phasebiasSat->NumberOfPhaseBiases += 1; 1256 1485 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_B; 1257 1486 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1258 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1259 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1260 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1487 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1488 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1489 pbSig.wlInd; 1490 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1491 pbSig.discCount; 1261 1492 } 1262 1493 else if (pbSig.type == "6C") { 1263 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1494 int ii = phasebiasSat->NumberOfPhaseBiases; 1495 if (ii >= CLOCKORBIT_NUMBIAS) 1496 break; 1264 1497 phasebiasSat->NumberOfPhaseBiases += 1; 1265 1498 phasebiasSat->Biases[ii].Type = CODETYPEGALILEO_E6_C; 1266 1499 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1267 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1268 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1269 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1500 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1501 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1502 pbSig.wlInd; 1503 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1504 pbSig.discCount; 1270 1505 } 1271 1506 } 1272 1507 } 1273 if 1508 if (prn.system() == 'J') { 1274 1509 QListIterator<phaseBiasSignal> it(phaseBiasList); 1275 1510 while (it.hasNext()) { 1276 1511 const phaseBiasSignal &pbSig = it.next(); 1277 if (pbSig.type == "1C") { 1278 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1512 if (pbSig.type == "1C") { 1513 int ii = phasebiasSat->NumberOfPhaseBiases; 1514 if (ii >= CLOCKORBIT_NUMBIAS) 1515 break; 1279 1516 phasebiasSat->NumberOfPhaseBiases += 1; 1280 1517 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1_CA; 1281 1518 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1282 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1283 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1284 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1519 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1520 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1521 pbSig.wlInd; 1522 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1523 pbSig.discCount; 1285 1524 } 1286 1525 else if (pbSig.type == "1S") { 1287 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1526 int ii = phasebiasSat->NumberOfPhaseBiases; 1527 if (ii >= CLOCKORBIT_NUMBIAS) 1528 break; 1288 1529 phasebiasSat->NumberOfPhaseBiases += 1; 1289 1530 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_D; 1290 1531 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1291 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1292 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1293 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1532 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1533 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1534 pbSig.wlInd; 1535 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1536 pbSig.discCount; 1294 1537 } 1295 1538 else if (pbSig.type == "1L") { 1296 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1539 int ii = phasebiasSat->NumberOfPhaseBiases; 1540 if (ii >= CLOCKORBIT_NUMBIAS) 1541 break; 1297 1542 phasebiasSat->NumberOfPhaseBiases += 1; 1298 1543 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_P; 1299 1544 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1300 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1301 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1302 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1545 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1546 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1547 pbSig.wlInd; 1548 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1549 pbSig.discCount; 1303 1550 } 1304 1551 else if (pbSig.type == "1X") { 1305 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1552 int ii = phasebiasSat->NumberOfPhaseBiases; 1553 if (ii >= CLOCKORBIT_NUMBIAS) 1554 break; 1306 1555 phasebiasSat->NumberOfPhaseBiases += 1; 1307 1556 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L1C_DP; 1308 1557 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1309 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1310 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1311 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1558 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1559 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1560 pbSig.wlInd; 1561 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1562 pbSig.discCount; 1312 1563 } 1313 1564 else if (pbSig.type == "2S") { 1314 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1565 int ii = phasebiasSat->NumberOfPhaseBiases; 1566 if (ii >= CLOCKORBIT_NUMBIAS) 1567 break; 1315 1568 phasebiasSat->NumberOfPhaseBiases += 1; 1316 1569 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CM; 1317 1570 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1318 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1319 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1320 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1571 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1572 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1573 pbSig.wlInd; 1574 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1575 pbSig.discCount; 1321 1576 } 1322 1577 else if (pbSig.type == "2L") { 1323 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1578 int ii = phasebiasSat->NumberOfPhaseBiases; 1579 if (ii >= CLOCKORBIT_NUMBIAS) 1580 break; 1324 1581 phasebiasSat->NumberOfPhaseBiases += 1; 1325 1582 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CL; 1326 1583 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1327 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1328 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1329 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1584 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1585 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1586 pbSig.wlInd; 1587 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1588 pbSig.discCount; 1330 1589 } 1331 1590 else if (pbSig.type == "2X") { 1332 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1591 int ii = phasebiasSat->NumberOfPhaseBiases; 1592 if (ii >= CLOCKORBIT_NUMBIAS) 1593 break; 1333 1594 phasebiasSat->NumberOfPhaseBiases += 1; 1334 1595 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L2_CML; 1335 1596 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1336 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1337 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1338 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1597 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1598 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1599 pbSig.wlInd; 1600 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1601 pbSig.discCount; 1339 1602 } 1340 1603 else if (pbSig.type == "5I") { 1341 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1604 int ii = phasebiasSat->NumberOfPhaseBiases; 1605 if (ii >= CLOCKORBIT_NUMBIAS) 1606 break; 1342 1607 phasebiasSat->NumberOfPhaseBiases += 1; 1343 1608 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_I; 1344 1609 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1345 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1346 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1347 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1610 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1611 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1612 pbSig.wlInd; 1613 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1614 pbSig.discCount; 1348 1615 } 1349 1616 else if (pbSig.type == "5Q") { 1350 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1617 int ii = phasebiasSat->NumberOfPhaseBiases; 1618 if (ii >= CLOCKORBIT_NUMBIAS) 1619 break; 1351 1620 phasebiasSat->NumberOfPhaseBiases += 1; 1352 1621 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_Q; 1353 1622 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1354 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1355 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1356 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1623 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1624 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1625 pbSig.wlInd; 1626 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1627 pbSig.discCount; 1357 1628 } 1358 1629 else if (pbSig.type == "5X") { 1359 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1630 int ii = phasebiasSat->NumberOfPhaseBiases; 1631 if (ii >= CLOCKORBIT_NUMBIAS) 1632 break; 1360 1633 phasebiasSat->NumberOfPhaseBiases += 1; 1361 1634 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_L5_IQ; 1362 1635 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1363 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1364 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1365 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1636 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1637 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1638 pbSig.wlInd; 1639 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1640 pbSig.discCount; 1366 1641 } 1367 1642 else if (pbSig.type == "6S") { 1368 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1643 int ii = phasebiasSat->NumberOfPhaseBiases; 1644 if (ii >= CLOCKORBIT_NUMBIAS) 1645 break; 1369 1646 phasebiasSat->NumberOfPhaseBiases += 1; 1370 1647 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_S; 1371 1648 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1372 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1373 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1374 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1649 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1650 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1651 pbSig.wlInd; 1652 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1653 pbSig.discCount; 1375 1654 } 1376 1655 else if (pbSig.type == "6L") { 1377 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1656 int ii = phasebiasSat->NumberOfPhaseBiases; 1657 if (ii >= CLOCKORBIT_NUMBIAS) 1658 break; 1378 1659 phasebiasSat->NumberOfPhaseBiases += 1; 1379 1660 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_L; 1380 1661 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1381 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1382 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1383 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1662 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1663 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1664 pbSig.wlInd; 1665 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1666 pbSig.discCount; 1384 1667 } 1385 1668 else if (pbSig.type == "6X") { 1386 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1669 int ii = phasebiasSat->NumberOfPhaseBiases; 1670 if (ii >= CLOCKORBIT_NUMBIAS) 1671 break; 1387 1672 phasebiasSat->NumberOfPhaseBiases += 1; 1388 1673 phasebiasSat->Biases[ii].Type = CODETYPEQZSS_LEX_SL; 1389 1674 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1390 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1391 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1392 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1675 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1676 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1677 pbSig.wlInd; 1678 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1679 pbSig.discCount; 1393 1680 } 1394 1681 } 1395 1682 } 1396 if 1683 if (prn.system() == 'S') { 1397 1684 QListIterator<phaseBiasSignal> it(phaseBiasList); 1398 1685 while (it.hasNext()) { 1399 1686 const phaseBiasSignal &pbSig = it.next(); 1400 if (pbSig.type == "1C") { 1401 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1687 if (pbSig.type == "1C") { 1688 int ii = phasebiasSat->NumberOfPhaseBiases; 1689 if (ii >= CLOCKORBIT_NUMBIAS) 1690 break; 1402 1691 phasebiasSat->NumberOfPhaseBiases += 1; 1403 1692 phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L1_CA; 1404 1693 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1405 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1406 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1407 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1694 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1695 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1696 pbSig.wlInd; 1697 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1698 pbSig.discCount; 1408 1699 } 1409 1700 else if (pbSig.type == "5I") { 1410 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1701 int ii = phasebiasSat->NumberOfPhaseBiases; 1702 if (ii >= CLOCKORBIT_NUMBIAS) 1703 break; 1411 1704 phasebiasSat->NumberOfPhaseBiases += 1; 1412 1705 phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_I; 1413 1706 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1414 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1415 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1416 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1707 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1708 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1709 pbSig.wlInd; 1710 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1711 pbSig.discCount; 1417 1712 } 1418 1713 else if (pbSig.type == "5Q") { 1419 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1714 int ii = phasebiasSat->NumberOfPhaseBiases; 1715 if (ii >= CLOCKORBIT_NUMBIAS) 1716 break; 1420 1717 phasebiasSat->NumberOfPhaseBiases += 1; 1421 1718 phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_Q; 1422 1719 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1423 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1424 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1425 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1720 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1721 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1722 pbSig.wlInd; 1723 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1724 pbSig.discCount; 1426 1725 } 1427 1726 else if (pbSig.type == "5X") { 1428 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1727 int ii = phasebiasSat->NumberOfPhaseBiases; 1728 if (ii >= CLOCKORBIT_NUMBIAS) 1729 break; 1429 1730 phasebiasSat->NumberOfPhaseBiases += 1; 1430 1731 phasebiasSat->Biases[ii].Type = CODETYPE_SBAS_L5_IQ; 1431 1732 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1432 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1433 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1434 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1733 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1734 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1735 pbSig.wlInd; 1736 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1737 pbSig.discCount; 1435 1738 } 1436 1739 } 1437 1740 } 1438 if 1741 if (prn.system() == 'C') { 1439 1742 QListIterator<phaseBiasSignal> it(phaseBiasList); 1440 1743 while (it.hasNext()) { 1441 1744 const phaseBiasSignal &pbSig = it.next(); 1442 if (pbSig.type == "2I") { 1443 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1745 if (pbSig.type == "2I") { 1746 int ii = phasebiasSat->NumberOfPhaseBiases; 1747 if (ii >= CLOCKORBIT_NUMBIAS) 1748 break; 1444 1749 phasebiasSat->NumberOfPhaseBiases += 1; 1445 1750 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_I; 1446 1751 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1447 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1448 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1449 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1752 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1753 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1754 pbSig.wlInd; 1755 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1756 pbSig.discCount; 1450 1757 } 1451 1758 else if (pbSig.type == "2Q") { 1452 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1759 int ii = phasebiasSat->NumberOfPhaseBiases; 1760 if (ii >= CLOCKORBIT_NUMBIAS) 1761 break; 1453 1762 phasebiasSat->NumberOfPhaseBiases += 1; 1454 1763 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_Q; 1455 1764 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1456 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1457 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1458 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1765 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1766 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1767 pbSig.wlInd; 1768 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1769 pbSig.discCount; 1459 1770 } 1460 1771 else if (pbSig.type == "2X") { 1461 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1772 int ii = phasebiasSat->NumberOfPhaseBiases; 1773 if (ii >= CLOCKORBIT_NUMBIAS) 1774 break; 1462 1775 phasebiasSat->NumberOfPhaseBiases += 1; 1463 1776 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B1_IQ; 1464 1777 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1465 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1466 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1467 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1778 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1779 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1780 pbSig.wlInd; 1781 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1782 pbSig.discCount; 1468 1783 } 1469 1784 else if (pbSig.type == "6I") { 1470 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1785 int ii = phasebiasSat->NumberOfPhaseBiases; 1786 if (ii >= CLOCKORBIT_NUMBIAS) 1787 break; 1471 1788 phasebiasSat->NumberOfPhaseBiases += 1; 1472 1789 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_Q; 1473 1790 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1474 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1475 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1476 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1791 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1792 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1793 pbSig.wlInd; 1794 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1795 pbSig.discCount; 1477 1796 } 1478 1797 else if (pbSig.type == "6Q") { 1479 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1798 int ii = phasebiasSat->NumberOfPhaseBiases; 1799 if (ii >= CLOCKORBIT_NUMBIAS) 1800 break; 1480 1801 phasebiasSat->NumberOfPhaseBiases += 1; 1481 1802 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_I; 1482 1803 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1483 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1484 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1485 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1804 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1805 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1806 pbSig.wlInd; 1807 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1808 pbSig.discCount; 1486 1809 } 1487 1810 else if (pbSig.type == "6X") { 1488 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1811 int ii = phasebiasSat->NumberOfPhaseBiases; 1812 if (ii >= CLOCKORBIT_NUMBIAS) 1813 break; 1489 1814 phasebiasSat->NumberOfPhaseBiases += 1; 1490 1815 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B2_IQ; 1491 1816 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1492 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1493 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1494 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1817 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1818 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1819 pbSig.wlInd; 1820 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1821 pbSig.discCount; 1495 1822 } 1496 1823 else if (pbSig.type == "7I") { 1497 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1824 int ii = phasebiasSat->NumberOfPhaseBiases; 1825 if (ii >= CLOCKORBIT_NUMBIAS) 1826 break; 1498 1827 phasebiasSat->NumberOfPhaseBiases += 1; 1499 1828 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_Q; 1500 1829 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1501 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1502 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1503 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1830 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1831 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1832 pbSig.wlInd; 1833 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1834 pbSig.discCount; 1504 1835 } 1505 1836 else if (pbSig.type == "7Q") { 1506 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1837 int ii = phasebiasSat->NumberOfPhaseBiases; 1838 if (ii >= CLOCKORBIT_NUMBIAS) 1839 break; 1507 1840 phasebiasSat->NumberOfPhaseBiases += 1; 1508 1841 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_I; 1509 1842 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1510 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1511 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1512 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1843 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1844 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1845 pbSig.wlInd; 1846 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1847 pbSig.discCount; 1513 1848 } 1514 1849 else if (pbSig.type == "7X") { 1515 int ii = phasebiasSat->NumberOfPhaseBiases; if (ii >= CLOCKORBIT_NUMBIAS) break; 1850 int ii = phasebiasSat->NumberOfPhaseBiases; 1851 if (ii >= CLOCKORBIT_NUMBIAS) 1852 break; 1516 1853 phasebiasSat->NumberOfPhaseBiases += 1; 1517 1854 phasebiasSat->Biases[ii].Type = CODETYPE_BDS_B3_IQ; 1518 1855 phasebiasSat->Biases[ii].Bias = pbSig.bias; 1519 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1520 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = pbSig.wlInd; 1521 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = pbSig.discCount; 1856 phasebiasSat->Biases[ii].SignalIntegerIndicator = pbSig.intInd; 1857 phasebiasSat->Biases[ii].SignalsWideLaneIntegerIndicator = 1858 pbSig.wlInd; 1859 phasebiasSat->Biases[ii].SignalDiscontinuityCounter = 1860 pbSig.discCount; 1522 1861 } 1523 1862 } … … 1526 1865 } 1527 1866 } 1528 1529 1867 1530 1868 QByteArray hlpBufferCo; … … 1533 1871 // ------------------------------------ 1534 1872 if (_samplRtcmEphCorr == 0.0) { 1535 if (co.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||1536 co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||1537 co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||1538 co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||1539 co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||1540 co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {1873 if (co.NumberOfSat[CLOCKORBIT_SATGPS] > 0 1874 || co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 1875 || co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 1876 || co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 1877 || co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 1878 || co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) { 1541 1879 char obuffer[CLOCKORBIT_BUFFERSIZE]; 1542 1880 int len = MakeClockOrbit(&co, COTYPE_AUTO, 0, obuffer, sizeof(obuffer)); … … 1554 1892 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1555 1893 co.UpdateInterval = ephUpdInd; 1556 int len1 = MakeClockOrbit(&co, COTYPE_GPSORBIT, 1, obuffer, sizeof(obuffer)); 1894 int len1 = MakeClockOrbit(&co, COTYPE_GPSORBIT, 1, obuffer, 1895 sizeof(obuffer)); 1557 1896 co.UpdateInterval = clkUpdInd; 1558 1897 if (len1 > 0) { … … 1561 1900 } 1562 1901 int mmsg = (co.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0) ? 1 : 0; 1563 int len2 = MakeClockOrbit(&co, COTYPE_GPSCLOCK, mmsg, obuffer, sizeof(obuffer)); 1902 int len2 = MakeClockOrbit(&co, COTYPE_GPSCLOCK, mmsg, obuffer, 1903 sizeof(obuffer)); 1564 1904 if (len2 > 0) { 1565 1905 hlpBufferCo += QByteArray(obuffer, len2); … … 1570 1910 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1571 1911 co.UpdateInterval = ephUpdInd; 1572 int len1 = MakeClockOrbit(&co, COTYPE_GLONASSORBIT, 1, obuffer, sizeof(obuffer)); 1912 int len1 = MakeClockOrbit(&co, COTYPE_GLONASSORBIT, 1, obuffer, 1913 sizeof(obuffer)); 1573 1914 co.UpdateInterval = clkUpdInd; 1574 1915 if (len1 > 0) { … … 1577 1918 } 1578 1919 int mmsg = (co.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0) ? 1 : 0; 1579 int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, mmsg, obuffer, sizeof(obuffer)); 1920 int len2 = MakeClockOrbit(&co, COTYPE_GLONASSCLOCK, mmsg, obuffer, 1921 sizeof(obuffer)); 1580 1922 if (len2 > 0) { 1581 1923 hlpBufferCo += QByteArray(obuffer, len2); … … 1586 1928 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1587 1929 co.UpdateInterval = ephUpdInd; 1588 int len1 = MakeClockOrbit(&co, COTYPE_GALILEOORBIT, 1, obuffer, sizeof(obuffer)); 1930 int len1 = MakeClockOrbit(&co, COTYPE_GALILEOORBIT, 1, obuffer, 1931 sizeof(obuffer)); 1589 1932 co.UpdateInterval = clkUpdInd; 1590 1933 if (len1 > 0) { … … 1593 1936 } 1594 1937 int mmsg = (co.NumberOfSat[CLOCKORBIT_SATQZSS] > 0) ? 1 : 0; 1595 int len2 = MakeClockOrbit(&co, COTYPE_GALILEOCLOCK, mmsg, obuffer, sizeof(obuffer)); 1938 int len2 = MakeClockOrbit(&co, COTYPE_GALILEOCLOCK, mmsg, obuffer, 1939 sizeof(obuffer)); 1596 1940 if (len2 > 0) { 1597 1941 hlpBufferCo += QByteArray(obuffer, len2); … … 1602 1946 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1603 1947 co.UpdateInterval = ephUpdInd; 1604 int len1 = MakeClockOrbit(&co, COTYPE_QZSSORBIT, 1, obuffer, sizeof(obuffer)); 1948 int len1 = MakeClockOrbit(&co, COTYPE_QZSSORBIT, 1, obuffer, 1949 sizeof(obuffer)); 1605 1950 co.UpdateInterval = clkUpdInd; 1606 1951 if (len1 > 0) { … … 1609 1954 } 1610 1955 int mmsg = (co.NumberOfSat[CLOCKORBIT_SATSBAS] > 0) ? 1 : 0; 1611 int len2 = MakeClockOrbit(&co, COTYPE_QZSSCLOCK, mmsg, obuffer, sizeof(obuffer)); 1956 int len2 = MakeClockOrbit(&co, COTYPE_QZSSCLOCK, mmsg, obuffer, 1957 sizeof(obuffer)); 1612 1958 if (len2 > 0) { 1613 1959 hlpBufferCo += QByteArray(obuffer, len2); … … 1618 1964 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1619 1965 co.UpdateInterval = ephUpdInd; 1620 int len1 = MakeClockOrbit(&co, COTYPE_SBASORBIT, 1, obuffer, sizeof(obuffer)); 1966 int len1 = MakeClockOrbit(&co, COTYPE_SBASORBIT, 1, obuffer, 1967 sizeof(obuffer)); 1621 1968 co.UpdateInterval = clkUpdInd; 1622 1969 if (len1 > 0) { … … 1625 1972 } 1626 1973 int mmsg = (co.NumberOfSat[CLOCKORBIT_SATBDS] > 0) ? 1 : 0; 1627 int len2 = MakeClockOrbit(&co, COTYPE_SBASCLOCK, mmsg, obuffer, sizeof(obuffer)); 1974 int len2 = MakeClockOrbit(&co, COTYPE_SBASCLOCK, mmsg, obuffer, 1975 sizeof(obuffer)); 1628 1976 if (len2 > 0) { 1629 1977 hlpBufferCo += QByteArray(obuffer, len2); … … 1634 1982 if (fmod(epoTime.gpssec(), _samplRtcmEphCorr) == 0.0) { 1635 1983 co.UpdateInterval = ephUpdInd; 1636 int len1 = MakeClockOrbit(&co, COTYPE_BDSORBIT, 1, obuffer, sizeof(obuffer)); 1984 int len1 = MakeClockOrbit(&co, COTYPE_BDSORBIT, 1, obuffer, 1985 sizeof(obuffer)); 1637 1986 co.UpdateInterval = clkUpdInd; 1638 1987 if (len1 > 0) { … … 1640 1989 } 1641 1990 } 1642 int len2 = MakeClockOrbit(&co, COTYPE_BDSCLOCK, 0, obuffer, sizeof(obuffer)); 1991 int len2 = MakeClockOrbit(&co, COTYPE_BDSCLOCK, 0, obuffer, 1992 sizeof(obuffer)); 1643 1993 if (len2 > 0) { 1644 1994 hlpBufferCo += QByteArray(obuffer, len2); … … 1650 2000 // ----------- 1651 2001 QByteArray hlpBufferBias; 1652 if (bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||1653 bias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||1654 bias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||1655 bias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||1656 bias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||1657 bias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {2002 if (bias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 2003 || bias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 2004 || bias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 2005 || bias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 2006 || bias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 2007 || bias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) { 1658 2008 char obuffer[CLOCKORBIT_BUFFERSIZE]; 1659 2009 int len = MakeCodeBias(&bias, BTYPE_AUTO, 0, obuffer, sizeof(obuffer)); … … 1666 2016 // ------------ 1667 2017 QByteArray hlpBufferPhaseBias; 1668 if (phasebias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 ||1669 phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 ||1670 phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 ||1671 phasebias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 ||1672 phasebias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 ||1673 phasebias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) {2018 if (phasebias.NumberOfSat[CLOCKORBIT_SATGPS] > 0 2019 || phasebias.NumberOfSat[CLOCKORBIT_SATGLONASS] > 0 2020 || phasebias.NumberOfSat[CLOCKORBIT_SATGALILEO] > 0 2021 || phasebias.NumberOfSat[CLOCKORBIT_SATQZSS] > 0 2022 || phasebias.NumberOfSat[CLOCKORBIT_SATSBAS] > 0 2023 || phasebias.NumberOfSat[CLOCKORBIT_SATBDS] > 0) { 1674 2024 char obuffer[CLOCKORBIT_BUFFERSIZE]; 1675 int len = MakePhaseBias(&phasebias, PBTYPE_AUTO, 0, obuffer, sizeof(obuffer)); 2025 int len = MakePhaseBias(&phasebias, PBTYPE_AUTO, 0, obuffer, 2026 sizeof(obuffer)); 1676 2027 if (len > 0) { 1677 2028 hlpBufferPhaseBias = QByteArray(obuffer, len); … … 1690 2041 } 1691 2042 1692 _outBuffer += hlpBufferCo + hlpBufferBias + hlpBufferPhaseBias + hlpBufferVtec; 2043 _outBuffer += hlpBufferCo + hlpBufferBias + hlpBufferPhaseBias 2044 + hlpBufferVtec; 1693 2045 } 1694 2046 … … 1696 2048 //////////////////////////////////////////////////////////////////////////// 1697 2049 void bncRtnetUploadCaster::processSatellite(const t_eph* eph, int GPSweek, 1698 double GPSweeks, const QString& prn, 1699 const ColumnVector& rtnAPC, 1700 double rtnClk, 1701 const ColumnVector& rtnVel, 1702 const ColumnVector& rtnCoM, 1703 struct ClockOrbit::SatData* sd, 1704 QString& outLine) { 2050 double GPSweeks, const QString& prn, const ColumnVector& rtnAPC, 2051 double rtnClk, const ColumnVector& rtnVel, const ColumnVector& rtnCoM, 2052 struct ClockOrbit::SatData* sd, QString& outLine) { 1705 2053 1706 2054 // Broadcast Position and Velocity … … 1721 2069 // Difference in xyz 1722 2070 // ----------------- 1723 ColumnVector dx = xB.Rows(1, 3) - xP;1724 ColumnVector dv = vB 2071 ColumnVector dx = xB.Rows(1, 3) - xP; 2072 ColumnVector dv = vB - rtnVel; 1725 2073 1726 2074 // Difference in RSW 1727 2075 // ----------------- 1728 2076 ColumnVector rsw(3); 1729 XYZ_to_RSW(xB.Rows(1, 3), vB, dx, rsw);2077 XYZ_to_RSW(xB.Rows(1, 3), vB, dx, rsw); 1730 2078 1731 2079 ColumnVector dotRsw(3); 1732 XYZ_to_RSW(xB.Rows(1, 3), vB, dv, dotRsw);2080 XYZ_to_RSW(xB.Rows(1, 3), vB, dv, dotRsw); 1733 2081 1734 2082 // Clock Correction … … 1737 2085 1738 2086 if (sd) { 1739 sd->ID 1740 sd->IOD 1741 sd->Clock.DeltaA0 1742 sd->Clock.DeltaA1 1743 sd->Clock.DeltaA2 1744 sd->Orbit.DeltaRadial 1745 sd->Orbit.DeltaAlongTrack 1746 sd->Orbit.DeltaCrossTrack 1747 sd->Orbit.DotDeltaRadial 2087 sd->ID = prn.mid(1).toInt(); 2088 sd->IOD = eph->IOD(); 2089 sd->Clock.DeltaA0 = dClk; 2090 sd->Clock.DeltaA1 = 0.0; // TODO 2091 sd->Clock.DeltaA2 = 0.0; // TODO 2092 sd->Orbit.DeltaRadial = rsw(1); 2093 sd->Orbit.DeltaAlongTrack = rsw(2); 2094 sd->Orbit.DeltaCrossTrack = rsw(3); 2095 sd->Orbit.DotDeltaRadial = dotRsw(1); 1748 2096 sd->Orbit.DotDeltaAlongTrack = dotRsw(2); 1749 2097 sd->Orbit.DotDeltaCrossTrack = dotRsw(3); 1750 2098 } 1751 2099 1752 outLine.sprintf("%d %.1f %s %3d %10.3f %8.3f %8.3f %8.3f\n", 1753 GPSweek, GPSweeks, eph->prn().toString().c_str(),1754 eph->IOD(), dClk, rsw(1), rsw(2),rsw(3));2100 outLine.sprintf("%d %.1f %s %3d %10.3f %8.3f %8.3f %8.3f\n", GPSweek, 2101 GPSweeks, eph->prn().toString().c_str(), eph->IOD(), dClk, rsw(1), rsw(2), 2102 rsw(3)); 1755 2103 1756 2104 double relativity = -2.0 * DotProduct(xP, rtnVel) / t_CST::c; … … 1768 2116 //////////////////////////////////////////////////////////////////////////// 1769 2117 void bncRtnetUploadCaster::crdTrafo(int GPSWeek, ColumnVector& xyz, 1770 2118 double& dc) { 1771 2119 1772 2120 // Current epoch minus 2000.0 in years 1773 2121 // ------------------------------------ 1774 double dt = (GPSWeek - (1042.0 +6.0/7.0)) / 365.2422 * 7.0 + 2000.0 - _t0;2122 double dt = (GPSWeek - (1042.0 + 6.0 / 7.0)) / 365.2422 * 7.0 + 2000.0 - _t0; 1775 2123 1776 2124 ColumnVector dx(3); … … 1792 2140 ColumnVector meanSta(3); 1793 2141 1794 if 1795 meanSta(1) = 1796 meanSta(2) = 1797 meanSta(3) = 2142 if (_crdTrafo == "ETRF2000") { 2143 meanSta(1) = 3661090.0; 2144 meanSta(2) = 845230.0; 2145 meanSta(3) = 5136850.0; 1798 2146 } 1799 2147 else if (_crdTrafo == "NAD83") { 1800 2148 meanSta(1) = -1092950.0; 1801 2149 meanSta(2) = -4383600.0; 1802 meanSta(3) = 2150 meanSta(3) = 4487420.0; 1803 2151 } 1804 2152 else if (_crdTrafo == "GDA94") { 1805 2153 meanSta(1) = -4052050.0; 1806 meanSta(2) = 2154 meanSta(2) = 4212840.0; 1807 2155 meanSta(3) = -2545110.0; 1808 2156 } 1809 2157 else if (_crdTrafo == "SIRGAS2000") { 1810 meanSta(1) = 2158 meanSta(1) = 3740860.0; 1811 2159 meanSta(2) = -4964290.0; 1812 2160 meanSta(3) = -1425420.0; 1813 2161 } 1814 2162 else if (_crdTrafo == "SIRGAS95") { 1815 meanSta(1) = 2163 meanSta(1) = 3135390.0; 1816 2164 meanSta(2) = -5017670.0; 1817 2165 meanSta(3) = -2374440.0; 1818 2166 } 1819 2167 else if (_crdTrafo == "DREF91") { 1820 meanSta(1) = 1821 meanSta(2) = 1822 meanSta(3) = 2168 meanSta(1) = 3959579.0; 2169 meanSta(2) = 721719.0; 2170 meanSta(3) = 4931539.0; 1823 2171 } 1824 2172 else if (_crdTrafo == "Custom") { 1825 meanSta(1) = 1826 meanSta(2) = 1827 meanSta(3) = 2173 meanSta(1) = 0.0; // TODO 2174 meanSta(2) = 0.0; // TODO 2175 meanSta(3) = 0.0; // TODO 1828 2176 } 1829 2177 … … 1833 2181 dc = rho * (sc - 1.0) / sc / t_CST::c; 1834 2182 1835 Matrix rMat(3, 3);1836 rMat(1, 1) = 1.0;1837 rMat(1, 2) = -oz;1838 rMat(1, 3) =oy;1839 rMat(2, 1) =oz;1840 rMat(2, 2) = 1.0;1841 rMat(2, 3) = -ox;1842 rMat(3, 1) = -oy;1843 rMat(3, 2) =ox;1844 rMat(3, 3) = 1.0;2183 Matrix rMat(3, 3); 2184 rMat(1, 1) = 1.0; 2185 rMat(1, 2) = -oz; 2186 rMat(1, 3) = oy; 2187 rMat(2, 1) = oz; 2188 rMat(2, 2) = 1.0; 2189 rMat(2, 3) = -ox; 2190 rMat(3, 1) = -oy; 2191 rMat(3, 2) = ox; 2192 rMat(3, 3) = 1.0; 1845 2193 1846 2194 xyz = sc * rMat * xyz + dx; … … 1888 2236 return 15; 1889 2237 } 1890 return 2; // default2238 return 2; // default 1891 2239 }
Note:
See TracChangeset
for help on using the changeset viewer.