RinexNavHeader.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
44 #ifndef GNSSTK_RINEXNAVHEADER_HPP
45 #define GNSSTK_RINEXNAVHEADER_HPP
46 
47 #include "FFStream.hpp"
48 #include "RinexNavBase.hpp"
49 #include "RNDouble.hpp"
50 #include "gnsstk_export.h"
51 
52 namespace gnsstk
53 {
55 
56 
64  {
65  public:
68 
70  virtual ~RinexNavHeader() {}
71 
73  virtual bool isHeader() const {return true;}
74 
76  virtual void dump(std::ostream& s) const;
77 
79  unsigned long valid;
80 
82  enum validBits
83  {
84  versionValid = 0x01,
85  runByValid = 0x02,
86  commentValid = 0x04,
87  ionAlphaValid = 0x08,
88  ionBetaValid = 0x010,
89  deltaUTCValid = 0x020,
90  leapSecondsValid = 0x040,
91  endValid = 0x080000000,
92 
95  allValid20 = 0x080000003,
98  allValid21 = 0x080000003,
101  allValid211 = 0x080000003
102  };
103 
104  double version;
105 
106  std::string fileType;
107  std::string fileProgram;
108  std::string fileAgency;
109  std::string date;
110  std::vector<std::string> commentList;
118 
119  GNSSTK_EXPORT
120  static const std::string versionString; //"RINEX VERSION / TYPE"
121  GNSSTK_EXPORT
122  static const std::string runByString; //"PGM / RUN BY / DATE"
123  GNSSTK_EXPORT
124  static const std::string commentString; // "COMMENT"
125  GNSSTK_EXPORT
126  static const std::string ionAlphaString; //"ION ALPHA"
127  GNSSTK_EXPORT
128  static const std::string ionBetaString; //"ION BETA"
129  GNSSTK_EXPORT
130  static const std::string deltaUTCString; //"DELTA-UTC: A0,A1,T,W"
131  GNSSTK_EXPORT
132  static const std::string leapSecondsString; //"LEAP SECONDS"
133  GNSSTK_EXPORT
134  static const std::string endOfHeader; //"END OF HEADER"
135 
136  protected:
142  virtual void reallyPutRecord(FFStream& s) const;
143 
154  virtual void reallyGetRecord(FFStream& s);
155  }; // class RinexNavHeader
156 
158 
159 } // namespace
160 
161 #endif
gnsstk::RNDouble
Definition: RNDouble.hpp:50
gnsstk::RinexNavHeader::deltaUTCValid
@ deltaUTCValid
Set if the Delta UTC value is valid.
Definition: RinexNavHeader.hpp:89
gnsstk::RinexNavHeader::fileProgram
std::string fileProgram
Definition: RinexNavHeader.hpp:107
gnsstk::RinexNavHeader::versionString
static const GNSSTK_EXPORT std::string versionString
Definition: RinexNavHeader.hpp:120
gnsstk::RinexNavHeader::leapSecondsValid
@ leapSecondsValid
Set if the Leap Seconds value is valid.
Definition: RinexNavHeader.hpp:90
gnsstk::RinexNavHeader::valid
unsigned long valid
Tell me, Am I valid?
Definition: RinexNavHeader.hpp:79
gnsstk::RinexNavBase
Definition: RinexNavBase.hpp:57
gnsstk::FFStream
Definition: FFStream.hpp:119
gnsstk::RinexNavHeader::UTCRefWeek
long UTCRefWeek
Definition: RinexNavHeader.hpp:116
gnsstk::RinexNavHeader::fileType
std::string fileType
Definition: RinexNavHeader.hpp:106
gnsstk::RinexNavHeader::reallyPutRecord
virtual void reallyPutRecord(FFStream &s) const
Definition: RinexNavHeader.cpp:88
gnsstk::RinexNavHeader::UTCRefTime
long UTCRefTime
Definition: RinexNavHeader.hpp:115
gnsstk::RinexNavHeader::deltaUTCString
static const GNSSTK_EXPORT std::string deltaUTCString
Definition: RinexNavHeader.hpp:130
gnsstk::RinexNavHeader::version
double version
RINEX Version.
Definition: RinexNavHeader.hpp:104
gnsstk::RinexNavHeader::date
std::string date
Definition: RinexNavHeader.hpp:109
RNDouble.hpp
gnsstk::RinexNavHeader::ionBetaString
static const GNSSTK_EXPORT std::string ionBetaString
Definition: RinexNavHeader.hpp:128
gnsstk::RinexNavHeader::allValid20
@ allValid20
Definition: RinexNavHeader.hpp:95
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::RinexNavHeader::leapSecondsString
static const GNSSTK_EXPORT std::string leapSecondsString
Definition: RinexNavHeader.hpp:132
gnsstk::RinexNavHeader::ionAlphaValid
@ ionAlphaValid
Set if the Ion Alpha value is valid.
Definition: RinexNavHeader.hpp:87
gnsstk::RinexNavHeader::RinexNavHeader
RinexNavHeader()
Constructor.
Definition: RinexNavHeader.cpp:67
gnsstk::RinexNavHeader::commentList
std::vector< std::string > commentList
Definition: RinexNavHeader.hpp:110
gnsstk::FormattedDouble
Definition: FormattedDouble.hpp:70
gnsstk::RinexNavHeader::ionAlphaString
static const GNSSTK_EXPORT std::string ionAlphaString
Definition: RinexNavHeader.hpp:126
gnsstk::RinexNavHeader::versionValid
@ versionValid
Set if the RINEX version is valid.
Definition: RinexNavHeader.hpp:84
gnsstk::RinexNavHeader::allValid21
@ allValid21
Definition: RinexNavHeader.hpp:98
gnsstk::RinexNavHeader::allValid211
@ allValid211
Definition: RinexNavHeader.hpp:101
gnsstk::RinexNavHeader::fileAgency
std::string fileAgency
Definition: RinexNavHeader.hpp:108
gnsstk::RinexNavHeader::~RinexNavHeader
virtual ~RinexNavHeader()
Destructor.
Definition: RinexNavHeader.hpp:70
gnsstk::RinexNavHeader::validBits
validBits
These are validity bits used in checking the RINEX NAV header.
Definition: RinexNavHeader.hpp:82
gnsstk::RinexNavHeader
Definition: RinexNavHeader.hpp:63
gnsstk::RinexNavHeader::endValid
@ endValid
Set if the end value is valid.
Definition: RinexNavHeader.hpp:91
gnsstk::RinexNavHeader::ionBeta
FormattedDouble ionBeta[4]
Definition: RinexNavHeader.hpp:112
gnsstk::RinexNavHeader::commentString
static const GNSSTK_EXPORT std::string commentString
Definition: RinexNavHeader.hpp:124
gnsstk::RinexNavHeader::ionBetaValid
@ ionBetaValid
Set if the Ion Beta value is valid.
Definition: RinexNavHeader.hpp:88
gnsstk::RinexNavHeader::endOfHeader
static const GNSSTK_EXPORT std::string endOfHeader
Definition: RinexNavHeader.hpp:134
gnsstk::RinexNavHeader::A0
RNDouble A0
Definition: RinexNavHeader.hpp:113
gnsstk::RinexNavHeader::A1
RNDouble A1
Definition: RinexNavHeader.hpp:114
RinexNavBase.hpp
gnsstk::RinexNavHeader::dump
virtual void dump(std::ostream &s) const
This function dumps the contents of the header.
Definition: RinexNavHeader.cpp:303
gnsstk::RinexNavHeader::ionAlpha
FormattedDouble ionAlpha[4]
Definition: RinexNavHeader.hpp:111
gnsstk::RinexNavHeader::isHeader
virtual bool isHeader() const
RinexNavHeader is a "header" so this function always returns true.
Definition: RinexNavHeader.hpp:73
FFStream.hpp
gnsstk::RinexNavHeader::reallyGetRecord
virtual void reallyGetRecord(FFStream &s)
Definition: RinexNavHeader.cpp:192
gnsstk::RinexNavHeader::commentValid
@ commentValid
Set if the comments are valid. Very subjective.
Definition: RinexNavHeader.hpp:86
gnsstk::RinexNavHeader::runByValid
@ runByValid
Set if the Run-by value is valid.
Definition: RinexNavHeader.hpp:85
gnsstk::RinexNavHeader::runByString
static const GNSSTK_EXPORT std::string runByString
Definition: RinexNavHeader.hpp:122
gnsstk::RinexNavHeader::leapSeconds
long leapSeconds
Definition: RinexNavHeader.hpp:117


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:41