NovatelData Class Reference
[Novatel receiver utilities]

#include <NovatelData.hpp>

Inheritance diagram for NovatelData:

Inheritance graph
[legend]
Collaboration diagram for NovatelData:

Collaboration graph
[legend]
List of all members.

Detailed Description

Read Novatel binary records and parse into Rinex.

Currently supports the basic data records of OEM2 and OEM4 files only; others are yet to be implemented. Ref. (OEM2) 'GPSCard Command Descriptions' Manual (Rev 3) Ref. 'OEM4 Family of Receivers,' Users Manual Volume 2 (OM-20000047 Rev 12)

Definition at line 70 of file NovatelData.hpp.

Public Types

enum  RecType {
  Unknown = 0, RGEB, RGEC, POSB,
  REPB, RCSB, RANGE, RANGECMP,
  RAWEPHEM
}
 block types implemented here More...

Public Member Functions

 NovatelData (void)
 Default constructor.
virtual ~NovatelData (void)
 Destructor.
bool isValid (void) const
 Return true if this is a valid Novatel record.
virtual bool isHeader (void) const
 This class is not header.
virtual bool isData (void) const
 This class is data.
bool isNav (void) const
 True if this record is an ephemeris record Test the identity of the record with this before casting into Rinex.
bool isObs (void) const
 True if this record is observation data Test the identity of the record with this before casting into Rinex.
bool isAux (void) const
 True if this record is auxiliary data (not Nav, not Obs) (only one of isNav(), isObs() and isAux() is true.
bool isOEM2 (void) const
 True if this record belongs to OEM2 receivers.
bool isOEM4 (void) const
 True if this record belongs to OEM4 receivers.
virtual void dump (std::ostream &str) const
 Dump the contents of the record to the ostream str.
void setWeek (long &gpsweek)
 set the week number of the data, this is required for OEM2 nav records that are processed before any obs records
 operator RinexNavData () throw (gpstk::Exception)
 cast *this into an gpstk::RinexNavData.
 operator RinexObsData () throw (gpstk::Exception)
 cast *this into a gpstk::RinexObsData
Exceptions:
if the record is invalid or not an observation (isObs()==false)


Public Attributes

RecType rectype
 record type (cf. enum RecType)
int recnum
 record number (byte 4 of record)
long datasize
 size of data in bytes
int headersize
 size of header in bytes (=3 for OEM2)

Static Public Attributes

const std::string RecNames []
 Names of the record types : RecNames[rectype].

Protected Member Functions

virtual void reallyPutRecord (FFStream &s) const throw (std::exception, gpstk::StringUtils::StringException, gpstk::FFStreamError)
 Write this record to the stream s.
virtual void reallyGetRecord (FFStream &s) throw (std::exception, gpstk::StringUtils::StringException, gpstk::FFStreamError)
 Read a NovatelData record from the FFStream s.


Member Enumeration Documentation

enum RecType
 

block types implemented here

Enumeration values:
Unknown  unknown block type
RGEB  observations -- not implemented
RGEC  observations
POSB  position solution -- not implemented
REPB  ephemeris
RCSB  receiver stats -- not implemented
RANGE  range and phase data (synchronous)
RANGECMP  range and phase data, compressed (synchronous)
RAWEPHEM  ephemeris data (asynchronous)

Definition at line 74 of file NovatelData.hpp.


Constructor & Destructor Documentation

NovatelData void   )  [inline]
 

Default constructor.

Definition at line 93 of file NovatelData.hpp.

virtual ~NovatelData void   )  [inline, virtual]
 

Destructor.

Definition at line 97 of file NovatelData.hpp.


Member Function Documentation

void dump std::ostream &  str  )  const [virtual]
 

Dump the contents of the record to the ostream str.

Reimplemented from FFData.

Definition at line 206 of file NovatelData.cpp.

References NovatelData::rectype.

bool isAux void   )  const
 

True if this record is auxiliary data (not Nav, not Obs) (only one of isNav(), isObs() and isAux() is true.

Definition at line 125 of file NovatelData.cpp.

References NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

virtual bool isData void   )  const [inline, virtual]
 

This class is data.

Reimplemented from FFData.

Definition at line 107 of file NovatelData.hpp.

virtual bool isHeader void   )  const [inline, virtual]
 

This class is not header.

Reimplemented from FFData.

Definition at line 104 of file NovatelData.hpp.

bool isNav void   )  const
 

True if this record is an ephemeris record Test the identity of the record with this before casting into Rinex.

Definition at line 83 of file NovatelData.cpp.

References NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

