0.2.0
Loading...
Searching...
No Matches
EmlidTypes.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
13
14#pragma once
15
16#include <string>
17#include <array>
18#include <optional>
19#include <bitset>
20#include <vector>
21#include <cstdint>
22
23namespace NAV::vendor::emlid
24{
31
44
55struct ErbVer
56{
57 uint32_t iTOW = 0;
58 uint8_t verH = 0;
59 uint8_t verM = 0;
60 uint8_t verL = 0;
61};
62
67struct ErbPos
68{
69 uint32_t iTOW = 0;
70 double lon = 0.0;
71 double lat = 0.0;
72 double height = 0.0;
73 double hMSL = 0.0;
74 uint32_t hAcc = 0;
75 uint32_t vAcc = 0;
76};
77
80struct ErbStat
81{
82 uint32_t iTOW = 0;
83 uint16_t weekGPS = 0;
84 uint8_t fixType = 0;
85 uint8_t fixStatus = 0;
86 uint8_t numSV = 0;
87};
88
91struct ErbDops
92{
93 uint32_t iTOW = 0;
94 uint16_t dopGeo = 0;
95 uint16_t dopPos = 0;
96 uint16_t dopVer = 0;
97 uint16_t dopHor = 0;
98};
99
102struct ErbVel
103{
104 uint32_t iTOW = 0;
105 int32_t velN = 0;
106 int32_t velE = 0;
107 int32_t velD = 0;
108 uint32_t speed = 0;
109 uint32_t gSpeed = 0;
110 int32_t heading = 0;
111 uint32_t sAcc = 0;
112};
113
116struct ErbSvi
117{
118 uint32_t iTOW = 0;
119 uint8_t nSV = 0;
120 uint8_t idSV = 0;
121 uint8_t typeSV = 0;
122 int32_t carPh = 0;
123 int32_t psRan = 0;
124 int32_t freqD = 0;
125 uint16_t snr = 0;
126 uint16_t azim = 0;
127 uint16_t elev = 0;
128};
129
132struct ErbRtk
133{
134 uint8_t numSV = 0;
135 uint16_t age = 0;
136 int32_t baselineN = 0;
137 int32_t baselineE = 0;
138 int32_t baselineD = 0;
139 uint16_t arRatio = 0;
140 uint16_t weekGPS = 0;
141 uint32_t timeGPS = 0;
142};
143
148[[nodiscard]] ErbMessageID getMsgIdFromString(const std::string& idName);
149
150} // namespace NAV::vendor::emlid
ErbMessageID getMsgIdFromString(const std::string &idName)
Get the ERB Msg ID From String object.
ErbMessageID
The available ERB Message IDs.
Definition EmlidTypes.hpp:34
@ ERB_MessageId_RTK
RTK information.
Definition EmlidTypes.hpp:42
@ ERB_MessageId_POS
Geodetic position solution.
Definition EmlidTypes.hpp:37
@ ERB_MessageId_NONE
No Message Class specified.
Definition EmlidTypes.hpp:35
@ ERB_MessageId_VEL
Velocity solution in NED.
Definition EmlidTypes.hpp:40
@ ERB_MessageId_STAT
Receiver navigation status.
Definition EmlidTypes.hpp:38
@ ERB_MessageId_VER
Version of protocol.
Definition EmlidTypes.hpp:36
@ ERB_MessageId_SVI
Space vehicle information.
Definition EmlidTypes.hpp:41
@ ERB_MessageId_DPOS
Dilution of precision.
Definition EmlidTypes.hpp:39
ErrorDetectionMode
Error detection modes available.
Definition EmlidTypes.hpp:27
@ ERRORDETECTIONMODE_CHECKSUM
16-bit checksum is used
Definition EmlidTypes.hpp:29
@ ERRORDETECTIONMODE_NONE
No error detection is used.
Definition EmlidTypes.hpp:28
Dilution of Precision This message outputs dimensionless values of DOP. These values are scaled by fa...
Definition EmlidTypes.hpp:92
uint16_t dopVer
Vertical DOP [*0.01].
Definition EmlidTypes.hpp:96
uint16_t dopPos
Position DOP [*0.01].
Definition EmlidTypes.hpp:95
uint16_t dopHor
Horizontal DOP [*0.01].
Definition EmlidTypes.hpp:97
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:93
uint16_t dopGeo
Geometric DOP [*0.01].
Definition EmlidTypes.hpp:94
Geodetic Position Solution.
Definition EmlidTypes.hpp:68
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:69
double height
Height above ellipsoid [m].
Definition EmlidTypes.hpp:72
uint32_t vAcc
Vertical accuracy estimate [mm].
Definition EmlidTypes.hpp:75
double lat
Latitude [deg].
Definition EmlidTypes.hpp:71
double lon
Longitude [deg].
Definition EmlidTypes.hpp:70
uint32_t hAcc
Horizontal accuracy estimate [mm].
Definition EmlidTypes.hpp:74
double hMSL
Height above mean sea level [m].
Definition EmlidTypes.hpp:73
RTK Information This message output information about RTK.
Definition EmlidTypes.hpp:133
int32_t baselineN
Distance between base and rover along the north axis [mm].
Definition EmlidTypes.hpp:136
uint16_t age
Age of differential [s/// 1e-2] (0 when no corrections, 0xFFFF indicates overflow)
Definition EmlidTypes.hpp:135
uint16_t arRatio
AR Ratio [*1e-1].
Definition EmlidTypes.hpp:139
int32_t baselineD
Distance between base and rover along the down axis [mm].
Definition EmlidTypes.hpp:138
uint16_t weekGPS
GPS Week Number of last baseline [weeks].
Definition EmlidTypes.hpp:140
int32_t baselineE
Distance between base and rover along the east axis [mm].
Definition EmlidTypes.hpp:137
uint32_t timeGPS
GPS Time of Week of last baseline [ms].
Definition EmlidTypes.hpp:141
uint8_t numSV
Number of satellites used for RTK calculation.
Definition EmlidTypes.hpp:134
Receiver Navigation Status This message contains status of Fix, its type and also the number of used ...
Definition EmlidTypes.hpp:81
uint8_t numSV
Number of used SVs.
Definition EmlidTypes.hpp:86
uint16_t weekGPS
GPS week number of the navigation epoch [weeks].
Definition EmlidTypes.hpp:83
uint8_t fixType
GPSfix type: 0x00 – no Fix, 0x01 – Single, 0x02 – Float, 0x03 – RTK Fix.
Definition EmlidTypes.hpp:84
uint8_t fixStatus
Navigation Fix Status. If position and velocity are valid 0x01, else 0x00.
Definition EmlidTypes.hpp:85
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:82
Space Vehicle Information This message output information about observation satellites.
Definition EmlidTypes.hpp:117
int32_t carPh
Carrier phase [cycle/// 1e-2].
Definition EmlidTypes.hpp:122
uint16_t azim
Azimuth in degrees [deg/// 1e-1].
Definition EmlidTypes.hpp:126
int32_t psRan
Pseudo range residual [m].
Definition EmlidTypes.hpp:123
int32_t freqD
Doppler frequency [Hz/// 1e-3].
Definition EmlidTypes.hpp:124
uint8_t typeSV
GNSS identifier 0-GPS, 1-GLONASS, 2-Galileo, 3-QZSS, 4-Beidou, 5-LEO, 6-SBAS.
Definition EmlidTypes.hpp:121
uint8_t nSV
Number of Satellites.
Definition EmlidTypes.hpp:119
uint8_t idSV
Satellite identifier (see Satellite Numbering)
Definition EmlidTypes.hpp:120
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:118
uint16_t snr
Signal strength [dBhz/// 0.25].
Definition EmlidTypes.hpp:125
uint16_t elev
Elevation in degrees [deg/// 1e-1].
Definition EmlidTypes.hpp:127
Velocity Solution in NED See important comments concerning validity of position given in section Navi...
Definition EmlidTypes.hpp:103
int32_t velN
North velocity component [cm/s].
Definition EmlidTypes.hpp:105
int32_t heading
Heading of motion 2-D [deg/// 1e-5].
Definition EmlidTypes.hpp:110
uint32_t sAcc
Speed accuracy Estimation [cm/s].
Definition EmlidTypes.hpp:111
int32_t velD
Down velocity component [cm/s].
Definition EmlidTypes.hpp:107
uint32_t gSpeed
Ground speed (2-D)
Definition EmlidTypes.hpp:109
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:104
uint32_t speed
Speed (3-D)
Definition EmlidTypes.hpp:108
int32_t velE
East velocity component [cm/s].
Definition EmlidTypes.hpp:106
Version of Protocol.
Definition EmlidTypes.hpp:56
uint8_t verL
Low level of version.
Definition EmlidTypes.hpp:60
uint8_t verM
Medium level of version.
Definition EmlidTypes.hpp:59
uint32_t iTOW
GPS time of week of the navigation epoch [ms]. See the description of iTOW for details.
Definition EmlidTypes.hpp:57
uint8_t verH
High level of version.
Definition EmlidTypes.hpp:58