Aria  2.7.5.2
ArNovatelSPAN Class Reference

GPS subclass to support the NovAtel SPAN GPS with integrated IMU. More...

#include <ArNovatelGPS.h>

Inherits ArNovatelGPS.

Public Attributes

double GPSLatitude
 
double GPSLongitude
 
ArTime GPSTimestamp
 
bool GPSValidFlag
 
bool haveGPSPosition
 
ArTime timeGotGPSPosition
 

Protected Member Functions

void handleGPRMC (ArNMEAParser::Message msg)
 
void handleINGLL (ArNMEAParser::Message msg)
 
virtual bool initDevice ()
 
- Protected Member Functions inherited from ArNovatelGPS
void handleNovatelGPGGA (ArNMEAParser::Message msg)
 
- Protected Member Functions inherited from ArGPS
void handleGPGGA (ArNMEAParser::Message msg)
 
void handleGPGSA (ArNMEAParser::Message msg)
 
void handleGPGST (ArNMEAParser::Message msg)
 
void handleGPGSV (ArNMEAParser::Message msg)
 
void handleGPMSS (ArNMEAParser::Message msg)
 
void handleGPRMC (ArNMEAParser::Message msg)
 
void handleHCHDx (ArNMEAParser::Message msg)
 
void handlePGRME (ArNMEAParser::Message msg)
 
void handlePGRMZ (ArNMEAParser::Message msg)
 
void parseGPRMC (const ArNMEAParser::Message &msg, double &latitudeResult, double &longitudeResult, bool &qualityFlagResult, bool &gotPosition, ArTime &timeGotPositionResult, ArTime &gpsTimestampResult, bool &gotSpeedResult, double &speedResult)
 
bool readFloatFromString (std::string &str, double *target, double(*convf)(double)=NULL) const
 
bool readFloatFromStringVec (std::vector< std::string > *vec, size_t i, double *target, double(*convf)(double)=NULL) const
 
bool readTimeFromString (const std::string &s, ArTime *time) const
 
bool readUShortFromString (std::string &str, unsigned short *target, unsigned short(*convf)(unsigned short)=NULL) const
 
bool readUShortFromStringVec (std::vector< std::string > *vec, size_t i, unsigned short *target, unsigned short(*convf)(unsigned short)=NULL) const
 
bool waitForData (unsigned long timeout)
 

Protected Attributes

ArFunctor1C< ArNovatelSPAN,
ArNMEAParser::Message
myGPRMCHandler
 
ArFunctor1C< ArNovatelSPAN,
ArNMEAParser::Message
myINGLLHandler
 
- Protected Attributes inherited from ArNovatelGPS
ArFunctor1C< ArNovatelGPS,
ArNMEAParser::Message
myNovatelGPGGAHandler
 
- Protected Attributes inherited from ArGPS
ArArgumentParsermyArgParser
 
bool myCreatedOwnDeviceCon
 
Data myData
 
ArDeviceConnectionmyDevice
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPGGAHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPGSAHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPGSTHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPGSVHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPMSSHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myGPRMCHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myHCHDxHandler
 
ArMutex myMutex
 
ArNMEAParser myNMEAParser
 
ArRetFunctorC< bool, ArGPSmyParseArgsCallback
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myPGRMEHandler
 
ArFunctor1C< ArGPS,
ArNMEAParser::Message
myPGRMZHandler
 
unsigned short mySNRNum
 
unsigned int mySNRSum
 

Additional Inherited Members

- Public Types inherited from ArGPS
enum  { ReadFinished = ArNMEAParser::ParseFinished, ReadError = ArNMEAParser::ParseError, ReadData = ArNMEAParser::ParseData, ReadUpdated = ArNMEAParser::ParseUpdated }
 Flags to indicates what the read() method did. i.e. If nothing was done, then the result will be 0. To check a read() return result result to see if data was updated, use (result & ReadUpdated). To check if there was an error, use (result & ReadError). More...
 
enum  FixType {
  NoFix, BadFix, GPSFix, DGPSFix,
  PPSFix, RTKinFix, FloatRTKinFix, DeadReckFix,
  ManualFix, SimulatedFix, UnknownFixType, OmnistarConverging = FloatRTKinFix,
  OmnistarConverged = RTKinFix
}
 Access the last received data from the GPS. More...
 
- Public Member Functions inherited from ArGPS
void addNMEAHandler (const char *message, ArNMEAParser::Handler *handler)
 
