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 headingTrue
Heading/track/course with respect to true North [rad].
Definition: nmeamessages.h:124
double utcTimeSec
Definition: nmeamessages.h:77
int satellites
Number of satellites.
Definition: nmeamessages.h:93
double geoidalSeparation
Height of geoid (mean sea level) above WGS84 ellipsoid [metres].
Definition: nmeamessages.h:99
int timeStampUsec
Definition: nmeamessages.h:117
Definition: nmeamessages.h:49
DataType type() const
Returns data type.
Definition: nmeamessages.h:110
double speed
Horizontal velocity [metres/second].
Definition: nmeamessages.h:207
Gps data structure.
Definition: nmeamessages.h:171
Definition: nmeamessages.h:57
int timeStampUsec
Definition: nmeamessages.h:147
DataType
Possible types GenericData can contain.
Definition: nmeamessages.h:19
double horizontalDilutionOfPosition
Horizontal dilution of position [metres].
Definition: nmeamessages.h:96
int timeStampUsec
Definition: nmeamessages.h:181
double verticalPositionError
Vertical position error: one standard deviation [metres].
Definition: nmeamessages.h:160
int utcTimeMin
Definition: nmeamessages.h:188
Invalid or not available.
Definition: nmeamessages.h:46
DataType type() const
Returns data type.
Definition: nmeamessages.h:140
double utcTimeSec
Definition: nmeamessages.h:191
double headingMagnetic
Heading/track/course with respect to magnetic North [rad].
Definition: nmeamessages.h:205
double latitude
Latitude [degrees].
Definition: nmeamessages.h:80
double headingTrue
Heading/track/course with respect to true North [rad].
Definition: nmeamessages.h:203
bool isAltitudeKnown
Altitude is meaningful if and only if isAltitudeKnown.
Definition: nmeamessages.h:84
Garmin GPS driver.
Contents of PGRME message.
Definition: nmeamessages.h:26
int timeStampUsec
Definition: nmeamessages.h:67
bool isValid
Definition: nmeamessages.h:151
int utcTimeHrs
Definition: nmeamessages.h:71
Contents of GPRMC message.
Definition: nmeamessages.h:28
FixType
GPS fix types.
Definition: nmeamessages.h:43
bool isValid
Definition: nmeamessages.h:200
bool isValid
Definition: nmeamessages.h:121
FixType fixType
Definition: nmeamessages.h:90
double longitude
Longitude [degrees].
Definition: nmeamessages.h:82
Vector track and speed over ground data structure.
Definition: nmeamessages.h:107
bool isVerticalPositionErrorValid
Definition: nmeamessages.h:155
int utcTimeHrs
Definition: nmeamessages.h:185
DataType type() const
Returns data type.
Definition: nmeamessages.h:60
double altitude
Altitude [metres above ellipsoid] (only meaningful if isAltitudeKnown)
Definition: nmeamessages.h:86
int timeStampSec
Definition: nmeamessages.h:64
virtual DataType type() const =0
Returns data type.
Generic data type returned by a read.
Definition: nmeamessages.h:32
int utcTimeMin
Definition: nmeamessages.h:74
int timeStampSec
Definition: nmeamessages.h:114
Contents of PGGGA message.
Definition: nmeamessages.h:22
double speed
Horizontal velocity [metres/second].
Definition: nmeamessages.h:128
double estimatedPositionError
Estimated position error.
Definition: nmeamessages.h:163
double horizontalPositionError
Horizontal position error: one standard deviation [metres)].
Definition: nmeamessages.h:158
Contents of PGVTG message.
Definition: nmeamessages.h:24
DataType type() const
Returns data type.
Definition: nmeamessages.h:174
int timeStampSec
Definition: nmeamessages.h:144
Differentially corrected.
Definition: nmeamessages.h:51
double headingMagnetic
Heading/track/course with respect to magnetic North [rad].
Definition: nmeamessages.h:126
double latitude
Latitude [degrees].
Definition: nmeamessages.h:194
Definition: nmeamessages.h:137
int timeStampSec
Definition: nmeamessages.h:178
double longitude
Longitude [degrees].
Definition: nmeamessages.h:196
 

Generated for GearBox by  doxygen 1.4.5