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

📄 obsid.hpp

📁 gps源代码
💻 HPP
字号:
#pragma ident "$Id$"//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================//============================================================================////This software developed by Applied Research Laboratories at the University of//Texas at Austin, under contract to an agency or agencies within the U.S. //Department of Defense. The U.S. Government retains all rights to use,//duplicate, distribute, disclose, or release this software. ////Pursuant to DoD Directive 523024 //// DISTRIBUTION STATEMENT A: This software has been approved for public //                           release, distribution is unlimited.////=============================================================================#ifndef GPSTK_OBSID_HPP#define GPSTK_OBSID_HPP#include <iostream>#include <iomanip>#include <sstream>#include <string>#include <map>/** * @file ObsID.hpp * gpstk::ObsID - navigation system, receiver, and file specification    independent representation of the types of observation data that can   be collected.  This class is analogous to the RinexObsType class that   is used to represent the observation codes in a RINEX file. It is   intended to support at least everything in section 5.1 of the RINEX 3   specifications. */namespace gpstk{   class ObsID   {   public:      /// The type of observation.      enum ObservationType      {         otUnknown,         otRange,     ///< pseudorange, in meters         otPhase,     ///< accumulated phase, in meters         otDoppler,   ///< Doppler, in Hz         otSNR,       ///< Signal strength, in dB-Hz         otSSI,       ///< Signal strength indicator/inded (kinda a rinex thing)         otLLI,       ///< loss of lock indicator/ lock count         otLast,      ///< used to extend this...         otPlaceholder = otLast+1000      };      /// The frequency band this obs was collected from.      enum CarrierBand      {         cbUnknown,         cbL1,   ///< GPS L1, Galileo E2-L1-E1, SBAS L1         cbL2,   ///< GPS L2         cbL5,   ///< GPS L5, Galileo E5a, SBAS L5         cbL1L2, ///< Combined L1L2 (like an ionosphere free obs)         cbG1,   ///< Glonass G1         cbG2,   ///< Glonass G2         cbE5b,  ///< Galileo E5b         cbE5ab, ///< Galileo E5a+b         cbE6,   ///< Galileo E6         cbLast, ///< Used to extend this...         ccPlaceholder = cbLast+1000      };      /// The code used to collect the observation. This generally follows      /// the attributes in section 5.1 of RINEX 3. Note that these need to      /// be interpreted in conjunction with the satellite system that      /// is in the svid variable.      enum TrackingCode      {         tcUnknown,          tcCA,      ///< Legacy civil code         tcP,       ///< Legacy precise code         tcY,       ///< Encrypted legacy precise code         tcW,       ///< Encrypted legacy precise code, with codeless Z mode tracking         tcN,       ///< Encrypted legacy precise code, with codeless tracking         tcM,       ///< Encrypted modernized precise code         tcC2M,     ///< L2 civil M code         tcC2L,     ///< L2 civil L code         tcC2LM,    ///< L2 civil M+L combined tracking (such as Trimble NetRS, Septrentrio, and ITT)         tcI5,      ///< L5 civil in-phase         tcQ5,      ///< L5 civil quadrature         tcIQ5,     ///< L5 civil I+Q combined tracking         tcA,       ///< Galileo L1 PRS code         tcB,       ///< Galileo OS/CS/SoL code         tcC,       ///< Galileo Dataless code         tcBC,      ///< Galileo B+C combined tracking         tcABC,     ///< Galileo A+B+C combined tracking         tcLast,    ///< Used to extend this...         tcPlaceholder = tcLast+1000      };      /// empty constructor, creates an invalid object      ObsID()         : type(otUnknown), band(cbUnknown), code(tcUnknown) {};      /// Explicit constructor      ObsID(ObservationType ot, CarrierBand cb, TrackingCode tc)         : type(ot), band(cb), code(tc) {};      /// Equality requires all fields to be the same      virtual bool operator==(const ObsID& right) const;      /// This ordering is somewhat arbitrary but is required to be able      /// to use an ObsID as an index to a std::map. If an application needs      /// some other ordering, inherit and override this function.      virtual bool operator<(const ObsID& right) const;      bool operator!=(const ObsID& right) const      { return !(operator==(right)); }      bool operator>(const ObsID& right) const      {  return (!operator<(right) && !operator==(right)); }      bool operator<=(const ObsID& right) const      { return (operator<(right) || operator==(right)); }      bool operator>=(const ObsID& right) const      { return !(operator<(right)); }      /// Convenience output method      virtual std::ostream& dump(std::ostream& s) const;      /// Return true if this is a valid ObsID. Basically just      /// checks that none of the enums are undefined      virtual bool isValid() const;      /// Destructor      virtual ~ObsID() {}      static ObservationType newObservationType(const std::string& s);      static CarrierBand newCarrierBand(const std::string& s);      static TrackingCode newTrackingCode(const std::string& s);      ObservationType  type;      CarrierBand      band;      TrackingCode     code;      static std::map< TrackingCode,    std::string > tcStrings;      static std::map< CarrierBand,     std::string > cbStrings;      static std::map< ObservationType, std::string > otStrings;   public:      class Initializer      {      public:         Initializer();      };      static Initializer singleton;   }; // class ObsID   namespace StringUtils   {      /// convert this object to a string representation      std::string asString(const ObsID& p);   }      /// stream output for ObsID   std::ostream& operator<<(std::ostream& s, const ObsID& p);} // namespace gpstk#endif

⌨️ 快捷键说明

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