bool blockingConnect (unsigned long connectTimeout=10000)
 
virtual bool connect (unsigned long connectTimeout=10000)
 Check that the device connection (e.g. serial port) is open, and that data is being received from GPS. More...
 
double getAltimeter () const
 
double getAltitude () const
 Calculated from GPS.
 
ArDeviceConnectiongetDeviceConnection () const
 Return device connection in use (or NULL if none)
 
double getHDOP () const
 
double getMeanSNR () const
 dB
 
double getPDOP () const
 
double getVDOP () const
 
bool haveAltimeter () const
 
bool haveAltitude () const
 Calculated from GPS.
 
bool haveHDOP () const
 
bool havePDOP () const
 
bool haveSNR () const
 
bool haveVDOP () const
 
void lock ()
 
void logData () const
 Log last received data using ArLog.
 
void printData (bool labels=true) const
 
void printDataLabelsHeader () const
 
virtual int read (unsigned long maxTime=0)
 Read some data from the device connection, and update stored data as complete messages are received. More...
 
int readWithLock (unsigned int maxTime)
 
void removeNMEAHandler (const char *message)
 
void setDeviceConnection (ArDeviceConnection *deviceConn)
 Set device connection to use.
 
void setIgnoreChecksum (bool ignore)
 Set whether checksum sent with NMEA messages is ignored.
 
void unlock ()
 
bool haveBeaconInfo () const
 
double getBeaconSignalStrength () const
 dB
 
double getBeaconSNR () const
 dB
 
double getBeaconFreq () const
 kHz
 
unsigned short getBecaonBPS () const
 bitrate (bits per second)
 
unsigned short getBeaconChannel () const
 
bool haveErrorEllipse () const
 
ArPose getErrorEllipse () const
 
bool haveLatLonError () const
 
ArPose getLatLonError () const
 
double getLatitudeError () const
 
double getLongitudeError () const
 
bool haveAltitudeError () const
 
double getAltitudeError () const
 Standard deviation of altitude error, meters.
 
bool haveInputsRMS () const
 
double getInputsRMS () const
 
const ArGPS::Data & getCurrentDataRef () const
 
FixType getFixType () const
 
const char * getFixTypeName () const
 
bool havePosition () const
 
bool haveLatitude () const
 
bool haveLongitude () const
 
double getLatitude () const
 
double getLongitude () const
 
ArTime getTimeReceivedPosition () const
 
bool haveSpeed () const
 
double getSpeed () const
 
ArTime getGPSPositionTimestamp () const
 
int getNumSatellitesTracked () const
 
bool haveDGPSStation () const
 
unsigned short getDGPSStationID () const
 
bool haveGarminPositionError () const
 
double getGarminPositionError () const
 
bool haveGarminVerticalPositionError () const
 
double getGarminVerticalPositionError () const
 GPS device's error estimation in meters.
 
bool haveCompassHeadingMag () const
 Have a compass heading value relative to magnetic north.
 
bool haveCompassHeadingTrue () const
 Have a compass heading value relative to true north (using device's configured declination)
 
double getCompassHeadingMag () const
 Heading from magnetic north.
 
double getCompassHeadingTrue () const
 Heading from true north.
 
void setCompassHeadingMag (double val)
 
void setCompassHeadingTrue (double val)
 
void setCompassHeadingMagWithLock (double val)
 
void setCompassHeadingTrueWithLock (double val)
 
- Static Public Member Functions inherited from ArGPS
static const char * getFixTypeName (FixType type)
 
- Static Protected Member Functions inherited from ArGPS
static double feetToMeters (double f)
 
static double gpsDegminToDegrees (double degmin)
 
static double knotsToMPS (double knots)
 
static double metersToFeet (double m)
 
static double mpsToMph (double mps)
 

Detailed Description

GPS subclass to support the NovAtel SPAN GPS with integrated IMU.

This subclass requests the INGLL NMEA message for combined IMU and GPS position, and updates the GPS position in ArGPS using this data. It replaces the normal GPRMC handler from ArGPS, and instead saves the uncorrected GPS data separately. (use dynamic_cast to cast an ArGPS object to an ArNovatelSPAN object to access this data).

Since
ARIA 2.7.2

Member Function Documentation

void ArNovatelSPAN::handleGPRMC ( ArNMEAParser::Message  msg)
protected

overrides ArNovatelGPS::handleGPRMC(), and keeps results of parsing the message in this class rather than ArGPS.


The documentation for this class was generated from the following files: