Changeset 2711 in ntrip
- Timestamp:
- Nov 18, 2010, 1:38:51 PM (14 years ago)
- Location:
- trunk/BNC
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/GPSS/gpssDecoder.cpp
r2710 r2711 99 99 for (int is = 0; is < epochHdr.n_svs; is++) { 100 100 obsFound = true; 101 t_obs * obs = new t_obs();102 memcpy( obs, _buffer.data() + 2 + sizeof(recordSize) +101 t_obs obs; 102 memcpy(&obs, _buffer.data() + 2 + sizeof(recordSize) + 103 103 sizeof(epochHdr) + is * sizeof(t_obs), sizeof(t_obs)); 104 104 _obsList.push_back(obs); -
trunk/BNC/RTCM/GPSDecoder.h
r2710 r2711 36 36 class t_obs { 37 37 public: 38 enum t_obs_status {initial, posted, received};39 38 t_obs() { 40 _status = initial;41 39 satSys = 'G'; 42 40 satNum = 0; … … 76 74 double S1() const {return (L1P != 0.0 ? S1P : S1C);} 77 75 double S2() const {return (L2P != 0.0 ? S2P : S2C);} 78 79 t_obs_status _status;80 76 81 77 char StatID[20+1]; // Station ID … … 118 114 virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg) = 0; 119 115 120 virtual ~GPSDecoder() { 121 QListIterator<t_obs*> it(_obsList); 122 while (it.hasNext()) { 123 t_obs* obs = it.next(); 124 if (obs && obs->_status == t_obs::initial) { 125 delete obs; 126 } 127 } 128 } 116 virtual ~GPSDecoder() {} 129 117 130 118 virtual int corrGPSEpochTime() const {return -1;} … … 149 137 }; 150 138 151 QList<t_obs *>_obsList;139 QList<t_obs> _obsList; 152 140 QList<int> _typeList; // RTCM message types 153 141 QStringList _antType; // RTCM antenna descriptor -
trunk/BNC/RTCM/RTCM2Decoder.cpp
r2710 r2711 140 140 141 141 for (int iSat=0; iSat < _ObsBlock.nSat; iSat++) { 142 t_obs* obs = new t_obs(); 143 _obsList.push_back(obs); 142 t_obs obs; 144 143 if (_ObsBlock.PRN[iSat] > 100) { 145 obs ->satNum = _ObsBlock.PRN[iSat] % 100;146 obs ->satSys = 'R';144 obs.satNum = _ObsBlock.PRN[iSat] % 100; 145 obs.satSys = 'R'; 147 146 } 148 147 else { 149 obs ->satNum = _ObsBlock.PRN[iSat];150 obs ->satSys = 'G';148 obs.satNum = _ObsBlock.PRN[iSat]; 149 obs.satSys = 'G'; 151 150 } 152 obs->GPSWeek = epochWeek; 153 obs->GPSWeeks = epochSecs; 154 obs->C1 = _ObsBlock.rng_C1[iSat]; 155 obs->P1 = _ObsBlock.rng_P1[iSat]; 156 obs->P2 = _ObsBlock.rng_P2[iSat]; 157 obs->L1P = _ObsBlock.resolvedPhase_L1(iSat); 158 obs->L2P = _ObsBlock.resolvedPhase_L2(iSat); 159 obs->slip_cnt_L1 = _ObsBlock.slip_L1[iSat]; 160 obs->slip_cnt_L2 = _ObsBlock.slip_L2[iSat]; 151 obs.GPSWeek = epochWeek; 152 obs.GPSWeeks = epochSecs; 153 obs.C1 = _ObsBlock.rng_C1[iSat]; 154 obs.P1 = _ObsBlock.rng_P1[iSat]; 155 obs.P2 = _ObsBlock.rng_P2[iSat]; 156 obs.L1P = _ObsBlock.resolvedPhase_L1(iSat); 157 obs.L2P = _ObsBlock.resolvedPhase_L2(iSat); 158 obs.slip_cnt_L1 = _ObsBlock.slip_L1[iSat]; 159 obs.slip_cnt_L2 = _ObsBlock.slip_L2[iSat]; 160 161 _obsList.push_back(obs); 161 162 } 162 163 _ObsBlock.clear(); … … 435 436 // Store new observation 436 437 if ( new_obs ) { 437 _obsList.push_back( new_obs ); 438 439 ////ostringstream hasIODstr; 440 ////copy(hasIOD.begin(), hasIOD.end(), ostream_iterator<string>(hasIODstr, " ")); 441 ////errmsg.push_back("decoded PRN " + PRN + " : " + hasIODstr.str()); 442 } 443 } 444 } 438 _obsList.push_back(*new_obs); 439 } 440 } 441 } -
trunk/BNC/RTCM3/RTCM3Decoder.cpp
r2710 r2711 237 237 for (int iSat = 0; iSat < gnssData.numsats; iSat++) { 238 238 239 t_obs * obs = new t_obs();240 int 239 t_obs obs; 240 int satID = gnssData.satellites[iSat]; 241 241 242 242 // GPS 243 243 // --- 244 244 if (satID >= PRN_GPS_START && satID <= PRN_GPS_END) { 245 obs ->satSys = 'G';246 obs ->satNum = satID;245 obs.satSys = 'G'; 246 obs.satNum = satID; 247 247 } 248 248 … … 250 250 // ------- 251 251 else if (satID >= PRN_GLONASS_START && satID <= PRN_GLONASS_END) { 252 obs ->satSys = 'R';253 obs ->satNum = satID - PRN_GLONASS_START + 1;254 if (obs ->satNum <= PRN_GLONASS_NUM &&255 parser.GLOFreq[obs ->satNum-1] != 0) {256 obs ->slotNum = parser.GLOFreq[obs->satNum-1] - 100;252 obs.satSys = 'R'; 253 obs.satNum = satID - PRN_GLONASS_START + 1; 254 if (obs.satNum <= PRN_GLONASS_NUM && 255 parser.GLOFreq[obs.satNum-1] != 0) { 256 obs.slotNum = parser.GLOFreq[obs.satNum-1] - 100; 257 257 } 258 258 else { 259 delete obs; 260 obs = 0; 259 continue; 261 260 } 262 261 } … … 265 264 // ------- 266 265 else if (satID >= PRN_GALILEO_START && satID <= PRN_GALILEO_END) { 267 obs ->satSys = 'E';268 obs ->satNum = satID - PRN_GALILEO_START + 1;266 obs.satSys = 'E'; 267 obs.satNum = satID - PRN_GALILEO_START + 1; 269 268 } 270 269 … … 272 271 // ---- 273 272 else if (satID >= PRN_WAAS_START && satID <= PRN_WAAS_END) { 274 obs ->satSys = 'S';275 obs ->satNum = satID - PRN_WAAS_START + 20;273 obs.satSys = 'S'; 274 obs.satNum = satID - PRN_WAAS_START + 20; 276 275 } 277 276 … … 279 278 // ------------- 280 279 else if (satID >= PRN_GIOVE_START && satID <= PRN_GIOVE_END) { 281 obs ->satSys = 'E';282 obs ->satNum = satID - PRN_GIOVE_START + PRN_GIOVE_OFFSET;280 obs.satSys = 'E'; 281 obs.satNum = satID - PRN_GIOVE_START + PRN_GIOVE_OFFSET; 283 282 } 284 283 … … 286 285 // -------------- 287 286 else { 288 delete obs;289 obs = 0;290 }291 292 if (obs) {293 _obsList.push_back(obs);294 }295 else {296 287 continue; 297 288 } 298 289 299 obs ->GPSWeek = gnssData.week;300 obs ->GPSWeeks = gnssData.timeofweek / 1000.0;301 302 QString prn = QString("%1%2").arg(obs ->satSys)303 .arg(obs ->satNum, 2, 10, QChar('0'));290 obs.GPSWeek = gnssData.week; 291 obs.GPSWeeks = gnssData.timeofweek / 1000.0; 292 293 QString prn = QString("%1%2").arg(obs.satSys) 294 .arg(obs.satNum, 2, 10, QChar('0')); 304 295 305 296 // Handle loss-of-lock flags … … 318 309 _slip_cnt_L1[prn] = 1; 319 310 } 320 obs ->slip_cnt_L1 = _slip_cnt_L1[prn];311 obs.slip_cnt_L1 = _slip_cnt_L1[prn]; 321 312 } 322 313 if (GNSSDF2_LOCKLOSSL2 & gnssData.dataflags2[iSat]) { … … 327 318 _slip_cnt_L2[prn] = 1; 328 319 } 329 obs ->slip_cnt_L2 = _slip_cnt_L2[prn];320 obs.slip_cnt_L2 = _slip_cnt_L2[prn]; 330 321 } 331 322 if (GNSSDF2_LOCKLOSSL5 & gnssData.dataflags2[iSat]) { … … 336 327 _slip_cnt_L5[prn] = 1; 337 328 } 338 obs ->slip_cnt_L5 = _slip_cnt_L5[prn];329 obs.slip_cnt_L5 = _slip_cnt_L5[prn]; 339 330 } 340 331 … … 357 348 358 349 if (iEntry == GNSSENTRY_C1DATA) { 359 obs ->C1 = gnssData.measdata[iSat][iEntry];350 obs.C1 = gnssData.measdata[iSat][iEntry]; 360 351 } 361 352 else if (iEntry == GNSSENTRY_C2DATA) { 362 obs ->C2 = gnssData.measdata[iSat][iEntry];353 obs.C2 = gnssData.measdata[iSat][iEntry]; 363 354 } 364 355 else if (iEntry == GNSSENTRY_P1DATA) { 365 obs ->P1 = gnssData.measdata[iSat][iEntry];356 obs.P1 = gnssData.measdata[iSat][iEntry]; 366 357 } 367 358 else if (iEntry == GNSSENTRY_P2DATA) { 368 obs ->P2 = gnssData.measdata[iSat][iEntry];359 obs.P2 = gnssData.measdata[iSat][iEntry]; 369 360 } 370 361 else if (iEntry == GNSSENTRY_L1CDATA) { 371 obs ->L1C = gnssData.measdata[iSat][iEntry];362 obs.L1C = gnssData.measdata[iSat][iEntry]; 372 363 } 373 364 else if (iEntry == GNSSENTRY_L1PDATA) { 374 obs ->L1P = gnssData.measdata[iSat][iEntry];365 obs.L1P = gnssData.measdata[iSat][iEntry]; 375 366 } 376 367 else if (iEntry == GNSSENTRY_L2CDATA) { 377 obs ->L2C = gnssData.measdata[iSat][iEntry];368 obs.L2C = gnssData.measdata[iSat][iEntry]; 378 369 } 379 370 else if (iEntry == GNSSENTRY_L2PDATA) { 380 obs ->L2P = gnssData.measdata[iSat][iEntry];371 obs.L2P = gnssData.measdata[iSat][iEntry]; 381 372 } 382 373 else if (iEntry == GNSSENTRY_D1CDATA) { 383 obs ->D1C = gnssData.measdata[iSat][iEntry];374 obs.D1C = gnssData.measdata[iSat][iEntry]; 384 375 } 385 376 else if (iEntry == GNSSENTRY_D1PDATA) { 386 obs ->D1P = gnssData.measdata[iSat][iEntry];377 obs.D1P = gnssData.measdata[iSat][iEntry]; 387 378 } 388 379 else if (iEntry == GNSSENTRY_S1CDATA) { 389 obs ->S1C = gnssData.measdata[iSat][iEntry];380 obs.S1C = gnssData.measdata[iSat][iEntry]; 390 381 } 391 382 else if (iEntry == GNSSENTRY_S1PDATA) { 392 obs ->S1P = gnssData.measdata[iSat][iEntry];383 obs.S1P = gnssData.measdata[iSat][iEntry]; 393 384 } 394 385 else if (iEntry == GNSSENTRY_D2CDATA) { 395 obs ->D2C = gnssData.measdata[iSat][iEntry];386 obs.D2C = gnssData.measdata[iSat][iEntry]; 396 387 } 397 388 else if (iEntry == GNSSENTRY_D2PDATA) { 398 obs ->D2P = gnssData.measdata[iSat][iEntry];389 obs.D2P = gnssData.measdata[iSat][iEntry]; 399 390 } 400 391 else if (iEntry == GNSSENTRY_S2CDATA) { 401 obs ->S2C = gnssData.measdata[iSat][iEntry];392 obs.S2C = gnssData.measdata[iSat][iEntry]; 402 393 } 403 394 else if (iEntry == GNSSENTRY_S2PDATA) { 404 obs ->S2P = gnssData.measdata[iSat][iEntry];395 obs.S2P = gnssData.measdata[iSat][iEntry]; 405 396 } 406 397 else if (iEntry == GNSSENTRY_C5DATA) { 407 obs ->C5 = gnssData.measdata[iSat][iEntry];398 obs.C5 = gnssData.measdata[iSat][iEntry]; 408 399 } 409 400 else if (iEntry == GNSSENTRY_L5DATA) { 410 obs ->L5 = gnssData.measdata[iSat][iEntry];401 obs.L5 = gnssData.measdata[iSat][iEntry]; 411 402 } 412 403 else if (iEntry == GNSSENTRY_D5DATA) { 413 obs ->D5 = gnssData.measdata[iSat][iEntry];404 obs.D5 = gnssData.measdata[iSat][iEntry]; 414 405 } 415 406 else if (iEntry == GNSSENTRY_S5DATA) { 416 obs->S5 = gnssData.measdata[iSat][iEntry]; 417 } 418 } 419 } 407 obs.S5 = gnssData.measdata[iSat][iEntry]; 408 } 409 } 410 } 411 _obsList.push_back(obs); 420 412 } 421 413 } -
trunk/BNC/RTIGS/RTIGSDecoder.cpp
r2710 r2711 116 116 117 117 for (short ii = 0; ii < numObs; ii++) { 118 t_obs* obs = new t_obs(); 118 t_obs obs; 119 obs.satSys = 'G'; 120 obs.satNum = _GPSTrans.DecObs.Obs[ii].sat_prn; 121 obs.GPSWeek = _GPSTrans.DecObs.Obs[ii].GPSTime / (7 * 86400); 122 obs.GPSWeeks = _GPSTrans.DecObs.Obs[ii].GPSTime % (7 * 86400); 123 obs.C1 = _GPSTrans.DecObs.Obs[ii].l1_pseudo_range; 124 obs.P1 = _GPSTrans.DecObs.Obs[ii].p1_pseudo_range; 125 obs.P2 = _GPSTrans.DecObs.Obs[ii].p2_pseudo_range; 126 obs.L1P = _GPSTrans.DecObs.Obs[ii].p1_phase; 127 obs.L2P = _GPSTrans.DecObs.Obs[ii].p2_phase; 128 obs.S1P = _GPSTrans.DecObs.Obs[ii].l1_sn; 129 obs.S2P = _GPSTrans.DecObs.Obs[ii].l2_sn; 119 130 _obsList.push_back(obs); 120 obs->satSys = 'G';121 obs->satNum = _GPSTrans.DecObs.Obs[ii].sat_prn;122 obs->GPSWeek = _GPSTrans.DecObs.Obs[ii].GPSTime / (7 * 86400);123 obs->GPSWeeks = _GPSTrans.DecObs.Obs[ii].GPSTime % (7 * 86400);124 obs->C1 = _GPSTrans.DecObs.Obs[ii].l1_pseudo_range;125 obs->P1 = _GPSTrans.DecObs.Obs[ii].p1_pseudo_range;126 obs->P2 = _GPSTrans.DecObs.Obs[ii].p2_pseudo_range;127 obs->L1P = _GPSTrans.DecObs.Obs[ii].p1_phase;128 obs->L2P = _GPSTrans.DecObs.Obs[ii].p2_phase;129 obs->S1P = _GPSTrans.DecObs.Obs[ii].l1_sn;130 obs->S2P = _GPSTrans.DecObs.Obs[ii].l2_sn;131 131 } 132 132 } -
trunk/BNC/bnccaster.cpp
r2710 r2711 55 55 public: 56 56 57 t_oldObsInternal(const t_obs *obs) {58 strcpy(StatID, obs ->StatID);57 t_oldObsInternal(const t_obs& obs) { 58 strcpy(StatID, obs.StatID); 59 59 flags = 0; 60 satSys = obs ->satSys;61 satNum = obs ->satNum;62 slot = obs ->slotNum;63 GPSWeek = obs ->GPSWeek;64 GPSWeeks = obs ->GPSWeeks;65 C1 = obs ->C1;66 C2 = obs ->C2;67 P1 = obs ->P1;68 P2 = obs ->P2;69 L1 = obs ->L1();70 L2 = obs ->L2();71 slip_cnt_L1 = obs ->slip_cnt_L1;72 slip_cnt_L2 = obs ->slip_cnt_L2;60 satSys = obs.satSys; 61 satNum = obs.satNum; 62 slot = obs.slotNum; 63 GPSWeek = obs.GPSWeek; 64 GPSWeeks = obs.GPSWeeks; 65 C1 = obs.C1; 66 C2 = obs.C2; 67 P1 = obs.P1; 68 P2 = obs.P2; 69 L1 = obs.L1(); 70 L2 = obs.L2(); 71 slip_cnt_L1 = obs.slip_cnt_L1; 72 slip_cnt_L2 = obs.slip_cnt_L2; 73 73 lock_timei_L1 = -1; 74 74 lock_timei_L2 = -1; 75 S1 = obs ->S1();76 S2 = obs ->S2();75 S1 = obs.S1(); 76 S2 = obs.S2(); 77 77 SNR1 = 0; 78 78 SNR2 = 0; … … 171 171 } 172 172 173 _epochs = new QMultiMap<long, t_obs *>;173 _epochs = new QMultiMap<long, t_obs>; 174 174 175 175 _lastDumpSec = 0; … … 197 197 delete _nmeaServer; 198 198 delete _nmeaSockets; 199 if (_epochs) { 200 QListIterator<t_obs*> it(_epochs->values()); 201 while (it.hasNext()) { 202 delete it.next(); 203 } 204 delete _epochs; 205 } 199 delete _epochs; 206 200 } 207 201 208 202 // New Observations 209 203 //////////////////////////////////////////////////////////////////////////// 210 void bncCaster::newObs(const QByteArray staID, bool firstObs, t_obs *obs) {204 void bncCaster::newObs(const QByteArray staID, bool firstObs, t_obs obs) { 211 205 212 206 QMutexLocker locker(&_mutex); 213 207 214 obs->_status = t_obs::received; 215 216 long iSec = long(floor(obs->GPSWeeks+0.5)); 217 long newTime = obs->GPSWeek * 7*24*3600 + iSec; 208 long iSec = long(floor(obs.GPSWeeks+0.5)); 209 long newTime = obs.GPSWeek * 7*24*3600 + iSec; 218 210 219 211 // Rename the Station 220 212 // ------------------ 221 strncpy(obs ->StatID, staID.constData(),sizeof(obs->StatID));222 obs ->StatID[sizeof(obs->StatID)-1] = '\0';223 213 strncpy(obs.StatID, staID.constData(),sizeof(obs.StatID)); 214 obs.StatID[sizeof(obs.StatID)-1] = '\0'; 215 224 216 const char begObs[] = "BEGOBS"; 225 217 const int begObsNBytes = sizeof(begObs) - 1; … … 283 275 } 284 276 } 285 delete obs;286 277 return; 287 278 } … … 323 314 void bncCaster::addGetThread(bncGetThread* getThread, bool noNewThread) { 324 315 325 //// qRegisterMetaType<t_obs*>("p_obs");316 qRegisterMetaType<t_obs>("t_obs"); 326 317 qRegisterMetaType<gpsephemeris>("gpsephemeris"); 327 318 qRegisterMetaType<glonassephemeris>("glonassephemeris"); 328 319 329 connect(getThread, SIGNAL(newObs(QByteArray, bool, t_obs *)),330 this, SLOT(newObs(QByteArray, bool, t_obs *))); /// Qt::DirectConnection);320 connect(getThread, SIGNAL(newObs(QByteArray, bool, t_obs)), 321 this, SLOT(newObs(QByteArray, bool, t_obs))); 331 322 332 323 connect(getThread, SIGNAL(getThreadFinished(QByteArray)), … … 385 376 386 377 bool first = true; 387 QList<t_obs *> allObs = _epochs->values(sec);388 389 QListIterator<t_obs *> it(allObs);378 QList<t_obs> allObs = _epochs->values(sec); 379 380 QListIterator<t_obs> it(allObs); 390 381 while (it.hasNext()) { 391 t_obs*obs = it.next();382 const t_obs& obs = it.next(); 392 383 393 384 if (_samplingRate == 0 || sec % _samplingRate == 0) { 394 385 395 386 if (first) { 396 QTime enomtime = QTime(0,0,0).addSecs(static_cast<int>(floor(obs ->GPSWeeks+0.5)));387 QTime enomtime = QTime(0,0,0).addSecs(static_cast<int>(floor(obs.GPSWeeks+0.5))); 397 388 // emit( newMessage( QString("Epoch %1 dumped").arg(enomtime.toString("HH:mm:ss")).toAscii(), true) ); // weber 398 389 } … … 404 395 } 405 396 406 *_out << obs ->StatID << " " << obs->GPSWeek << " ";397 *_out << obs.StatID << " " << obs.GPSWeek << " "; 407 398 _out->setRealNumberPrecision(7); 408 *_out << obs ->GPSWeeks << " ";399 *_out << obs.GPSWeeks << " "; 409 400 410 401 *_out << bncRinex::rinexSatLine(obs, ' ', ' ', ' ').c_str() … … 461 452 } 462 453 463 delete obs;464 454 _epochs->remove(sec); 465 455 first = false; -
trunk/BNC/bnccaster.h
r2710 r2711 44 44 45 45 public slots: 46 void newObs(QByteArray staID, bool firstObs, t_obs *obs);46 void newObs(QByteArray staID, bool firstObs, t_obs obs); 47 47 void slotReadMountPoints(); 48 48 void slotNewNMEAstr(QByteArray str); … … 66 66 int _port; 67 67 QTextStream* _out; 68 QMultiMap<long, t_obs *>*_epochs;68 QMultiMap<long, t_obs>* _epochs; 69 69 long _lastDumpSec; 70 70 QTcpServer* _server; -
trunk/BNC/bncgetthread.cpp
r2710 r2711 374 374 // Delete old observations 375 375 // ----------------------- 376 QListIterator<t_obs*> itOld(_decoder->_obsList);377 while (itOld.hasNext()) {378 delete itOld.next();379 }380 376 _decoder->_obsList.clear(); 381 377 … … 439 435 // Loop over all observations (observations output) 440 436 // ------------------------------------------------ 441 QListIterator<t_obs*> it(_decoder->_obsList); 437 QListIterator<t_obs> it(_decoder->_obsList); 438 bool firstObs = true; 442 439 while (it.hasNext()) { 443 t_obs*obs = it.next();444 440 const t_obs& obs = it.next(); 441 445 442 // Check observation epoch 446 443 // ----------------------- … … 451 448 const double secPerWeek = 7.0 * 24.0 * 3600.0; 452 449 453 double currSec = week 454 double obsSec = obs ->GPSWeek * secPerWeek + obs->GPSWeeks;450 double currSec = week * secPerWeek + sec; 451 double obsSec = obs.GPSWeek * secPerWeek + obs.GPSWeeks; 455 452 456 453 const double maxDt = 600.0; … … 458 455 if (fabs(currSec - obsSec) > maxDt) { 459 456 emit( newMessage(_staID + ": Wrong observation epoch(s)", false) ); 460 delete obs;461 457 continue; 462 458 } … … 466 462 // ------------ 467 463 if (_rnx) { 468 long iSec = long(floor(obs ->GPSWeeks+0.5));469 long newTime = obs ->GPSWeek * 7*24*3600 + iSec;464 long iSec = long(floor(obs.GPSWeeks+0.5)); 465 long newTime = obs.GPSWeek * 7*24*3600 + iSec; 470 466 if (_samplingRate == 0 || iSec % _samplingRate == 0) { 471 467 _rnx->deepCopy(obs); … … 484 480 // Emit new observation signal 485 481 // --------------------------- 486 bool firstObs = (obs == _decoder->_obsList.first()); 487 obs->_status = t_obs::posted; 488 if (!_isToBeDeleted) { 489 emit newObs(_staID, firstObs, obs); 490 } 482 if (!_isToBeDeleted) { 483 emit newObs(_staID, firstObs, obs); 484 } 485 firstObs = false; 491 486 } 492 487 _decoder->_obsList.clear(); -
trunk/BNC/bncgetthread.h
r2710 r2711 79 79 void newBytes(QByteArray staID, double nbyte); 80 80 void newLatency(QByteArray staID, double clate); 81 void newObs(QByteArray staID, bool firstObs, t_obs *obs);81 void newObs(QByteArray staID, bool firstObs, t_obs obs); 82 82 void newAntCrd(QByteArray staID, double xx, double yy, double zz, QByteArray antType); 83 83 void newMessage(QByteArray msg, bool showOnScreen); -
trunk/BNC/bncpppclient.cpp
r2710 r2711 119 119 // 120 120 //////////////////////////////////////////////////////////////////////////// 121 void bncPPPclient::putNewObs( t_obs*obs) {121 void bncPPPclient::putNewObs(const t_obs& obs) { 122 122 QMutexLocker locker(&_mutex); 123 123 124 if (obs ->satSys != 'G' && !_useGlonass) {124 if (obs.satSys != 'G' && !_useGlonass) { 125 125 return; 126 126 } … … 130 130 // Satellite Number 131 131 // ---------------- 132 if (obs ->satSys == 'G') {133 QString prn = QString("G%1").arg(obs ->satNum, 2, 10, QChar('0'));132 if (obs.satSys == 'G') { 133 QString prn = QString("G%1").arg(obs.satNum, 2, 10, QChar('0')); 134 134 satData->prn = prn; 135 135 } 136 else if (obs ->satSys == 'R') {137 QString prn = QString("R%1").arg(obs ->satNum, 2, 10, QChar('0'));136 else if (obs.satSys == 'R') { 137 QString prn = QString("R%1").arg(obs.satNum, 2, 10, QChar('0')); 138 138 satData->prn = prn; 139 139 } … … 142 142 // ----------- 143 143 slipInfo& sInfo = _slips[satData->prn]; 144 if ( sInfo.slipCntL1 == obs ->slip_cnt_L1 &&145 sInfo.slipCntL2 == obs ->slip_cnt_L2 ) {144 if ( sInfo.slipCntL1 == obs.slip_cnt_L1 && 145 sInfo.slipCntL2 == obs.slip_cnt_L2 ) { 146 146 satData->slipFlag = false; 147 147 } … … 149 149 satData->slipFlag = true; 150 150 } 151 sInfo.slipCntL1 = obs ->slip_cnt_L1;152 sInfo.slipCntL2 = obs ->slip_cnt_L2;151 sInfo.slipCntL1 = obs.slip_cnt_L1; 152 sInfo.slipCntL2 = obs.slip_cnt_L2; 153 153 154 154 // Handle Code Biases … … 161 161 // Set Code Observations 162 162 // --------------------- 163 if (obs ->P1) {164 satData->P1 = obs ->P1 + (bb ? bb->p1 : 0.0);163 if (obs.P1) { 164 satData->P1 = obs.P1 + (bb ? bb->p1 : 0.0); 165 165 satData->codeTypeF1 = t_satData::P_CODE; 166 166 } 167 else if (obs ->C1) {168 satData->P1 = obs ->C1 + (bb ? bb->c1 : 0.0);167 else if (obs.C1) { 168 satData->P1 = obs.C1 + (bb ? bb->c1 : 0.0); 169 169 satData->codeTypeF1 = t_satData::C_CODE; 170 170 } … … 174 174 } 175 175 176 if (obs ->P2) {177 satData->P2 = obs ->P2 + (bb ? bb->p2 : 0.0);176 if (obs.P2) { 177 satData->P2 = obs.P2 + (bb ? bb->p2 : 0.0); 178 178 satData->codeTypeF2 = t_satData::P_CODE; 179 179 } 180 else if (obs ->C2) {181 satData->P2 = obs ->C2;180 else if (obs.C2) { 181 satData->P2 = obs.C2; 182 182 satData->codeTypeF2 = t_satData::C_CODE; 183 183 } … … 190 190 double f2 = t_CST::freq2; 191 191 192 if (obs ->satSys == 'R') {193 f1 = 1602000000.0 + 562500.0 * obs ->slotNum;194 f2 = 1246000000.0 + 437500.0 * obs ->slotNum;192 if (obs.satSys == 'R') { 193 f1 = 1602000000.0 + 562500.0 * obs.slotNum; 194 f2 = 1246000000.0 + 437500.0 * obs.slotNum; 195 195 } 196 196 … … 204 204 // Set Phase Observations 205 205 // ---------------------- 206 if (obs ->L1() && obs->L2()) {207 satData->L1 = obs ->L1() * t_CST::c / f1;208 satData->L2 = obs ->L2() * t_CST::c / f2;206 if (obs.L1() && obs.L2()) { 207 satData->L1 = obs.L1() * t_CST::c / f1; 208 satData->L2 = obs.L2() * t_CST::c / f2; 209 209 } 210 210 else { … … 220 220 // Add new Satellite to the epoch 221 221 // ------------------------------ 222 bncTime tt(obs ->GPSWeek, obs->GPSWeeks);222 bncTime tt(obs.GPSWeek, obs.GPSWeeks); 223 223 224 224 if (!_epoData) { … … 233 233 } 234 234 235 if (obs ->satSys == 'G') {235 if (obs.satSys == 'G') { 236 236 _epoData->satDataGPS[satData->prn] = satData; 237 237 } 238 else if (obs ->satSys == 'R') {238 else if (obs.satSys == 'R') { 239 239 _epoData->satDataGlo[satData->prn] = satData; 240 240 } -
trunk/BNC/bncpppclient.h
r2710 r2711 120 120 bncPPPclient(QByteArray staID); 121 121 ~bncPPPclient(); 122 void putNewObs( t_obs*pp);122 void putNewObs(const t_obs& pp); 123 123 124 124 public slots: -
trunk/BNC/bncrinex.cpp
r2710 r2711 107 107 //////////////////////////////////////////////////////////////////////////// 108 108 bncRinex::~bncRinex() { 109 QListIterator<t_obs*> it(_obs);110 while (it.hasNext()) {111 delete it.next();112 }113 109 bncSettings settings; 114 110 if ((_rinexVers == 3) && ( Qt::CheckState(settings.value("rnxAppend").toInt()) != Qt::Checked) ) { … … 518 514 // Stores Observation into Internal Array 519 515 //////////////////////////////////////////////////////////////////////////// 520 void bncRinex::deepCopy(const t_obs* obs) { 521 t_obs* newObs = new t_obs(); 522 memcpy(newObs, obs, sizeof(t_obs)); 523 _obs.push_back(newObs); 516 void bncRinex::deepCopy(t_obs obs) { 517 _obs.push_back(obs); 524 518 } 525 519 … … 530 524 // Select observations older than maxTime 531 525 // -------------------------------------- 532 QList<t_obs *> dumpList;533 QMutableListIterator<t_obs *> mIt(_obs);526 QList<t_obs> dumpList; 527 QMutableListIterator<t_obs> mIt(_obs); 534 528 while (mIt.hasNext()) { 535 t_obs *obs = mIt.next();536 if (obs ->GPSWeek * 7*24*3600 + obs->GPSWeeks < maxTime - 0.05) {529 t_obs obs = mIt.next(); 530 if (obs.GPSWeek * 7*24*3600 + obs.GPSWeeks < maxTime - 0.05) { 537 531 dumpList.push_back(obs); 538 532 mIt.remove(); … … 548 542 // Time of Epoch 549 543 // ------------- 550 t_obs* fObs = *dumpList.begin();551 QDateTime datTim = dateAndTimeFromGPSweek(fObs ->GPSWeek, fObs->GPSWeeks);552 QDateTime datTimNom = dateAndTimeFromGPSweek(fObs ->GPSWeek,553 floor(fObs ->GPSWeeks+0.5));544 const t_obs& fObs = dumpList.first(); 545 QDateTime datTim = dateAndTimeFromGPSweek(fObs.GPSWeek, fObs.GPSWeeks); 546 QDateTime datTimNom = dateAndTimeFromGPSweek(fObs.GPSWeek, 547 floor(fObs.GPSWeeks+0.5)); 554 548 555 549 // Close the file … … 566 560 } 567 561 568 double sec = double(datTim.time().second()) + fmod(fObs ->GPSWeeks,1.0);562 double sec = double(datTim.time().second()) + fmod(fObs.GPSWeeks,1.0); 569 563 570 564 // Epoch header line: RINEX Version 3 … … 582 576 << " " << 0 << setw(3) << dumpList.size(); 583 577 584 QListIterator<t_obs *> it(dumpList); int iSat = 0;578 QListIterator<t_obs> it(dumpList); int iSat = 0; 585 579 while (it.hasNext()) { 586 580 iSat++; 587 t_obs*obs = it.next();588 _out << obs ->satSys << setw(2) << obs->satNum;581 const t_obs& obs = it.next(); 582 _out << obs.satSys << setw(2) << obs.satNum; 589 583 if (iSat == 12 && it.hasNext()) { 590 584 _out << endl << " "; … … 595 589 } 596 590 597 QListIterator<t_obs *> it(dumpList);591 QListIterator<t_obs> it(dumpList); 598 592 while (it.hasNext()) { 599 t_obs*obs = it.next();593 const t_obs& obs = it.next(); 600 594 601 595 // Cycle slips detection 602 596 // --------------------- 603 QString prn = QString("%1%2").arg(obs ->satSys)604 .arg(obs ->satNum, 2, 10, QChar('0'));597 QString prn = QString("%1%2").arg(obs.satSys) 598 .arg(obs.satNum, 2, 10, QChar('0')); 605 599 606 600 char lli1 = ' '; 607 601 char lli2 = ' '; 608 602 char lli5 = ' '; 609 if ( obs ->slip_cnt_L1 >= 0 ) {603 if ( obs.slip_cnt_L1 >= 0 ) { 610 604 if ( _slip_cnt_L1.find(prn) != _slip_cnt_L1.end() && 611 _slip_cnt_L1.find(prn).value() != obs ->slip_cnt_L1 ) {605 _slip_cnt_L1.find(prn).value() != obs.slip_cnt_L1 ) { 612 606 lli1 = '1'; 613 607 } 614 608 } 615 609 616 if ( obs ->slip_cnt_L2 >= 0 ) {610 if ( obs.slip_cnt_L2 >= 0 ) { 617 611 if ( _slip_cnt_L2.find(prn) != _slip_cnt_L2.end() && 618 _slip_cnt_L2.find(prn).value() != obs ->slip_cnt_L2 ) {612 _slip_cnt_L2.find(prn).value() != obs.slip_cnt_L2 ) { 619 613 lli2 = '1'; 620 614 } 621 615 } 622 616 623 if ( obs ->slip_cnt_L5 >= 0 ) {617 if ( obs.slip_cnt_L5 >= 0 ) { 624 618 if ( _slip_cnt_L5.find(prn) != _slip_cnt_L5.end() && 625 _slip_cnt_L5.find(prn).value() != obs ->slip_cnt_L5 ) {619 _slip_cnt_L5.find(prn).value() != obs.slip_cnt_L5 ) { 626 620 lli5 = '1'; 627 621 } 628 622 } 629 623 630 _slip_cnt_L1[prn] = obs ->slip_cnt_L1;631 _slip_cnt_L2[prn] = obs ->slip_cnt_L2;632 _slip_cnt_L5[prn] = obs ->slip_cnt_L5;624 _slip_cnt_L1[prn] = obs.slip_cnt_L1; 625 _slip_cnt_L2[prn] = obs.slip_cnt_L2; 626 _slip_cnt_L5[prn] = obs.slip_cnt_L5; 633 627 634 628 // RINEX Version 3 … … 642 636 // --------------- 643 637 else { 644 _out << setw(14) << setprecision(3) << obs->C1 << ' ' << ' ' 645 << setw(14) << setprecision(3) << obs->P1 << ' ' << ' ' 646 << setw(14) << setprecision(3) << obs->L1() << lli1 << ' ' 647 << setw(14) << setprecision(3) << obs->S1() << ' ' << ' ' 648 << setw(14) << setprecision(3) << obs->C2 << ' ' << ' ' << endl 649 << setw(14) << setprecision(3) << obs->P2 << ' ' << ' ' 650 << setw(14) << setprecision(3) << obs->L2() << lli2 << ' ' 651 << setw(16) << setprecision(3) << obs->S2() << endl; 652 } 653 654 delete obs; 638 _out << setw(14) << setprecision(3) << obs.C1 << ' ' << ' ' 639 << setw(14) << setprecision(3) << obs.P1 << ' ' << ' ' 640 << setw(14) << setprecision(3) << obs.L1() << lli1 << ' ' 641 << setw(14) << setprecision(3) << obs.S1() << ' ' << ' ' 642 << setw(14) << setprecision(3) << obs.C2 << ' ' << ' ' << endl 643 << setw(14) << setprecision(3) << obs.P2 << ' ' << ' ' 644 << setw(14) << setprecision(3) << obs.L2() << lli2 << ' ' 645 << setw(16) << setprecision(3) << obs.S2() << endl; 646 } 655 647 } 656 648 … … 679 671 // One Line in RINEX v3 (static) 680 672 //////////////////////////////////////////////////////////////////////////// 681 string bncRinex::rinexSatLine(const t_obs *obs,673 string bncRinex::rinexSatLine(const t_obs& obs, 682 674 char lli1, char lli2, char lli5) { 683 675 ostringstream str; 684 676 str.setf(ios::showpoint | ios::fixed); 685 677 686 if (obs ->satSys == 'G') { // GPS687 str << obs ->satSys688 << setw(2) << setfill('0') << obs ->satNum << setfill(' ')689 << setw(14) << setprecision(3) << obs ->C1 << ' ' << ' '690 << setw(14) << setprecision(3) << obs ->L1C << lli1 << ' '691 << setw(14) << setprecision(3) << obs ->D1C << ' ' << ' '692 << setw(14) << setprecision(3) << obs ->S1C << ' ' << ' '693 << setw(14) << setprecision(3) << obs ->P1 << ' ' << ' '694 << setw(14) << setprecision(3) << obs ->L1P << lli1 << ' '695 << setw(14) << setprecision(3) << obs ->D1P << ' ' << ' '696 << setw(14) << setprecision(3) << obs ->S1P << ' ' << ' '697 << setw(14) << setprecision(3) << obs ->P2 << ' ' << ' '698 << setw(14) << setprecision(3) << obs ->L2P << lli2 << ' '699 << setw(14) << setprecision(3) << obs ->D2P << ' ' << ' '700 << setw(14) << setprecision(3) << obs ->S2P << ' ' << ' '701 << setw(14) << setprecision(3) << obs ->C2 << ' ' << ' '702 << setw(14) << setprecision(3) << obs ->L2C << lli2 << ' '703 << setw(14) << setprecision(3) << obs ->D2C << ' ' << ' '704 << setw(14) << setprecision(3) << obs ->S2C << ' ' << ' '705 << setw(14) << setprecision(3) << obs ->C5 << ' ' << ' '706 << setw(14) << setprecision(3) << obs ->L5 << lli5 << ' '707 << setw(14) << setprecision(3) << obs ->D5 << ' ' << ' '708 << setw(14) << setprecision(3) << obs ->S5;709 } 710 else if (obs ->satSys == 'R') { // Glonass711 str << obs ->satSys712 << setw(2) << setfill('0') << obs ->satNum << setfill(' ')713 << setw(14) << setprecision(3) << obs ->C1 << ' ' << ' '714 << setw(14) << setprecision(3) << obs ->L1C << lli1 << ' '715 << setw(14) << setprecision(3) << obs ->D1C << ' ' << ' '716 << setw(14) << setprecision(3) << obs ->S1C << ' ' << ' '717 << setw(14) << setprecision(3) << obs ->P1 << ' ' << ' '718 << setw(14) << setprecision(3) << obs ->L1P << lli1 << ' '719 << setw(14) << setprecision(3) << obs ->D1P << ' ' << ' '720 << setw(14) << setprecision(3) << obs ->S1P << ' ' << ' '721 << setw(14) << setprecision(3) << obs ->P2 << ' ' << ' '722 << setw(14) << setprecision(3) << obs ->L2P << lli2 << ' '723 << setw(14) << setprecision(3) << obs ->D2P << ' ' << ' '724 << setw(14) << setprecision(3) << obs ->S2P << ' ' << ' '725 << setw(14) << setprecision(3) << obs ->C2 << ' ' << ' '726 << setw(14) << setprecision(3) << obs ->L2C << lli2 << ' '727 << setw(14) << setprecision(3) << obs ->D2C << ' ' << ' '728 << setw(14) << setprecision(3) << obs ->S2C;729 } 730 else if (obs ->satSys == 'S') { // SBAS731 str << obs ->satSys732 << setw(2) << setfill('0') << obs ->satNum << setfill(' ')733 << setw(14) << setprecision(3) << obs ->C1 << ' ' << ' '734 << setw(14) << setprecision(3) << obs ->L1C << lli1 << ' '735 << setw(14) << setprecision(3) << obs ->D1C << ' ' << ' '736 << setw(14) << setprecision(3) << obs ->S1C << ' ' << ' '737 << setw(14) << setprecision(3) << obs ->P1 << ' ' << ' '738 << setw(14) << setprecision(3) << obs ->L1P << lli1 << ' '739 << setw(14) << setprecision(3) << obs ->D1P << ' ' << ' '740 << setw(14) << setprecision(3) << obs ->S1P;741 } 742 else if (obs ->satSys == 'E') { // Galileo743 str << obs ->satSys744 << setw(2) << setfill('0') << obs ->satNum << setfill(' ')745 << setw(14) << setprecision(3) << obs ->C1 << ' ' << ' '746 << setw(14) << setprecision(3) << obs ->L1C << lli1 << ' '747 << setw(14) << setprecision(3) << obs ->D1C << ' ' << ' '748 << setw(14) << setprecision(3) << obs ->S1C << ' ' << ' '749 << setw(14) << setprecision(3) << obs ->C5 << ' ' << ' '750 << setw(14) << setprecision(3) << obs ->L5 << lli5 << ' '751 << setw(14) << setprecision(3) << obs ->D5 << ' ' << ' '752 << setw(14) << setprecision(3) << obs ->S5;678 if (obs.satSys == 'G') { // GPS 679 str << obs.satSys 680 << setw(2) << setfill('0') << obs.satNum << setfill(' ') 681 << setw(14) << setprecision(3) << obs.C1 << ' ' << ' ' 682 << setw(14) << setprecision(3) << obs.L1C << lli1 << ' ' 683 << setw(14) << setprecision(3) << obs.D1C << ' ' << ' ' 684 << setw(14) << setprecision(3) << obs.S1C << ' ' << ' ' 685 << setw(14) << setprecision(3) << obs.P1 << ' ' << ' ' 686 << setw(14) << setprecision(3) << obs.L1P << lli1 << ' ' 687 << setw(14) << setprecision(3) << obs.D1P << ' ' << ' ' 688 << setw(14) << setprecision(3) << obs.S1P << ' ' << ' ' 689 << setw(14) << setprecision(3) << obs.P2 << ' ' << ' ' 690 << setw(14) << setprecision(3) << obs.L2P << lli2 << ' ' 691 << setw(14) << setprecision(3) << obs.D2P << ' ' << ' ' 692 << setw(14) << setprecision(3) << obs.S2P << ' ' << ' ' 693 << setw(14) << setprecision(3) << obs.C2 << ' ' << ' ' 694 << setw(14) << setprecision(3) << obs.L2C << lli2 << ' ' 695 << setw(14) << setprecision(3) << obs.D2C << ' ' << ' ' 696 << setw(14) << setprecision(3) << obs.S2C << ' ' << ' ' 697 << setw(14) << setprecision(3) << obs.C5 << ' ' << ' ' 698 << setw(14) << setprecision(3) << obs.L5 << lli5 << ' ' 699 << setw(14) << setprecision(3) << obs.D5 << ' ' << ' ' 700 << setw(14) << setprecision(3) << obs.S5; 701 } 702 else if (obs.satSys == 'R') { // Glonass 703 str << obs.satSys 704 << setw(2) << setfill('0') << obs.satNum << setfill(' ') 705 << setw(14) << setprecision(3) << obs.C1 << ' ' << ' ' 706 << setw(14) << setprecision(3) << obs.L1C << lli1 << ' ' 707 << setw(14) << setprecision(3) << obs.D1C << ' ' << ' ' 708 << setw(14) << setprecision(3) << obs.S1C << ' ' << ' ' 709 << setw(14) << setprecision(3) << obs.P1 << ' ' << ' ' 710 << setw(14) << setprecision(3) << obs.L1P << lli1 << ' ' 711 << setw(14) << setprecision(3) << obs.D1P << ' ' << ' ' 712 << setw(14) << setprecision(3) << obs.S1P << ' ' << ' ' 713 << setw(14) << setprecision(3) << obs.P2 << ' ' << ' ' 714 << setw(14) << setprecision(3) << obs.L2P << lli2 << ' ' 715 << setw(14) << setprecision(3) << obs.D2P << ' ' << ' ' 716 << setw(14) << setprecision(3) << obs.S2P << ' ' << ' ' 717 << setw(14) << setprecision(3) << obs.C2 << ' ' << ' ' 718 << setw(14) << setprecision(3) << obs.L2C << lli2 << ' ' 719 << setw(14) << setprecision(3) << obs.D2C << ' ' << ' ' 720 << setw(14) << setprecision(3) << obs.S2C; 721 } 722 else if (obs.satSys == 'S') { // SBAS 723 str << obs.satSys 724 << setw(2) << setfill('0') << obs.satNum << setfill(' ') 725 << setw(14) << setprecision(3) << obs.C1 << ' ' << ' ' 726 << setw(14) << setprecision(3) << obs.L1C << lli1 << ' ' 727 << setw(14) << setprecision(3) << obs.D1C << ' ' << ' ' 728 << setw(14) << setprecision(3) << obs.S1C << ' ' << ' ' 729 << setw(14) << setprecision(3) << obs.P1 << ' ' << ' ' 730 << setw(14) << setprecision(3) << obs.L1P << lli1 << ' ' 731 << setw(14) << setprecision(3) << obs.D1P << ' ' << ' ' 732 << setw(14) << setprecision(3) << obs.S1P; 733 } 734 else if (obs.satSys == 'E') { // Galileo 735 str << obs.satSys 736 << setw(2) << setfill('0') << obs.satNum << setfill(' ') 737 << setw(14) << setprecision(3) << obs.C1 << ' ' << ' ' 738 << setw(14) << setprecision(3) << obs.L1C << lli1 << ' ' 739 << setw(14) << setprecision(3) << obs.D1C << ' ' << ' ' 740 << setw(14) << setprecision(3) << obs.S1C << ' ' << ' ' 741 << setw(14) << setprecision(3) << obs.C5 << ' ' << ' ' 742 << setw(14) << setprecision(3) << obs.L5 << lli5 << ' ' 743 << setw(14) << setprecision(3) << obs.D5 << ' ' << ' ' 744 << setw(14) << setprecision(3) << obs.S5; 753 745 } 754 746 return str.str(); -
trunk/BNC/bncrinex.h
r2710 r2711 42 42 const QByteArray& ntripVersion); 43 43 ~bncRinex(); 44 void deepCopy( const t_obs*obs);44 void deepCopy(t_obs obs); 45 45 void dumpEpoch(long maxTime); 46 46 void setReconnectFlag(bool flag){_reconnectFlag = flag;} … … 55 55 } 56 56 57 static std::string rinexSatLine(const t_obs *obs,57 static std::string rinexSatLine(const t_obs& obs, 58 58 char lli1, char lli2, char lli5); 59 59 … … 67 67 QByteArray _statID; 68 68 QByteArray _fName; 69 QList<t_obs *>_obs;69 QList<t_obs> _obs; 70 70 std::ofstream _out; 71 71 QStringList _headerLines; -
trunk/BNC/latencychecker.cpp
r2710 r2711 307 307 // Perform latency checks (observations) 308 308 ////////////////////////////////////////////////////////////////////////////// 309 void latencyChecker::checkObsLatency(const QList<t_obs *>& obsList) {309 void latencyChecker::checkObsLatency(const QList<t_obs>& obsList) { 310 310 311 311 if (_perfIntr > 0 ) { 312 312 313 QListIterator<t_obs *> it(obsList);313 QListIterator<t_obs> it(obsList); 314 314 while (it.hasNext()) { 315 t_obs*obs = it.next();315 const t_obs& obs = it.next(); 316 316 317 _newSecGPS = static_cast<int>(obs ->GPSWeeks);317 _newSecGPS = static_cast<int>(obs.GPSWeeks); 318 318 if (_newSecGPS != _oldSecGPS) { 319 319 if (_newSecGPS % _perfIntr < _oldSecGPS % _perfIntr) { … … 368 368 currentGPSWeeks(week, sec); 369 369 const double secPerWeek = 7.0 * 24.0 * 3600.0; 370 if (week < obs ->GPSWeek) {370 if (week < obs.GPSWeek) { 371 371 week += 1; 372 372 sec -= secPerWeek; 373 373 } 374 if (week > obs ->GPSWeek) {374 if (week > obs.GPSWeek) { 375 375 week -= 1; 376 376 sec += secPerWeek; 377 377 } 378 _curLat = sec - obs ->GPSWeeks;378 _curLat = sec - obs.GPSWeeks; 379 379 _sumLat += _curLat; 380 380 _sumLatQ += _curLat * _curLat; -
trunk/BNC/latencychecker.h
r2710 r2711 38 38 void checkReconnect(); 39 39 void checkOutage(bool decoded); 40 void checkObsLatency(const QList<t_obs *>& obsList);40 void checkObsLatency(const QList<t_obs>& obsList); 41 41 void checkCorrLatency(int corrGPSEpochTime); 42 42 double currentLatency() const {return _curLat;}
Note:
See TracChangeset
for help on using the changeset viewer.