NMEA: detectio of the optional tag block in front of a sentence, ignoring it for...
[marnav.git] / src / marnav / nmea / constants.hpp
blob3bc91647eff837a7a86227450c34fb6bd1cf912b
1 #ifndef __MARNAV__NMEA__CONSTANTS__HPP__
2 #define __MARNAV__NMEA__CONSTANTS__HPP__
4 #include <cstdint>
6 namespace marnav
8 namespace nmea
10 /// Enumeration of all possible directions.
11 enum class direction : char {
12 east, ///< NMEA representation: 'E'
13 west, ///< NMEA representation: 'W'
14 north, ///< NMEA representation: 'N'
15 south, ///< NMEA representation: ' S'
16 none ///< To silence the compiler
19 /// Status values used in NMEA.
20 enum class status : char {
21 ok, ///< NMEA representation: 'A'
22 warning ///< NMEA representation: 'V'
25 /// Positioning System Mode Indicator constants.
26 enum class mode_indicator : char {
27 invalid, ///< NMEA representation: 'V'
28 autonomous, ///< NMEA representation: 'A'
29 differential, ///< NMEA representation: 'D'
30 estimated, ///< NMEA representation: 'E'
31 manual_input, ///< NMEA representation: 'M'
32 simulated, ///< NMEA representation: 'S'
33 data_not_valid, ///< NMEA representation: 'N'
34 precise ///< NMEA representation: 'P'
37 /// Signal quality.
38 enum class quality : uint32_t {
39 invalid = 0, ///< NMEA representation: 0
40 gps_fix = 1, ///< NMEA representation: 1
41 dgps_fix = 2, ///< NMEA representation: 2
42 guess = 6, ///< NMEA representation: 6
43 simulation = 8 ///< NMEA representation: 8
46 /// Target status.
47 enum class target_status : char {
48 lost, ///< NMEA representation: 'L'
49 query, ///< NMEA representation: 'Q'
50 tracking ///< NMEA representation: 'T'
53 /// Contains enumerations of units.
54 namespace unit
56 /// Enumeration of unis of distance.
57 enum class distance : char {
58 meter, ///< NMEA representation: 'M'
59 feet, ///< NMEA representation: 'f'
60 nm, ///< NMEA representation: 'N' / nautical miles
61 km, ///< NMEA representation: 'K' / kilometers
62 fathom ///< NMEA representation: 'F'
65 /// Enumeration of unis of velocity.
66 enum class velocity : char {
67 knot, ///< NMEA representation: 'N'
68 kmh, ///< NMEA representation: 'K' / kilometers per hour
69 mps ///< NMEA representation: 'M' / meters per second
72 /// Enumeration of unis of temperature.
73 enum class temperature : char {
74 celsius ///< NMEA representation: 'C'
77 /// Enumeration of unis of pressure.
78 enum class pressure : char {
79 bar, ///< NMEA representation: 'B'
80 pascal ///< NMEA representation: 'P'
84 /// Enumeration of all possible references of data.
85 enum class reference : char {
86 TRUE, ///< NMEA representation: 'T'
87 MAGNETIC, ///< NMEA representation: 'M'
88 RELATIVE ///< NMEA representation: 'R'
91 /// Side of the vessel.
92 enum class side : char {
93 left, ///< NMEA representation: 'L'
94 right ///< NMEA Representation: 'R'
97 /// Status of routes.
98 enum class route : char {
99 complete, ///< NMEA representation: 'c'
100 working ///< NMEA representation: 'w'
103 enum class selection_mode : char {
104 manual, ///< NMEA representation: 'M'
105 automatic ///< NMEA representation: 'A'
108 enum class ais_channel : char {
109 A, ///< NMEA representation: 'A'
110 B ///< NMEA representation: 'B'
113 enum class type_of_point : char {
114 collision, ///< NMEA representation: 'C'
115 turning_point, ///< NMEA representation: 'T'
116 reference, ///< NMEA representation: 'R'
117 wheelover, ///< NMEA representation: 'W'
122 #endif