⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svnumxref.hpp

📁 一个gps小工具包
💻 HPP
字号:
/** $Id: $*   SVNumXRef.hpp**   Applied Research Laboratories, The University of Texas at Austin*   June 2007**   This class implements a cross-reference between PRN numbers and NAVSTAR IDs.*   Since PRN numbers are re-used (historically, there's a limit of 1-32 in*   the PRN IDs) it's necessary provide a several->one PRN ID ->NAVSTAR mapping.*   On the other hand, the NAVSTAR->PRN ID mapping is unique.**   As a result, the PRN ID->NAVSTAR cross reference supports the ability to *   provide a date so the cross-reference can select.**   Note: Thie information is not contained anywhere in the navigation message.*   Therefore, it needs to come from "outside the system".  The information *   contained in the class constructor will also need to updated with each *   new launch and disposal.  This is a sore point, but there appears to be*   no easy way around it. **  MEMBER METHODS*     SVNumXRef( ); - Constructor.  Works from a fixed table that is compiled*                     into the code.*     int getNAVSTAR( const int PRNID ) const; - Given a PRNID, return the *                     NAVSTAR number.  Assumes the relationship at the *                     current date/time is the relationship of interest.*                     May throw "NoNAVSTARNumFound" error.*     int getNAVSTAR( const int PRNID, const gpstk::DayTime dt ) const; -*                     Given a PRNID and a date, return the NAVSTAR number*                     related to thsat PRNID at the date provided.  May *                     throw "NoNAVSTARNumFound" error.*     int getPRNID( const int NAVSTARID ) const; - GIven a NAVSTAR Number*                     return the corresponding PRNID.**  The following three members parallel the preceding three and provide a *  means of determining is the specified information is available prior to*  making a "get" call.  This is useful if you want to avoid writing *  "try/catch" blocks. *     bool PRNIDavailable(  const int NAVSTARID ) const;*     bool NAVSTARIDAvailable( const int PRNID, const gpstk::DayTime dt ) const;*     bool NAVSTARIDAvailable( const int PRNID ) const;**/#ifndef SVNUMXREF_HPP#define SVNUMXREF_HPP   // Language Headers#include <map>#include <utility>   // Library Headers#include "DayTime.hpp"#include "gps_constants.hpp"#include "Exception.hpp"   // Project Headersnamespace gpstk{class SVNumXRefNode{   public:      SVNumXRefNode( const int NAVSTARNumArg,                     const gpstk::DayTime begDT,                     const gpstk::DayTime endDT );      int getNAVSTARNum() const;      gpstk::DayTime getBeginTime() const;      gpstk::DayTime getEndTime() const;      bool isApplicable( gpstk::DayTime dt ) const;                     protected:      int NAVSTARNum;      gpstk::DayTime begValid;      gpstk::DayTime endValid;};typedef std::multimap<int, SVNumXRefNode>::const_iterator SVNumXRefListCI;typedef std::pair<SVNumXRefListCI,SVNumXRefListCI> SVNumXRefPair;typedef std::map<int,int>::const_iterator NAVNumXRefCI;class SVNumXRef{   public:      NEW_EXCEPTION_CLASS( NoPRNNumberFound, gpstk::Exception);      NEW_EXCEPTION_CLASS( NoNAVSTARNumberFound, gpstk::Exception);      enum BlockType       {	I,	II,	IIA,	IIR,	IIR_M      };        SVNumXRef( );      ~SVNumXRef() {}      BlockType getBlockType( const int NAVSTARID ) const;      std::string getBlockTypeString( const int NAVSTARID ) const;      int getNAVSTAR( const int PRNID ) const;      int getNAVSTAR( const int PRNID, const gpstk::DayTime dt ) const;      int getPRNID( const int NAVSTARID ) const;      bool PRNIDAvailable(  const int NAVSTARID ) const;      bool NAVSTARIDAvailable( const int PRNID, const gpstk::DayTime dt ) const;      bool BlockTypeAvailable( const int NAVSTARID ) const;      bool NAVSTARIDAvailable( const int PRNID ) const;      bool NAVSTARIDActive( const int NAVSTARID, const gpstk::DayTime dt ) const;         protected:      std::map<int,int> NtoPMap;      std::multimap<int,SVNumXRefNode> PtoNMap;      std::map<int,BlockType> NtoBMap;};inline int SVNumXRefNode::getNAVSTARNum() const { return(NAVSTARNum); }inline gpstk::DayTime SVNumXRefNode::getBeginTime() const { return( begValid ); }inline gpstk::DayTime SVNumXRefNode::getEndTime() const { return( endValid ); }}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -