bool operator() (const EngEphemeris& l, const EngEphemeris& r) const { if (l.getPRNID() < r.getPRNID()) return true; else if (l.getPRNID() > r.getPRNID()) return false; else if (l.getFullWeek() < r.getFullWeek()) return true; else if (l.getFullWeek() > r.getFullWeek()) return false; else if (l.getIODC() < r.getIODC()) return true; else if (l.getIODC() > r.getIODC()) return false; else if (l.getASAlert(1) < r.getASAlert(1)) return true; else if (l.getASAlert(1) > r.getASAlert(1)) return false; else if (l.getASAlert(2) < r.getASAlert(2)) return true; else if (l.getASAlert(2) > r.getASAlert(2)) return false; else if (l.getASAlert(3) < r.getASAlert(3)) return true; else if (l.getASAlert(3) > r.getASAlert(3)) return false; return false; }
bool operator() (const EngEphemeris& l, const EngEphemeris& r) const { if ( (l.getPRNID() == r.getPRNID()) && (l.getIODC() == r.getIODC()) ) return true; return false; }
AlmOrbit ConvertEEtoAO(EngEphemeris& ee) { AlmOrbit ao( ee.getPRNID() , ee.getEcc() , ee.getI0()-0.3*PI, ee.getOmegaDot() , ee.getAhalf() , ee.getOmega0(), ee.getW() , ee.getM0() , ee.getAf0() , ee.getAf1() , long(ee.getToe()), long(ee.getHOWTime(1)), ee.getFullWeek(), ee.getHealth() ); return ao; }
// Deprecated; used GPSEphemeris. // This routine uses EngEphemeris, so is for GPS data only. // The comments about GPS v. Galileo next to each elements are just notes // from sorting out the ICDs in the RINEX 3 documentation. Please leave // them there until we add a routine for handling GalRecord or similar. Rinex3NavData::Rinex3NavData(const EngEphemeris& ee) // GPS only { // epoch info satSys = ee.getSatSys(); PRNID = ee.getPRNID(); sat = RinexSatID(PRNID,SatID::systemGPS); time = ee.getEpochTime(); Toc = ee.getToc(); HOWtime = long(ee.getHOWTime(1)); weeknum = ee.getFullWeek(); accuracy = ee.getAccuracy(); health = ee.getHealth(); // GPS or Galileo data af0 = ee.getAf0(); // GPS and Galileo only af1 = ee.getAf1(); // GPS and Galileo only af2 = ee.getAf2(); // GPS and Galileo only Crs = ee.getCrs(); // GPS and Galileo only dn = ee.getDn(); // GPS and Galileo only M0 = ee.getM0(); // GPS and Galileo only Cuc = ee.getCuc(); // GPS and Galileo only ecc = ee.getEcc(); // GPS and Galileo only Cus = ee.getCus(); // GPS and Galileo only Ahalf = ee.getAhalf(); // GPS and Galileo only Toe = ee.getToe(); // GPS and Galileo only Cic = ee.getCic(); // GPS and Galileo only OMEGA0 = ee.getOmega0(); // GPS and Galileo only Cis = ee.getCis(); // GPS and Galileo only i0 = ee.getI0(); // GPS and Galileo only Crc = ee.getCrc(); // GPS and Galileo only w = ee.getW(); // GPS and Galileo only OMEGAdot = ee.getOmegaDot(); // GPS and Galileo only idot = ee.getIDot(); // GPS and Galileo only // GPS-only data IODE = ee.getIODE(); // GPS only codeflgs = ee.getCodeFlags(); // GPS only L2Pdata = ee.getL2Pdata(); // GPS only Tgd = ee.getTgd(); // GPS only IODC = ee.getIODC(); // GPS only fitint = ee.getFitInterval(); // GPS only } // End of 'Rinex3NavData::Rinex3NavData(const EngEphemeris& ee)'
void processSubframes1to3(MDPNavSubframe& nav) { // For now, just look at L1 C/A navigation message if (nav.range != rcCA || nav.carrier != ccL1) return; NavIndex ni(RangeCarrierPair(nav.range, nav.carrier), nav.prn); ephData[ni] = nav; long sfa[10]; nav.fillArray(sfa); uint32_t uint_sfa[10]; for( int j = 0; j < 10; j++ ) uint_sfa[j] = static_cast<uint32_t>( sfa[j] ); numSubframesCollected++; if (gpstk::EngNav::checkParity(uint_sfa)) { paritySuccessCount++; ephPageStore[ni][nav.getSFID()] = nav; EngEphemeris engEph; if (makeEngEphemeris(engEph, ephPageStore[ni])) { currentPRN = engEph.getPRNID(); // debug if (firstNavSF) { earliestTime = engEph.getTransmitTime(); firstNavSF = false; } latestTime = engEph.getTransmitTime(); processEphemeris( engEph, ephPageStore[ni] ); } } else parityFailCount++; } // end of process(MDPNavSubframe)
bool operator() (const EngEphemeris& l) const { if ( (l.getPRNID() == PRN) && (l.getIODC() == IODC) ) return true; return false; }
EphDiffFinder(const EngEphemeris& e) : PRN(e.getPRNID()), IODC(e.getIODC()) {}