Referenced by NovatelData::operator RinexNavData().

bool isObs void   )  const
 

True if this record is observation data Test the identity of the record with this before casting into Rinex.

Definition at line 104 of file NovatelData.cpp.

References NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

Referenced by NovatelData::operator RinexObsData().

bool isOEM2 void   )  const
 

True if this record belongs to OEM2 receivers.

Definition at line 147 of file NovatelData.cpp.

References NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

bool isOEM4 void   )  const
 

True if this record belongs to OEM4 receivers.

Definition at line 167 of file NovatelData.cpp.

References NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

bool isValid void   )  const
 

Return true if this is a valid Novatel record.

Test the validity of the record with this before further processing.

Definition at line 186 of file NovatelData.cpp.

References NovatelData::datasize, NovatelData::headersize, NovatelData::POSB, NovatelData::RANGE, NovatelData::RANGECMP, NovatelData::RAWEPHEM, NovatelData::RCSB, NovatelData::REPB, NovatelData::RGEB, NovatelData::RGEC, and NovatelData::Unknown.

Referenced by NovatelData::operator RinexNavData(), and NovatelData::operator RinexObsData().

operator RinexNavData  )  throw (gpstk::Exception)
 

cast *this into an gpstk::RinexNavData.

Exceptions:
if the record is invalid or not an ephemeris (isNav()==false)

Definition at line 541 of file NovatelData.cpp.

References EngEphemeris::addSubframe(), DayTime::GPSfullweek(), GPSTK_THROW, gpstk::BinUtils::intelToHost(), NovatelData::isNav(), NovatelData::isValid(), and NovatelData::rectype.

operator RinexObsData  )  throw (gpstk::Exception)
 

cast *this into a gpstk::RinexObsData

Exceptions:
if the record is invalid or not an observation (isObs()==false)

Definition at line 670 of file NovatelData.cpp.

References RinexObsData::clockOffset, RinexObsData::RinexDatum::data, RinexObsData::epochFlag, DayTime::GPSfullweek(), GPSTK_THROW, gpstk::BinUtils::intelToHost(), NovatelData::isObs(), NovatelData::isValid(), RinexObsData::RinexDatum::lli, RinexObsData::numSvs, RinexObsData::obs, NovatelData::rectype, RinexObsData::RinexDatum::ssi, RinexObsData::time, and wl1.

void reallyGetRecord FFStream s  )  throw (std::exception, gpstk::StringUtils::StringException, gpstk::FFStreamError) [protected, virtual]
 

Read a NovatelData record from the FFStream s.

If an error is encountered, the function will return the stream to its original state and mark its fail-bit.

Exceptions:
FFStreamError when exceptions(failbit) is set and a read or formatting error occurs. This also resets the stream to its pre-read position.

Implements FFData.

Definition at line 221 of file NovatelData.cpp.

References failure, FFBinaryStream::getData(), GPSTK_THROW, and gpstk::BinUtils::intelToHost().

void reallyPutRecord FFStream s  )  const throw (std::exception, gpstk::StringUtils::StringException, gpstk::FFStreamError) [protected, virtual]
 

Write this record to the stream s.

Implements FFData.

Definition at line 212 of file NovatelData.cpp.

References GPSTK_THROW.

void setWeek long &  gpsweek  )  [inline]
 

set the week number of the data, this is required for OEM2 nav records that are processed before any obs records

Definition at line 132 of file NovatelData.hpp.


Member Data Documentation

long datasize
 

size of data in bytes

Definition at line 145 of file NovatelData.hpp.

Referenced by NovatelData::isValid().

int headersize
 

size of header in bytes (=3 for OEM2)

Definition at line 146 of file NovatelData.hpp.

Referenced by NovatelData::isValid().

const string RecNames [static]
 

Initial value:

 {
         string("Unknown"),
         string("RGEB obs"),
         string("RGEC obs"),
         string("POSB pos"),
         string("REPB nav"),
         string("RCSB sts"),
         string("RANGE obs"),
         string("RANGECMP obs"),
         string("RAWEPHEM nav")
      }
Names of the record types : RecNames[rectype].

Definition at line 70 of file NovatelData.cpp.

int recnum
 

record number (byte 4 of record)

Definition at line 144 of file NovatelData.hpp.

RecType rectype
 

record type (cf. enum RecType)

Definition at line 143 of file NovatelData.hpp.

Referenced by NovatelData::dump(), NovatelData::operator RinexNavData(), and NovatelData::operator RinexObsData().


The documentation for this class was generated from the following files:
Generated on Wed Feb 8 03:31:34 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1