INTRODUCTION
Overview
Download and Install
Documentation
Publications

REPOSITORY
Libraries

DEVELOPER
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         
nmeamessages.h
1 /*
2  * GearBox Project: Peer-Reviewed Open-Source Libraries for Robotics
3  * http://gearbox.sf.net/
4  * Copyright (c) 2004-2010 Alex Brooks, Alexei Makarenko, Tobias Kaupp, Duncan Mercer
5  *
6  * This distribution is licensed to you under the terms described in
7  * the LICENSE file included in this distribution.
8  *
9  */
10 #ifndef GBXGPSUTILACFR_NMEAMESSAGES_H
11 #define GBXGPSUTILACFR_NMEAMESSAGES_H
12 
13 #include <string>
14 #include <gbxgarminacfr/nmeasentence.h>
15 
16 namespace gbxgarminacfr {
17 
19 enum DataType
20 {
29 };
30 
33 {
34 public:
35  virtual ~GenericData() {};
37  virtual DataType type() const=0;
38 
39 private:
40 };
41 
43 enum FixType
44 {
52 };
53 std::string toString( const FixType &f );
54 
57 struct GgaData : public GenericData
58 {
59 public:
60  DataType type() const { return GpGga; }
61 
68 
77  double utcTimeSec;
78 
80  double latitude;
82  double longitude;
86  double altitude;
87 
91 
94 
97 
100 };
101 std::string toString( const GgaData &d );
102 inline std::ostream &operator<<( std::ostream &s, const GgaData &d )
103 { return s << toString(d); }
104 GenericData* extractGgaData( const gbxgpsutilacfr::NmeaSentence& sentence, int timeSec, int timeUsec );
105 
107 class VtgData : public GenericData
108 {
109 public:
110  DataType type() const { return GpVtg; }
111 
118 
121  bool isValid;
122 
124  double headingTrue;
128  double speed;
129 };
130 std::string toString( const VtgData &d );
131 inline std::ostream &operator<<( std::ostream &s, const VtgData &d )
132 { return s << toString(d); }
133 GenericData* extractVtgData( const gbxgpsutilacfr::NmeaSentence& sentence, int timeSec, int timeUsec );
134 
137 class RmeData : public GenericData
138 {
139 public:
140  DataType type() const { return PgRme; }
141 
148 
151  bool isValid;
152 
156 
161 
164 };
165 std::string toString( const RmeData &d );
166 inline std::ostream &operator<<( std::ostream &s, const RmeData &d )
167 { return s << toString(d); }
168 GenericData* extractRmeData( const gbxgpsutilacfr::NmeaSentence& sentence, int timeSec, int timeUsec );
169 
171 class RmcData : public GenericData
172 {
173 public:
174  DataType type() const { return GpRmc; }
175 
182 
191  double utcTimeSec;
192 
194  double latitude;
196  double longitude;
197 
200  bool isValid;
201 
203  double headingTrue;
207  double speed;
208 };
209 std::string toString( const RmcData &d );
210 inline std::ostream &operator<<( std::ostream &s, const RmcData &d )
211 { return s << toString(d); }
212 GenericData* extractRmcData( const gbxgpsutilacfr::NmeaSentence& sentence, int timeSec, int timeUsec );
213 
214 }
215 
216 #endif
double horizontalDilutionOfPosition
Horizontal dilution of position [metres].
Definition: nmeamessages.h:96
Generic data type returned by a read.
Definition: nmeamessages.h:32
double utcTimeSec
Definition: nmeamessages.h:77
DataType
Possible types GenericData can contain.
Definition: nmeamessages.h:19
@ PgRme
Contents of PGRME message.
Definition: nmeamessages.h:26
double speed
Horizontal velocity [metres/second].
Definition: nmeamessages.h:128
int timeStampSec
Definition: nmeamessages.h:64
Base class for all GbxUtilAcfr exceptions.
Definition: gbxutilacfr/exceptions.h:65
Gps data structure.
Definition: nmeamessages.h:171
DataType type() const
Returns data type.
Definition: nmeamessages.h:110
bool isAltitudeKnown
Altitude is meaningful if and only if isAltitudeKnown.
Definition: nmeamessages.h:84
double headingMagnetic
Heading/track/course with respect to magnetic North [rad].
Definition: nmeamessages.h:126
int timeStampUsec
Definition: nmeamessages.h:181
@ Autonomous
Definition: nmeamessages.h:49
int utcTimeMin
Definition: nmeamessages.h:188
double longitude
Longitude [degrees].
Definition: nmeamessages.h:82
double utcTimeSec
Definition: nmeamessages.h:191
bool isValid
Definition: nmeamessages.h:151
Definition: nmeamessages.h:57
FixType fixType
Definition: nmeamessages.h:90
bool isValid
Definition: nmeamessages.h:200
int timeStampUsec
Definition: nmeamessages.h:67
double altitude
Altitude [metres above ellipsoid] (only meaningful if isAltitudeKnown)
Definition: nmeamessages.h:86
@ GpRmc
Contents of GPRMC message.
Definition: nmeamessages.h:28
int utcTimeHrs
Definition: nmeamessages.h:71
int utcTimeHrs
Definition: nmeamessages.h:185
Vector track and speed over ground data structure.
Definition: nmeamessages.h:107
int satellites
Number of satellites.
Definition: nmeamessages.h:93
int timeStampUsec
Definition: nmeamessages.h:147
@ GpVtg
Contents of PGVTG message.
Definition: nmeamessages.h:24
int utcTimeMin
Definition: nmeamessages.h:74
double headingTrue
Heading/track/course with respect to true North [rad].
Definition: nmeamessages.h:124
int timeStampSec
Definition: nmeamessages.h:114
int timeStampSec
Definition: nmeamessages.h:178
Garmin GPS driver.
int timeStampUsec
Definition: nmeamessages.h:117
FixType
GPS fix types.
Definition: nmeamessages.h:43
DataType type() const
Returns data type.
Definition: nmeamessages.h:60
int timeStampSec
Definition: nmeamessages.h:144
bool isValid
Definition: nmeamessages.h:121
double horizontalPositionError
Horizontal position error: one standard deviation [metres)].
Definition: nmeamessages.h:158
double headingMagnetic
Heading/track/course with respect to magnetic North [rad].
Definition: nmeamessages.h:205
double estimatedPositionError
Estimated position error.
Definition: nmeamessages.h:163
@ Differential
Differentially corrected.
Definition: nmeamessages.h:51
double geoidalSeparation
Height of geoid (mean sea level) above WGS84 ellipsoid [metres].
Definition: nmeamessages.h:99
double speed
Horizontal velocity [metres/second].
Definition: nmeamessages.h:207
double latitude
Latitude [degrees].
Definition: nmeamessages.h:194
virtual DataType type() const =0
Returns data type.
double longitude
Longitude [degrees].
Definition: nmeamessages.h:196
double latitude
Latitude [degrees].
Definition: nmeamessages.h:80
double headingTrue
Heading/track/course with respect to true North [rad].
Definition: nmeamessages.h:203
Definition: nmeamessages.h:137
@ Invalid
Invalid or not available.
Definition: nmeamessages.h:46
bool isVerticalPositionErrorValid
Definition: nmeamessages.h:155
DataType type() const
Returns data type.
Definition: nmeamessages.h:174
@ GpGga
Contents of PGGGA message.
Definition: nmeamessages.h:22
DataType type() const
Returns data type.
Definition: nmeamessages.h:140
double verticalPositionError
Vertical position error: one standard deviation [metres].
Definition: nmeamessages.h:160
 

Generated for GearBox by  doxygen 1.4.5