mb500
/build/rock-master-18.09-drivers-mb500-0.20170523/gps_types.hh
Go to the documentation of this file.
1 #ifndef GPS_TYPES_H
2 #define GPS_TYPES_H
3 
4 #ifndef __orogen
5 #include <vector>
6 #endif
7 
8 #include <base/Time.hpp>
9 
10 namespace gps {
12  {
14  AUTONOMOUS_2D = 6, // is 6 for historical reasons
17  INVALID = 3,
18  RTK_FIXED = 4,
20  };
21 
22  struct Time {
23  base::Time cpu_time;
24  base::Time gps_time;
26  };
27 
28  struct Solution {
29  base::Time time;
30  double latitude;
31  double longitude;
34  double altitude;
37 
41 #ifndef __orogen
43  : positionType(INVALID) {}
44 #endif
45  };
46 
47  struct Position {
48  base::Time time;
49  double latitude;
50  double longitude;
53  double altitude;
56 #ifndef __orogen
58  : positionType(INVALID) {}
59 #endif
60  };
61 
62  struct Errors {
63  base::Time time;
67  };
68 
69  struct SolutionQuality {
70  base::Time time;
71  std::vector<int> usedSatellites;
72  double pdop;
73  double hdop;
74  double vdop;
75  };
76 
81  };
82  struct Satellite {
83  int PRN;
84  int elevation;
85  int azimuth;
86  double SNR;
87 
88 #ifndef __orogen
90  {
91  if (prn < 33)
92  return CONSTELLATION_GPS;
93  else if (prn < 65)
94  return CONSTELLATION_SBAS;
95  else
96  return CONSTELLATION_GLONASS;
97  }
98 
100  {
101  return getConstellationFromPRN(PRN);
102  }
103 #endif
104  };
105 
106  struct SatelliteInfo {
107  base::Time time;
108  std::vector < gps::Satellite> knownSatellites;
109  };
110 
111  struct UserDynamics {
112  int hSpeed;
113  int hAccel;
114  int vSpeed;
115  int vAccel;
116 #ifndef __orogen
118  : hSpeed(0), hAccel(0), vSpeed(0), vAccel(0) {}
119 #endif
120  };
121 
125  };
126 }
127 
128 #endif
129 
Definition: gps_types.hh:28
double SNR
Definition: gps_types.hh:86
std::vector< gps::Satellite > knownSatellites
Definition: gps_types.hh:108
base::Time time
Definition: gps_types.hh:107
double ageOfDifferentialCorrections
Definition: gps_types.hh:36
Definition: gps_types.hh:17
base::Time gps_time
Definition: gps_types.hh:24
Definition: gps_types.hh:10
double longitude
Definition: gps_types.hh:50
GPS_SOLUTION_TYPES
Definition: gps_types.hh:11
double deviationLatitude
Definition: gps_types.hh:64
double vdop
Definition: gps_types.hh:74
base::Time time
Definition: gps_types.hh:48
Definition: gps_types.hh:106
double hdop
Definition: gps_types.hh:73
double altitude
Definition: gps_types.hh:53
int vSpeed
Definition: gps_types.hh:114
static CONSTELLATIONS getConstellationFromPRN(int prn)
Definition: gps_types.hh:89
Position()
Definition: gps_types.hh:57
double altitude
Definition: gps_types.hh:34
GPS_SOLUTION_TYPES positionType
Definition: gps_types.hh:51
Definition: gps_types.hh:16
Definition: gps_types.hh:78
Definition: gps_types.hh:13
double geoidalSeparation
Definition: gps_types.hh:35
Definition: gps_types.hh:79
base::Time time
Definition: gps_types.hh:70
int hSpeed
Definition: gps_types.hh:112
int hAccel
Definition: gps_types.hh:113
double ageOfDifferentialCorrections
Definition: gps_types.hh:55
double deviationAltitude
Definition: gps_types.hh:66
int elevation
Definition: gps_types.hh:84
GPS_SOLUTION_TYPES positionType
Definition: gps_types.hh:32
int vAccel
Definition: gps_types.hh:115
int PRN
Definition: gps_types.hh:83
Definition: gps_types.hh:80
base::Time time
Definition: gps_types.hh:29
double pdop
Definition: gps_types.hh:72
Definition: gps_types.hh:14
double deviationAltitude
Definition: gps_types.hh:40
double geoidalSeparation
Definition: gps_types.hh:54
UserDynamics()
Definition: gps_types.hh:117
int azimuth
Definition: gps_types.hh:85
double latitude
Definition: gps_types.hh:49
double deviationLongitude
Definition: gps_types.hh:65
Definition: gps_types.hh:69
int noOfSatellites
Definition: gps_types.hh:33
Solution()
Definition: gps_types.hh:42
Definition: gps_types.hh:15
double deviationLongitude
Definition: gps_types.hh:39
int noOfSatellites
Definition: gps_types.hh:52
Definition: gps_types.hh:82
double deviationLatitude
Definition: gps_types.hh:38
base::Time cpu_time
Definition: gps_types.hh:23
gps::SatelliteInfo satellites
Definition: gps_types.hh:124
Definition: gps_types.hh:122
gps::SolutionQuality quality
Definition: gps_types.hh:123
Definition: gps_types.hh:62
std::vector< int > usedSatellites
Definition: gps_types.hh:71
double latitude
Definition: gps_types.hh:30
Definition: gps_types.hh:19
double longitude
Definition: gps_types.hh:31
base::Time time
Definition: gps_types.hh:63
Definition: gps_types.hh:111
Definition: gps_types.hh:22
Definition: gps_types.hh:47
CONSTELLATIONS getConstellation() const
Definition: gps_types.hh:99
Definition: gps_types.hh:18
double processing_latency
Definition: gps_types.hh:25
CONSTELLATIONS
Definition: gps_types.hh:77