예제 #1
0
파일: ephdiff.cpp 프로젝트: ianmartin/GPSTk
   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;
      }
예제 #2
0
파일: ephdiff.cpp 프로젝트: ianmartin/GPSTk
 bool operator() (const EngEphemeris& l, const EngEphemeris& r) const
    {
       if ( (l.getPRNID() == r.getPRNID()) && 
            (l.getIODC() == r.getIODC()) )
          return true;
       return false;
    }
예제 #3
0
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;
}
예제 #4
0
   // 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)'
예제 #5
0
   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)
예제 #6
0
파일: ephdiff.cpp 프로젝트: ianmartin/GPSTk
 bool operator() (const EngEphemeris& l) const
    {
       if ( (l.getPRNID() == PRN) && (l.getIODC() == IODC) )
          return true;
       return false;
    }
예제 #7
0
파일: ephdiff.cpp 프로젝트: ianmartin/GPSTk
 EphDiffFinder(const EngEphemeris& e)
       : PRN(e.getPRNID()), IODC(e.getIODC())
    {}