1 //==============================================================================
2 //
3 //  This file is part of GPSTk, the GPS Toolkit.
4 //
5 //  The GPSTk 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 GPSTk 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 GPSTk; 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-2020, 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 
39 /**
40  * @file OrbSysGpsL_51.hpp
41  * Designed to support loading GPS LNAV reserved pages
42  * Subframe 4, Page 14, SV ID 52
43  *             Page 15, SV ID 53
44  *             Page 12,19,20,22,23, & 24, SV ID 58-62
45  *             Page  1, 6,11,16,21, SV ID 57
46  */
47 
48 #ifndef SGLTK_ORBSYSGPSL_RESERVED_HPP
49 #define SGLTK_ORBSYSGPSL_RESERVED_HPP
50 
51 
52 #include <string>
53 #include <iostream>
54 #include <math.h>
55 
56 #include "OrbSysGpsL.hpp"
57 
58 namespace gpstk
59 {
60    class OrbSysGpsL_Reserved : public OrbSysGpsL
61    {
62    public:
63 
64          /// Default constructor
65       OrbSysGpsL_Reserved();
66 
67          /** Constructor for creating directly from a PackedNavBits object
68           * @throw InvalidParameter
69           */
70       OrbSysGpsL_Reserved(const PackedNavBits& msg);
71 
72          /// Destructor
~OrbSysGpsL_Reserved()73       virtual ~OrbSysGpsL_Reserved() {}
74 
75          /// Clone method
76       virtual OrbSysGpsL_Reserved* clone() const;
77 
78          /**
79           * Store the contents of Subframe 5, Page 25 in this object.
80           * @param msg - 300 bits of Subframe 5, Page 25.
81           * @throw InvalidParameter if message data is invalid
82           */
83       virtual void loadData(const PackedNavBits& msg);
84 
85       virtual bool isSameData(const OrbData* right) const;
86 
getName() const87       virtual std::string getName() const
88       {
89          return "Res";
90       }
91 
getNameLong() const92       virtual std::string getNameLong() const
93       {
94          return "GPS LNAV Reserved Page";
95       }
96 
97          /** Output the contents of this orbit data to the given stream.
98           * @throw InvalidRequest if the required data has not been stored.
99           */
100       virtual void dumpTerse(std::ostream& s = std::cout) const;
101 
102          /**
103           * @throw InvalidRequest
104           */
105       virtual void dumpBody(std::ostream& s = std::cout) const;
106 
107          // 182 reserved bits from words 3-10, without parity
108       PackedNavBits pnb;
109 
110    }; // end class OrbSysGpsL_Reserved
111 
112 } // end namespace gpstk
113 
114 #endif
115 
116