Aria
2.7.5.2
|
GPS subclass to support the NovAtel ProPak G2 and other NovAtel "OEM4" devices. More...
#include <ArNovatelGPS.h>
Inherits ArGPS.
Inherited by ArNovatelSPAN [virtual]
.
Protected Member Functions | |
void | handleNovatelGPGGA (ArNMEAParser::Message msg) |
virtual bool | initDevice () |
![]() | |
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< ArNovatelGPS, ArNMEAParser::Message > | myNovatelGPGGAHandler |
![]() | |
ArArgumentParser * | myArgParser |
bool | myCreatedOwnDeviceCon |
Data | myData |
ArDeviceConnection * | myDevice |
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, ArGPS > | myParseArgsCallback |
ArFunctor1C< ArGPS, ArNMEAParser::Message > | myPGRMEHandler |
ArFunctor1C< ArGPS, ArNMEAParser::Message > | myPGRMZHandler |
unsigned short | mySNRNum |
unsigned int | mySNRSum |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
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. | |
ArDeviceConnection * | getDeviceConnection () 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 const char * | getFixTypeName (FixType type) |
![]() | |
enum ArGPS:: { ... } | ReadFlags |
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... | |
![]() | |
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) |
GPS subclass to support the NovAtel ProPak G2 and other NovAtel "OEM4" devices.
This subclass overrides initDevice() to send initialization commands specific to NovAtel GPS devices. On connect, it initiazes SBAS (satellite-based augmentation) to "auto", which uses WAAS, EGNOS, or MSAS if available, and then requests NMEA messages to be interpreted by ArGPS.
It does not initialize corrections sent by your own DGPS fixed base station over radio, or the wide-area L-Band services such as OmniStar or the Canada-wide DGPS (supported by the NovaTel ProPak LBplus). To configure DGPS, you must connect to the GPS with a terminal program (e.g. "minicom" in Linux), configure the device for your specific service, region and radio settings, and save with the "saveconfig" command. See the GPS setup notes at http://robots.mobilerobots.com/tech_notes/GPS_Setup_Notes.txt and the NovAtel GPS Reference Manual Volume 1, Sections 4.3 and 4.5 for ("Transmitting and Receiving Corrections" and "Enabling L-Band Positioning") for more information on doing this.