PackedNavBits.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_PACKEDNAVBITS_HPP
45 #define GNSSTK_PACKEDNAVBITS_HPP
46 
47 #include <bitset>
48 #include <memory>
49 #include <vector>
50 #include <cstddef>
51 #include "gnsstkplatform.h" //#include <stdint.h>
52 #include <string>
53 
54 #include "ObsID.hpp"
55 #include "NavID.hpp"
56 #include "SatID.hpp"
57 #include "CommonTime.hpp"
58 #include "Exception.hpp"
59 
60 namespace gnsstk
61 {
63 
64 
65  // forward declaration
68  typedef std::shared_ptr<PackedNavBits> PackedNavBitsPtr;
69 
71  {
72  public:
77  {
81  };
82 
84  PackedNavBits();
85 
87  PackedNavBits(const SatID& satSysArg,
88  const ObsID& obsIDArg,
89  const CommonTime& transmitTimeArg);
90 
92  PackedNavBits(const SatID& satSysArg,
93  const ObsID& obsIDArg,
94  const std::string rxString,
95  const CommonTime& transmitTimeArg);
96 
98  PackedNavBits(const SatID& satSysArg,
99  const ObsID& obsIDArg,
100  const NavID& navIDArg,
101  const std::string rxString,
102  const CommonTime& transmitTimeArg);
103 
105  PackedNavBits(const SatID& satSysArg,
106  const ObsID& obsIDArg,
107  const NavID& navIDArg,
108  const std::string rxString,
109  const CommonTime& transmitTimeArg,
110  unsigned numBits,
111  bool fillValue);
112 
113  PackedNavBits(const PackedNavBits& right); // Copy constructor
114  //PackedNavBits& operator=(const PackedNavBits& right); // Copy assignment
115 
116  PackedNavBits* clone() const;
117 
118  void setSatID(const SatID& satSysArg);
119  void setObsID(const ObsID& obsIDArg);
120  void setNavID(const NavID& navIDArg);
121  void setRxID(const std::string rxString);
122  void setTime(const CommonTime& transmitTimeArg);
123  void clearBits();
124 
125  /* Returnst the satellite system ID for a particular SV */
126  SatID getsatSys() const;
127 
128  /* Returns Observation type, Carrier, and Tracking Code */
129  ObsID getobsID() const;
130 
131  /* Return navigation message ID */
132  NavID getNavID() const;
133 
134  /* Returns string defining the receiver that collected the data.
135  NOTE: This was a late addition to PackedNavBits and may not
136  be present in all applications */
137  std::string getRxID() const;
138 
139  /* Returns time of transmission from SV */
140  CommonTime getTransmitTime() const;
141 
142  /* Returns the number of bits */
143  size_t getNumBits() const;
144 
145  /* Output the contents of this class to the given stream. */
146  void dump(std::ostream& s = std::cout) const noexcept;
147 
148  /*** UNPACKING FUNCTIONS *********************************/
149  /* Unpack an unsigned long integer */
150  unsigned long asUnsignedLong(const int startBit,
151  const int numBits,
152  const int scale ) const;
153 
154  /* Unpack a signed long integer */
155  long asLong(const int startBit,
156  const int numBits,
157  const int scale ) const;
158 
159  /* Unpack an unsigned double */
160  double asUnsignedDouble( const int startBit,
161  const int numBits,
162  const int power2) const;
163 
164  /* Unpack a signed double */
165  double asSignedDouble( const int startBit,
166  const int numBits,
167  const int power2) const;
168 
169  /* Unpack a double with units of semicircles */
170  double asDoubleSemiCircles( const int startBit,
171  const int numBits,
172  const int power2) const;
173 
174  /* Unpack a string */
175  std::string asString(const int startBit,
176  const int numChars) const;
177 
178  // The following three methods were added to support
179  // GLONASS sign/magnitude real values.
180  //
181  // Since GLONASS has no disjoint fields (at least not
182  // up through ICD Edition 5.1) there are no methods
183  // for unpacking disjoint-field sign/mag quantities.
184  /* Unpack a sign/mag long */
185  long asSignMagLong(const int startBit,
186  const int numBits,
187  const int scale) const;
188 
189  /* Unpack a sign/mag double */
190  double asSignMagDouble( const int startBit,
191  const int numBits,
192  const int power2) const;
193 
194  /* Unpack a sign/mag double with units of semi-circles */
195  double asSignMagDoubleSemiCircles( const int startBit,
196  const int numBits,
197  const int power2) const;
198 
199  /* Unpack mehthods that join multiple disjoint
200  navigation message areas as a single field
201  NOTE: startBit1 is associated with the most significant section
202  startBit2 is associated with the least significant section
203  */
204  /* Unpack a split unsigned long integer */
205  unsigned long asUnsignedLong(const unsigned startBits[],
206  const unsigned numBits[],
207  const unsigned len,
208  const int scale ) const;
209 
220  unsigned long asUnsignedLong(const unsigned startBit1,
221  const unsigned numBits1,
222  const unsigned startBit2,
223  const unsigned numBits2,
224  const int scale ) const;
225 
226  /* Unpack a signed long integer */
227  long asLong(const unsigned startBits[],
228  const unsigned numBits[],
229  const unsigned len,
230  const int scale ) const;
231 
242  long asLong(const unsigned startBit1,
243  const unsigned numBits1,
244  const unsigned startBit2,
245  const unsigned numBits2,
246  const int scale ) const;
247 
248  /* Unpack a split unsigned double */
249  double asUnsignedDouble( const unsigned startBits[],
250  const unsigned numBits[],
251  const unsigned len,
252  const int power2) const;
253 
265  double asUnsignedDouble(const unsigned startBit1,
266  const unsigned numBits1,
267  const unsigned startBit2,
268  const unsigned numBits2,
269  const int power2) const;
270 
271  /* Unpack a split signed double */
272  double asSignedDouble( const unsigned startBits[],
273  const unsigned numBits[],
274  const unsigned len,
275  const int power2) const;
276 
298  static double asUnsignedDouble(const std::vector<unsigned>& startBits,
299  const std::vector<unsigned>& numBits,
300  const std::vector<unsigned>& whichSF,
301  const std::vector<PackedNavBitsPtr>& bits,
302  const int power2);
303 
325  static double asSignedDouble(const std::vector<unsigned>& startBits,
326  const std::vector<unsigned>& numBits,
327  const std::vector<unsigned>& whichSF,
328  const std::vector<PackedNavBitsPtr>& bits,
329  const int power2);
330 
342  double asSignedDouble(const unsigned startBit1,
343  const unsigned numBits1,
344  const unsigned startBit2,
345  const unsigned numBits2,
346  const int power2) const;
347 
348  /* Unpack a split double with units of semicircles */
349  double asDoubleSemiCircles( const unsigned startBits[],
350  const unsigned numBits[],
351  const unsigned len,
352  const int power2) const;
353 
366  double asDoubleSemiCircles(const unsigned startBit1,
367  const unsigned numBits1,
368  const unsigned startBit2,
369  const unsigned numBits2,
370  const int power2) const;
371 
372  bool asBool( const unsigned bitNum) const;
373 
374  /*** PACKING FUNCTIONS *********************************/
378  void addUnsignedLong( const unsigned long value,
379  const int numBits,
380  const int scale );
381 
385  void addLong( const long value,
386  const int numBits,
387  const int scale );
388 
392  void addUnsignedDouble( const double value,
393  const int numBits,
394  const int power2);
395 
399  void addSignedDouble( const double value,
400  const int numBits,
401  const int power2);
402 
406  void addDoubleSemiCircles( const double radians,
407  const int numBits,
408  const int power2);
409 
421  void addString(const std::string String,
422  const int numChars);
423 
437  void addDataVec(const std::vector<uint8_t>& data, unsigned numBits);
438 
445  template <size_t N>
446  void addBitset(const std::bitset<N>& newbits)
447  {
448  std::string binbits(newbits.to_string((char)0,(char)1));
449  bits.insert(bits.end(), &binbits[0], &binbits[binbits.length()]);
450  bits_used += binbits.length();
451  }
452 
456  void addPackedNavBits( const PackedNavBits &pnb);
457 
458  /*
459  * Output the packed bits as a set of 32 bit
460  * hex values, four per line, without any
461  * additional information.
462  * Returns the number of bits in the object.
463  */
464  int outputPackedBits(std::ostream& s = std::cout,
465  const short numPerLine=4,
466  const char delimiter = ' ',
467  const short numBitsPerWord=32 ) const;
468 
469  /*
470  * The equality operator insists that ALL the metadata
471  * and the complete bit patterns must match.
472  * However, there are frequently occaisions when only
473  * a subset of the metadata need be checked, and sometimes
474  * only certain set of bits. Therefore, operator==( ) is
475  * supplemented by matchBits( ) and matchMetaData( )
476  */
477  bool operator==(const PackedNavBits& right) const;
478 
479  /*
480  * There are frequently cases in which we want to know
481  * if a pair of PackedNavBits objects are from the same
482  * SV, but we might want to allow for different receivers
483  * and/or different ObsIDs. Therefore, matchMetaData( )
484  * allows specification of the particular metadata items
485  * that are to be checked using a bit-flag system.
486  */
487  static const unsigned int mmTIME = 0x0001; // Check transmitTime
488  static const unsigned int mmSAT = 0x0002; // Check SatID
489  static const unsigned int mmOBS = 0x0004; // Check ObsID
490  static const unsigned int mmRX = 0x0008; // Check Receiver ID
491  static const unsigned int mmNAV = 0x0010; // Check NavID
492  static const unsigned int mmALL = 0xFFFF; // Check ALL metadata
493  static const unsigned int mmNONE = 0x0000; // NO metadata checks
494  bool matchMetaData(const PackedNavBits& right,
495  const unsigned flagBits=mmALL) const;
496  /*
497  * Return true if all bits between start and end are identical
498  * between this object and right. Default is to compare all
499  * bits.
500  *
501  * This method allows comparison of the "unchanging" data in
502  * nav messages while avoiding the time tags.
503  */
504  bool matchBits(const PackedNavBits& right,
505  const short startBit=0,
506  const short endBit=-1) const;
507 
508  /*
509  * This is the most flexible of the matching methods.
510  * A default of match(right) will yield the same
511  * result as operator==( ).
512  * However, the arguments provide the means to
513  * specifically check bits sequences and/or
514  * selectively check the metadata.
515  */
516  bool match(const PackedNavBits& right,
517  const short startBit=0,
518  const short endBit=-1,
519  const unsigned flagBits=mmALL) const;
520  /*
521  * This version was the original equality checker. As
522  * first implemented, it checks ONLY SAT and OBS for
523  * equality. Therefore, it is maintained with that
524  * default functionality. That is to say, when
525  * checkOverhead==true, the result is the same as a call
526  * to matchBits(right,startBit,endBit, (mmSAT|mmOBS)).
527  *
528  * For clarity, it is suggested that new code use
529  * operator==(),
530  * matchMetaData(), and/or
531  * matchBits( ) using explicit flags.
532  *
533  * This version was REMOVED because of ambiguity
534  * in the signature.
535  *
536  * The checkOverhead option allows the user to ignore
537  * the associated metadata. E.g. ObsID, SatID.
538  *
539  bool matchBits(const PackedNavBits& right,
540  const short startBit=0,
541  const short endBit=-1,
542  const bool checkOverhead) const;
543  */
544 
553  bool operator<(const PackedNavBits& right) const;
554 
558  void invert( );
559 
576  void copyBits(const PackedNavBits& src,
577  const short startBit=0,
578  const short endBit=-1);
579 
590  void insertUnsignedLong(const unsigned long value,
591  const int startBit,
592  const int numBits,
593  const int scale=1 );
597  void reset_num_bits(const int new_bits_used=0);
598 
599  /* Resize the vector holding the packed data. */
600  void trimsize();
601 
617  void rawBitInput(const std::string inString );
618 
619  void setXmitCoerced(bool tf=true) {xMitCoerced=tf;}
620  bool isXmitCoerced() const {return xMitCoerced;}
621 
622  const std::vector<bool>& getBits() const
623  { return bits; }
624 
629 
630  private:
634  std::string rxID;
636  std::vector<bool> bits;
638 
639  bool xMitCoerced;
646  uint64_t asUint64_t(const int startBit, const int numBits ) const;
647 
649  void addUint64_t( const uint64_t value, const int numBits );
650 
652  int64_t SignExtend( const int startBit, const int numBits ) const;
653 
655  double ScaleValue( const double value, const int power2) const;
656 
657  }; // class PackedNavBits
658 
660  std::ostream& operator<<(std::ostream& s, const PackedNavBits& pnb);
661 
662 } // namespace
663 
664 #endif
gnsstk::PackedNavBits::addDataVec
void addDataVec(const std::vector< uint8_t > &data, unsigned numBits)
Definition: PackedNavBits.cpp:740
gnsstk::PackedNavBits::obsID
ObsID obsID
Definition: PackedNavBits.hpp:632
gnsstk::PackedNavBits::setRxID
void setRxID(const std::string rxString)
Definition: PackedNavBits.cpp:197
gnsstk::PackedNavBits::getNavID
NavID getNavID() const
Definition: PackedNavBits.cpp:225
gnsstk::PackedNavBits::match
bool match(const PackedNavBits &right, const short startBit=0, const short endBit=-1, const unsigned flagBits=mmALL) const
Definition: PackedNavBits.cpp:1079
gnsstk::PackedNavBits::transmitTime
CommonTime transmitTime
Definition: PackedNavBits.hpp:635
gnsstk::PackedNavBitsPtr
std::shared_ptr< PackedNavBits > PackedNavBitsPtr
Managed pointer for passing PackedNavBits around.
Definition: PackedNavBits.hpp:66
gnsstk::PackedNavBits::addUnsignedDouble
void addUnsignedDouble(const double value, const int numBits, const int power2)
Definition: PackedNavBits.cpp:648
gnsstk::PackedNavBits::addDoubleSemiCircles
void addDoubleSemiCircles(const double radians, const int numBits, const int power2)
Definition: PackedNavBits.cpp:680
gnsstk::PackedNavBits::reset_num_bits
void reset_num_bits(const int new_bits_used=0)
Definition: PackedNavBits.cpp:932
gnsstk::PackedNavBits::asUnsignedDouble
double asUnsignedDouble(const int startBit, const int numBits, const int power2) const
Definition: PackedNavBits.cpp:282
gnsstk::PackedNavBits::addPackedNavBits
void addPackedNavBits(const PackedNavBits &pnb)
Definition: PackedNavBits.cpp:771
gnsstk::PackedNavBits::navID
NavID navID
Definition: PackedNavBits.hpp:633
gnsstk::PackedNavBits::asUnsignedLong
unsigned long asUnsignedLong(const int startBit, const int numBits, const int scale) const
Definition: PackedNavBits.cpp:265
gnsstk::PackedNavBits::matchMetaData
bool matchMetaData(const PackedNavBits &right, const unsigned flagBits=mmALL) const
Definition: PackedNavBits.cpp:1089
gnsstk::PackedNavBits::isXmitCoerced
bool isXmitCoerced() const
Definition: PackedNavBits.hpp:620
gnsstkplatform.h
gnsstk::PackedNavBits::invert
void invert()
Definition: PackedNavBits.cpp:841
gnsstk::PackedNavBits::asSignedDouble
double asSignedDouble(const int startBit, const int numBits, const int power2) const
Definition: PackedNavBits.cpp:293
gnsstk::PackedNavBits::getTransmitTime
CommonTime getTransmitTime() const
Definition: PackedNavBits.cpp:235
gnsstk::PackedNavBits::mmNAV
static const unsigned int mmNAV
Definition: PackedNavBits.hpp:491
gnsstk::PackedNavBits::setTime
void setTime(const CommonTime &transmitTimeArg)
Definition: PackedNavBits.cpp:203
gnsstk::PackedNavBits::asDoubleSemiCircles
double asDoubleSemiCircles(const int startBit, const int numBits, const int power2) const
Definition: PackedNavBits.cpp:304
gnsstk::SatID
Definition: SatID.hpp:89
SatID.hpp
gnsstk::PackedNavBits::asSignMagLong
long asSignMagLong(const int startBit, const int numBits, const int scale) const
Definition: PackedNavBits.cpp:313
gnsstk::PackedNavBits::psFailed
@ psFailed
Parity/CRC check was performed and failed.
Definition: PackedNavBits.hpp:80
gnsstk::PackedNavBits::rawBitInput
void rawBitInput(const std::string inString)
Definition: PackedNavBits.cpp:1142
gnsstk::PackedNavBits::setXmitCoerced
void setXmitCoerced(bool tf=true)
Definition: PackedNavBits.hpp:619
gnsstk::PackedNavBits::psPassed
@ psPassed
Parity/CRC check was performed and passed.
Definition: PackedNavBits.hpp:79
gnsstk::PackedNavBits::mmNONE
static const unsigned int mmNONE
Definition: PackedNavBits.hpp:493
gnsstk::PackedNavBits::parityStatus
ParityStatus parityStatus
Definition: PackedNavBits.hpp:628
gnsstk::PackedNavBits::addLong
void addLong(const long value, const int numBits, const int scale)
Definition: PackedNavBits.cpp:629
gnsstk::PackedNavBits::operator<
bool operator<(const PackedNavBits &right) const
Definition: PackedNavBits.cpp:813
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::PackedNavBits::xMitCoerced
bool xMitCoerced
Definition: PackedNavBits.hpp:639
gnsstk::PackedNavBits::mmOBS
static const unsigned int mmOBS
Definition: PackedNavBits.hpp:489
gnsstk::PackedNavBits::bits_used
int bits_used
Definition: PackedNavBits.hpp:637
gnsstk::PackedNavBits::mmRX
static const unsigned int mmRX
Definition: PackedNavBits.hpp:490
gnsstk::PackedNavBits::setSatID
void setSatID(const SatID &satSysArg)
Definition: PackedNavBits.cpp:179
gnsstk::PackedNavBits::addUint64_t
void addUint64_t(const uint64_t value, const int numBits)
Definition: PackedNavBits.cpp:783
gnsstk::PackedNavBits::getBits
const std::vector< bool > & getBits() const
Definition: PackedNavBits.hpp:622
gnsstk::PackedNavBits::mmTIME
static const unsigned int mmTIME
Definition: PackedNavBits.hpp:487
gnsstk::PackedNavBits::setObsID
void setObsID(const ObsID &obsIDArg)
Definition: PackedNavBits.cpp:185
gnsstk::PackedNavBits::bits
std::vector< bool > bits
Definition: PackedNavBits.hpp:636
gnsstk::PackedNavBits::operator==
bool operator==(const PackedNavBits &right) const
Definition: PackedNavBits.cpp:1072
gnsstk::PackedNavBits::insertUnsignedLong
void insertUnsignedLong(const unsigned long value, const int startBit, const int numBits, const int scale=1)
Definition: PackedNavBits.cpp:889
gnsstk::PackedNavBits::mmALL
static const unsigned int mmALL
Definition: PackedNavBits.hpp:492
gnsstk::PackedNavBits::asSignMagDouble
double asSignMagDouble(const int startBit, const int numBits, const int power2) const
Definition: PackedNavBits.cpp:331
gnsstk::PackedNavBits::asLong
long asLong(const int startBit, const int numBits, const int scale) const
Definition: PackedNavBits.cpp:275
gnsstk::PackedNavBits::trimsize
void trimsize()
Definition: PackedNavBits.cpp:938
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::PackedNavBits::setNavID
void setNavID(const NavID &navIDArg)
Definition: PackedNavBits.cpp:191
gnsstk::operator<<
std::ostream & operator<<(std::ostream &s, const ObsEpoch &oe) noexcept
Definition: ObsEpochMap.cpp:54
gnsstk::PackedNavBits::SignExtend
int64_t SignExtend(const int startBit, const int numBits) const
Definition: PackedNavBits.cpp:944
gnsstk::PackedNavBits::ParityStatus
ParityStatus
Definition: PackedNavBits.hpp:76
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::PackedNavBits::clearBits
void clearBits()
Definition: PackedNavBits.cpp:209
gnsstk::PackedNavBits::asBool
bool asBool(const unsigned bitNum) const
Definition: PackedNavBits.cpp:606
gnsstk::PackedNavBits::matchBits
bool matchBits(const PackedNavBits &right, const short startBit=0, const short endBit=-1) const
Definition: PackedNavBits.cpp:1116
gnsstk::PackedNavBits::asSignMagDoubleSemiCircles
double asSignMagDoubleSemiCircles(const int startBit, const int numBits, const int power2) const
Definition: PackedNavBits.cpp:349
gnsstk::PackedNavBits::rxID
std::string rxID
Definition: PackedNavBits.hpp:634
gnsstk::PackedNavBits::addString
void addString(const std::string String, const int numChars)
Definition: PackedNavBits.cpp:699
gnsstk::PackedNavBits::copyBits
void copyBits(const PackedNavBits &src, const short startBit=0, const short endBit=-1)
Definition: PackedNavBits.cpp:864
gnsstk::PackedNavBits::dump
void dump(std::ostream &s=std::cout) const noexcept
Definition: PackedNavBits.cpp:966
gnsstk::PackedNavBits::psUnknown
@ psUnknown
Parity/CRC check has not been performed.
Definition: PackedNavBits.hpp:78
example3.data
data
Definition: example3.py:22
gnsstk::PackedNavBits::outputPackedBits
int outputPackedBits(std::ostream &s=std::cout, const short numPerLine=4, const char delimiter=' ', const short numBitsPerWord=32) const
Definition: PackedNavBits.cpp:1028
gnsstk::PackedNavBits::clone
PackedNavBits * clone() const
Definition: PackedNavBits.cpp:174
ObsID.hpp
gnsstk::PackedNavBits::addSignedDouble
void addSignedDouble(const double value, const int numBits, const int power2)
Definition: PackedNavBits.cpp:662
Exception.hpp
gnsstk::PackedNavBits::satSys
SatID satSys
Definition: PackedNavBits.hpp:631
gnsstk::PackedNavBits::asString
std::string asString(const int startBit, const int numChars) const
Definition: PackedNavBits.cpp:358
gnsstk::PackedNavBits::addBitset
void addBitset(const std::bitset< N > &newbits)
Definition: PackedNavBits.hpp:446
CommonTime.hpp
gnsstk::PackedNavBits::getobsID
ObsID getobsID() const
Definition: PackedNavBits.cpp:215
NavID.hpp
gnsstk::PackedNavBits::mmSAT
static const unsigned int mmSAT
Definition: PackedNavBits.hpp:488
gnsstk::PackedNavBits::addUnsignedLong
void addUnsignedLong(const unsigned long value, const int numBits, const int scale)
Definition: PackedNavBits.cpp:613
gnsstk::PackedNavBits
Definition: PackedNavBits.hpp:70
gnsstk::NavID
Definition: NavID.hpp:61
gnsstk::PackedNavBits::asUint64_t
uint64_t asUint64_t(const int startBit, const int numBits) const
Definition: PackedNavBits.cpp:246
gnsstk::PackedNavBits::getRxID
std::string getRxID() const
Definition: PackedNavBits.cpp:230
gnsstk::PackedNavBits::getsatSys
SatID getsatSys() const
Definition: PackedNavBits.cpp:220
gnsstk::PackedNavBits::PackedNavBits
PackedNavBits()
empty constructor
Definition: PackedNavBits.cpp:57
gnsstk::PackedNavBits::ScaleValue
double ScaleValue(const double value, const int power2) const
Definition: PackedNavBits.cpp:957
gnsstk::PackedNavBits::getNumBits
size_t getNumBits() const
Definition: PackedNavBits.cpp:240


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