Main MRPT website > C++ reference for MRPT 1.9.9
gnss_messages_novatel.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #pragma once
10 
11 #include "gnss_messages_common.h"
12 
13 namespace mrpt
14 {
15 namespace obs
16 {
17 namespace gnss
18 {
19 // Pragma to ensure we can safely serialize some of these structures
20 #pragma pack(push, 1)
21 
22 /** Novatel OEM6 regular header structure \sa mrpt::obs::CObservationGPS */
24 {
25  enum : uint8_t
26  {
27  SYNCH0 = 0xAA,
28  SYNCH1 = 0X44,
29  SYNCH2 = 0x12
30  };
31 
46 
48 };
49 
50 /** Novatel OEM6 short header structure \sa mrpt::obs::CObservationGPS */
52 {
53  enum : uint8_t
54  {
55  SYNCH0 = 0xAA,
56  SYNCH1 = 0X44,
57  SYNCH2 = 0x13
58  };
64 
66 };
67 
68 namespace nv_oem6_position_type
69 {
70 /** Novatel OEM6 firmware reference, table 84; Novatel SPAN on OEM6 firmware
71  * manual, table 26. */
73 {
74  NONE = 0,
75  FIXEDPOS = 1,
77  Reserved = 3,
78  FLOATCONV = 4,
79  WIDELANE = 5,
82  SINGLE = 16,
83  PSRDIFF = 17,
84  WAAS = 18,
85  PROPAGATED = 19,
86  OMNISTAR = 20,
87  L1_FLOAT = 32,
90  L1_INT = 48,
91  WIDE_INT = 49,
92  NARROW_INT = 50,
94  INS = 52,
95  INS_PSRSP = 53,
101  CDGPS = 66
102 };
103 /** for nv_position_type_t */
104 const std::string& enum2str(int val);
105 } // namespace nv_oem6_position_type
106 
107 namespace nv_oem6_solution_status
108 {
109 /** Novatel OEM6 firmware reference, table 85 */
111 {
112  /** solution computed */
114  /** insufficient observations */
116  /** noconvergence */
118  /** singularity at parameters matrix */
120  /** covariance trace exceeds maximum (trace>1000m) */
122  /** test distance exceeded (max of 3 rejections if distance > 10km) */
124  /** not yet converged from cold start */
126  /** height or velocity limits exceeded */
128  /** variance exceeds limits */
130  /** residuals are too large */
132  /** delta position is too large */
134  /** negative variance */
136  /** large residuals make position unreliable */
138  /** ins has not started yet */
140  /** ins doing its coarse alignment */
142  /** ins position is bad */
144  /** no imu detected */
146  /** when a fix position command is entered, the receiver computes its own
147  position and determines if the fixed position is valid */
148  PENDING = 18,
149  /** the fixed position entered using the fix position command is not valid
150  */
152 };
153 /** for nv_solution_status_t */
154 const std::string& enum2str(int val);
155 } // namespace nv_oem6_solution_status
156 namespace nv_oem6_ins_status_type
157 {
158 /** Novatel SPAN on OEM6 firmware reference, table 33 */
160 {
161  INS_INACTIVE = 0, // IMU logs are present, but the alignment routine has
162  // not started; INS is inactive.
163  INS_ALIGNING = 1, // INS is in alignment mode.
164  INS_HIGH_VARIANCE = 2, // The INS solution is in navigation mode but the
165  // azimuth solution uncertainty has exceeded the
166  // threshold.
167  INS_SOLUTION_GOOD = 3, // The INS filter is in navigation mode and the INS
168  // solution is good.
169  INS_SOLUTION_FREE = 6, // The INS filter is in navigation mode and the GNSS
170  // solution is suspected to be in error.
171  INS_ALIGNMENT_COMPLETE = 7, // The INS filter is in navigation mode, but
172  // not enough vehicle dynamics have been
173  // experienced for the system to be within
174  // specifications.
176  8, // INS is determining the IMU axis aligned with gravity.
177  WAITING_INITIALPOS = 9 // The INS filter has determined the IMU orientation
178  // and is awaiting an initial position estimate to
179  // begin the alignment process.
180 };
181 /** for nv_ins_status_type_t */
182 const std::string& enum2str(int val);
183 } // namespace nv_oem6_ins_status_type
184 
185 /** Novatel generic frame (to store frames without a parser at the present
186  * time). \sa mrpt::obs::CObservationGPS */
188 {
191  {
192  }
193  /** Frame header */
195  std::vector<uint8_t> msg_body;
196 
197  void dumpToStream(std::ostream& out) const override; // See docs in base
198  protected:
200  mrpt::serialization::CArchive& out) const override;
202 };
203 
204 /** Novatel generic short-header frame (to store frames without a parser at the
205  * present time). \sa mrpt::obs::CObservationGPS */
207 {
210  {
211  }
212  /** Frame header */
214  std::vector<uint8_t> msg_body;
215 
216  void dumpToStream(std::ostream& out) const override; // See docs in base
217  protected:
219  mrpt::serialization::CArchive& out) const override;
221 };
222 
223 /** Novatel frame: NV_OEM6_BESTPOS. \sa mrpt::obs::CObservationGPS */
225 /** Frame header */
227 nv_oem6_solution_status::nv_solution_status_t solution_stat;
228 nv_oem6_position_type::nv_position_type_t position_type;
229 /** [deg], [deg], hgt over sea level[m] */
230 double lat, lon, hgt;
233 /** Uncertainties (all in [m]) */
244 /** Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure
245  * (requires linking against mrpt-topography)
246  * Call as: getAsStruct<TGeodeticCoords>(); */
247 template <class TGEODETICCOORDS>
248 inline TGEODETICCOORDS getAsStruct() const
249 {
250  return TGEODETICCOORDS(fields.lat, fields.lon, fields.hgt);
251 }
252 bool getAllFieldDescriptions(std::ostream& o) const override;
253 bool getAllFieldValues(std::ostream& o) const override;
255 
256 /** Novatel frame: NV_OEM6_INSPVAS. \sa mrpt::obs::CObservationGPS */
258 /** Frame header */
259 nv_oem6_short_header_t header;
262 double lat, lon, hgt;
264 double roll, pitch, azimuth;
266 uint32_t crc;
268 /** Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure
269  * (requires linking against mrpt-topography)
270  * Call as: getAsStruct<TGeodeticCoords>(); */
271 template <class TGEODETICCOORDS>
272 inline TGEODETICCOORDS getAsStruct() const
273 {
274  return TGEODETICCOORDS(fields.lat, fields.lon, fields.hgt);
275 }
276 bool getAllFieldDescriptions(std::ostream& o) const override;
277 bool getAllFieldValues(std::ostream& o) const override;
279 
280 /** Novatel frame: NV_OEM6_INSCOVS. \sa mrpt::obs::CObservationGPS */
282 /** Frame header */
283 nv_oem6_short_header_t header;
284 uint32_t week;
285 double seconds_in_week;
286 /** Position covariance matrix in local level frame (metres squared)
287  * xx,xy,xz,yx,yy,yz,zx,zy,zz */
288 double pos_cov[9];
289 /** Attitude covariance matrix of the SPAN frame to the local level frame. (deg
290  * sq) xx,xy,xz,yx,yy,yz,zx,zy,zz */
291 double att_cov[9];
292 /** Velocity covariance matrix in local level frame. (metres/second squared)
293  * xx,xy,xz,yx,yy,yz,zx,zy,zz */
294 double vel_cov[9];
295 uint32_t crc;
297 bool getAllFieldDescriptions(std::ostream& o) const override;
298 bool getAllFieldValues(std::ostream& o) const override;
300 
301 /** Novatel frame: NV_OEM6_RANGECMP. \sa mrpt::obs::CObservationGPS */
303 {
306  {
307  }
309  {
311  };
312 
313  /** Frame header */
316  std::vector<TCompressedRangeLog> obs_data;
318 
319  void dumpToStream(std::ostream& out) const override; // See docs in base
320  protected:
322  mrpt::serialization::CArchive& out) const override;
324 };
325 
326 /** Novatel frame: NV_OEM6_RXSTATUS. \sa mrpt::obs::CObservationGPS */
328 /** Frame header */
335 uint32_t crc;
337 
338 /** Novatel frame: NV_OEM6_RAWEPHEM. \sa mrpt::obs::CObservationGPS */
340 /** Frame header */
344 uint32_t crc;
346 
347 /** Novatel frame: NV_OEM6_VERSION. \sa mrpt::obs::CObservationGPS */
349 {
352  {
353  }
355  {
357  char model[16], serial[16];
358  char hwversion[16], swversion[16], bootversion[16];
359  char compdate[12], comptime[12];
360  };
361 
362  /** Frame header */
365  std::vector<TComponentVersion> components;
367 
368  void dumpToStream(std::ostream& out) const override; // See docs in base
369  protected:
371  mrpt::serialization::CArchive& out) const override;
373 };
374 
375 /** Novatel frame: NV_OEM6_RAWIMUS. \sa mrpt::obs::CObservationGPS */
377 /** Frame header */
379 uint32_t week;
384 uint32_t crc;
386 bool getAllFieldDescriptions(std::ostream& o) const override;
387 bool getAllFieldValues(std::ostream& o) const override;
389 
390 /** Novatel frame: NV_OEM6_MARKPOS. \sa mrpt::obs::CObservationGPS */
392 /** Frame header */
396 /** [deg], [deg], hgt over sea level[m] */
397 double lat, lon, hgt;
398 float undulation;
401 char base_station_id[4];
402 float diff_age, sol_age;
408 uint32_t crc;
410 /** Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure
411  * (requires linking against mrpt-topography)
412  * Call as: getAsStruct<TGeodeticCoords>(); */
413 template <class TGEODETICCOORDS>
414 inline TGEODETICCOORDS getAsStruct() const
415 {
416  return TGEODETICCOORDS(fields.lat, fields.lon, fields.hgt);
417 }
419 
420 /** Novatel frame: NV_OEM6_MARKTIME. \sa mrpt::obs::CObservationGPS */
422 /** Frame header */
423 nv_oem6_header_t header;
424 uint32_t week;
425 double week_seconds;
427 double utc_offset;
429 uint32_t crc;
431 bool getAllFieldDescriptions(std::ostream& o) const override;
432 bool getAllFieldValues(std::ostream& o) const override;
434 
435 /** Novatel frame: NV_OEM6_MARK2TIME. \sa mrpt::obs::CObservationGPS */
437 /** Frame header */
439 uint32_t week;
440 double week_seconds;
442 double utc_offset;
444 uint32_t crc;
446 bool getAllFieldDescriptions(std::ostream& o) const override;
447 bool getAllFieldValues(std::ostream& o) const override;
449 
450 /** Novatel frame: NV_OEM6_IONUTC. \sa mrpt::obs::CObservationGPS */
452 /** Frame header */
454 double a0, a1, a2, a3, b0, b1, b2,
455  b3; // Ionospheric alpha and beta constant terms parameters
456 /** UTC reference week number */
458 /** Reference time of UTC params */
460 /** UTC constant and 1st order terms */
461 double A0, A1;
462 /** Future week number */
464 /** Day number (1=sunday, 7=saturday) */
466 /** Delta time due to leap seconds */
468 /** Delta time due to leap seconds (future) */
471 uint32_t crc;
473 
474 #pragma pack(pop) // End of pack = 1
475 } // namespace gnss
476 } // namespace obs
477 } // namespace mrpt
mrpt::obs::gnss::nv_oem6_short_header_t::ms_in_week
uint32_t ms_in_week
Definition: gnss_messages_novatel.h:63
mrpt::obs::gnss::nv_oem6_position_type::OMNISTAR
@ OMNISTAR
Definition: gnss_messages_novatel.h:86
mrpt::obs::gnss::nv_oem6_position_type::NONE
@ NONE
Definition: gnss_messages_novatel.h:74
mrpt::obs::gnss::Message_NV_OEM6_VERSION
Novatel frame: NV_OEM6_VERSION.
Definition: gnss_messages_novatel.h:348
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME
Novatel generic short-header frame (to store frames without a parser at the present time).
Definition: gnss_messages_novatel.h:206
mrpt::obs::gnss::nv_oem6_solution_status::INVALID_FIX
@ INVALID_FIX
the fixed position entered using the fix position command is not valid
Definition: gnss_messages_novatel.h:151
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::internal_writeToStream
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:73
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::internal_writeToStream
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:51
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_ALIGNING
@ INS_ALIGNING
Definition: gnss_messages_novatel.h:163
mrpt::obs::gnss::rxstat
uint32_t rxstat
Definition: gnss_messages_novatel.h:331
mrpt::obs::gnss::a1
double a1
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::nv_oem6_short_header_t::week
uint16_t week
Definition: gnss_messages_novatel.h:62
mrpt::obs::gnss::nv_oem6_short_header_t::msg_id
uint16_t msg_id
Definition: gnss_messages_novatel.h:61
mrpt::obs::gnss::nv_oem6_position_type::IONOFREE_FLOAT
@ IONOFREE_FLOAT
Definition: gnss_messages_novatel.h:88
mrpt::obs::gnss::nv_oem6_header_t::time_status
uint8_t time_status
Definition: gnss_messages_novatel.h:40
mrpt::obs::gnss::nv_oem6_header_t::msg_type
uint8_t msg_type
Definition: gnss_messages_novatel.h:35
mrpt::obs::gnss::nv_oem6_solution_status::COLD_START
@ COLD_START
not yet converged from cold start
Definition: gnss_messages_novatel.h:125
mrpt::obs::gnss::utc_wn
uint32_t utc_wn
UTC reference week number.
Definition: gnss_messages_novatel.h:457
mrpt::obs::gnss::nv_oem6_short_header_t::synch
uint8_t synch[3]
Definition: gnss_messages_novatel.h:59
mrpt::obs::gnss::nv_oem6_solution_status::INS_INACTIVE
@ INS_INACTIVE
ins has not started yet
Definition: gnss_messages_novatel.h:139
mrpt::obs::gnss::b0
double b0
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::hgt_sigma
float hgt_sigma
Definition: gnss_messages_novatel.h:234
mrpt::obs::gnss::nv_oem6_solution_status::NO_CONVERGENCE
@ NO_CONVERGENCE
noconvergence
Definition: gnss_messages_novatel.h:117
mrpt::obs::gnss::gnss_message_type_t
gnss_message_type_t
List of all known GNSS message types.
Definition: gnss_messages_type_list.h:26
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::model
char model[16]
Definition: gnss_messages_novatel.h:357
mrpt::obs::gnss::getAsStruct
GNSS_BINARY_MSG_DEFINITION_MID TGEODETICCOORDS getAsStruct() const
Return the geodetic coords as a mrpt::topography::TGeodeticCoords structure (requires linking against...
Definition: gnss_messages_novatel.h:248
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::header
nv_oem6_short_header_t header
Frame header.
Definition: gnss_messages_novatel.h:213
mrpt::obs::gnss::nv_oem6_position_type::enum2str
const std::string & enum2str(int val)
for nv_position_type_t
Definition: gnss_messages_novatel.cpp:125
uint16_t
unsigned __int16 uint16_t
Definition: rptypes.h:44
mrpt::obs::gnss::dn
uint32_t dn
Day number (1=sunday, 7=saturday)
Definition: gnss_messages_novatel.h:465
mrpt::obs::gnss::nv_oem6_solution_status::IMU_UNPLUGGED
@ IMU_UNPLUGGED
no imu detected
Definition: gnss_messages_novatel.h:145
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::dumpToStream
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
Definition: gnss_messages_novatel.cpp:68
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::dumpToStream
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
Definition: gnss_messages_novatel.cpp:339
mrpt::obs::gnss::aux3stat_pri
uint32_t aux3stat_pri
Definition: gnss_messages_novatel.h:334
mrpt::obs::gnss::nv_oem6_short_header_t
Novatel OEM6 short header structure.
Definition: gnss_messages_novatel.h:51
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME
Novatel generic frame (to store frames without a parser at the present time).
Definition: gnss_messages_novatel.h:187
mrpt::obs::gnss::Message_NV_OEM6_VERSION::num_comps
uint32_t num_comps
Definition: gnss_messages_novatel.h:364
mrpt::obs::gnss::nv_oem6_ins_status_type::DETERMINING_ORIENTATION
@ DETERMINING_ORIENTATION
Definition: gnss_messages_novatel.h:175
mrpt::obs::gnss::nv_oem6_position_type::L1_FLOAT
@ L1_FLOAT
Definition: gnss_messages_novatel.h:87
mrpt::obs::gnss::clock_offset_std
double clock_offset_std
Definition: gnss_messages_novatel.h:426
mrpt::obs::gnss::nv_oem6_header_t::SYNCH1
@ SYNCH1
Definition: gnss_messages_novatel.h:28
mrpt::obs::gnss::accel_z
int32_t accel_z
Definition: gnss_messages_novatel.h:382
mrpt::obs::gnss::nv_oem6_header_t::receiver_status
uint32_t receiver_status
Definition: gnss_messages_novatel.h:43
mrpt::obs::gnss::nv_oem6_position_type::OMNISTAR_XP
@ OMNISTAR_XP
Definition: gnss_messages_novatel.h:100
mrpt::obs::gnss::nv_oem6_header_t::msg_id
uint16_t msg_id
Definition: gnss_messages_novatel.h:34
mrpt::obs::gnss::NV_OEM6_GENERIC_FRAME
@ NV_OEM6_GENERIC_FRAME
Definition: gnss_messages_type_list.h:46
mrpt::obs::gnss::nv_oem6_short_header_t::msg_len
uint8_t msg_len
Definition: gnss_messages_novatel.h:60
mrpt::obs::gnss::aux1stat_clear
uint32_t aux1stat_clear
Definition: gnss_messages_novatel.h:332
mrpt::obs::gnss::crc
uint32_t crc
Definition: gnss_messages_novatel.h:242
mrpt::obs::gnss::NV_OEM6_RANGECMP
@ NV_OEM6_RANGECMP
Definition: gnss_messages_type_list.h:76
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::dumpToStream
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
Definition: gnss_messages_novatel.cpp:44
mrpt::obs::gnss::nv_oem6_solution_status::SINGULARITY
@ SINGULARITY
singularity at parameters matrix
Definition: gnss_messages_novatel.h:119
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_INACTIVE
@ INS_INACTIVE
Definition: gnss_messages_novatel.h:161
mrpt::obs::gnss::rxstat_set
uint32_t rxstat_set
Definition: gnss_messages_novatel.h:331
mrpt::obs::gnss::NV_OEM6_GENERIC_SHORT_FRAME
@ NV_OEM6_GENERIC_SHORT_FRAME
Definition: gnss_messages_type_list.h:47
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::crc
uint32_t crc
Definition: gnss_messages_novatel.h:317
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::internal_writeToStream
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:347
mrpt::obs::gnss::vel_east
double vel_east
Definition: gnss_messages_novatel.h:263
mrpt::obs::gnss::vel_north
double vel_north
Definition: gnss_messages_novatel.h:263
mrpt::obs::gnss::vel_cov
double vel_cov[9]
Velocity covariance matrix in local level frame.
Definition: gnss_messages_novatel.h:294
mrpt::obs::gnss::nv_oem6_header_t::week
uint16_t week
Definition: gnss_messages_novatel.h:41
mrpt::obs::gnss::nv_oem6_solution_status::COV_TRACE
@ COV_TRACE
covariance trace exceeds maximum (trace>1000m)
Definition: gnss_messages_novatel.h:121
mrpt::obs::gnss::Message_NV_OEM6_VERSION::components
std::vector< TComponentVersion > components
Definition: gnss_messages_novatel.h:365
mrpt::obs::gnss::subframe1
uint8_t subframe1[30]
Definition: gnss_messages_novatel.h:343
mrpt::obs::gnss::NV_OEM6_INSCOVS
@ NV_OEM6_INSCOVS
Definition: gnss_messages_type_list.h:90
mrpt::obs::gnss::sat_prn
uint32_t sat_prn
Definition: gnss_messages_novatel.h:342
mrpt::obs::gnss::num_sats_sol
uint8_t num_sats_sol
Definition: gnss_messages_novatel.h:237
mrpt::obs::gnss::base_station_id
char base_station_id[4]
Definition: gnss_messages_novatel.h:235
mrpt::obs::gnss::nv_oem6_header_t::port_addr
uint8_t port_addr
Definition: gnss_messages_novatel.h:36
mrpt::obs::gnss::tot
uint32_t tot
Reference time of UTC params.
Definition: gnss_messages_novatel.h:459
mrpt::obs::gnss::solution_stat
nv_oem6_solution_status::nv_solution_status_t solution_stat
Definition: gnss_messages_novatel.h:227
GNSS_BINARY_MSG_DEFINITION_END
#define GNSS_BINARY_MSG_DEFINITION_END
Definition: gnss_messages_common.h:161
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion
Definition: gnss_messages_novatel.h:354
mrpt::obs::gnss::nv_oem6_position_type::OMNISTAR_HP
@ OMNISTAR_HP
Definition: gnss_messages_novatel.h:99
mrpt::obs::gnss::nv_oem6_header_t::synch
uint8_t synch[3]
Definition: gnss_messages_novatel.h:32
mrpt::obs::gnss::roll
double roll
Definition: gnss_messages_novatel.h:264
mrpt::obs::gnss::gyro_z
int32_t gyro_z
Definition: gnss_messages_novatel.h:383
mrpt::obs::gnss::header
nv_oem6_header_t header
Novatel frame: NV_OEM6_BESTPOS.
Definition: gnss_messages_novatel.h:226
mrpt::obs::gnss::nv_oem6_header_t
Novatel OEM6 regular header structure.
Definition: gnss_messages_novatel.h:23
mrpt::obs::gnss::reserved
uint8_t reserved
Definition: gnss_messages_novatel.h:238
mrpt::obs::gnss::nv_oem6_short_header_t::SYNCH2
@ SYNCH2
Definition: gnss_messages_novatel.h:57
mrpt
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Definition: CKalmanFilterCapable.h:30
mrpt::obs::gnss::NV_OEM6_VERSION
@ NV_OEM6_VERSION
Definition: gnss_messages_type_list.h:79
mrpt::obs::gnss::nv_oem6_position_type::WIDE_INT
@ WIDE_INT
Definition: gnss_messages_novatel.h:91
mrpt::obs::gnss::NV_OEM6_MARK2TIME
@ NV_OEM6_MARK2TIME
Definition: gnss_messages_type_list.h:74
mrpt::obs::gnss::ext_sol_stat
uint8_t ext_sol_stat
Definition: gnss_messages_novatel.h:239
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::header
nv_oem6_header_t header
Frame header.
Definition: gnss_messages_novatel.h:314
mrpt::obs::gnss::nv_oem6_position_type::nv_position_type_t
nv_position_type_t
Novatel OEM6 firmware reference, table 84; Novatel SPAN on OEM6 firmware manual, table 26.
Definition: gnss_messages_novatel.h:72
mrpt::obs::gnss::NV_OEM6_INSPVAS
@ NV_OEM6_INSPVAS
Definition: gnss_messages_type_list.h:84
uint8_t
unsigned char uint8_t
Definition: rptypes.h:41
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_SOLUTION_GOOD
@ INS_SOLUTION_GOOD
Definition: gnss_messages_novatel.h:167
GNSS_BINARY_MSG_DEFINITION_MID_END
#define GNSS_BINARY_MSG_DEFINITION_MID_END
Definition: gnss_messages_common.h:157
mrpt::obs::gnss::nv_oem6_solution_status::INSUFFICIENT_OBS
@ INSUFFICIENT_OBS
insufficient observations
Definition: gnss_messages_novatel.h:115
mrpt::obs::gnss::gps_glonass_mask
uint8_t gps_glonass_mask
Definition: gnss_messages_novatel.h:241
mrpt::obs::gnss::NV_OEM6_BESTPOS
@ NV_OEM6_BESTPOS
Definition: gnss_messages_type_list.h:53
mrpt::obs::gnss::aux3stat
uint32_t aux3stat
Definition: gnss_messages_novatel.h:334
mrpt::obs::gnss::position_type
nv_oem6_position_type::nv_position_type_t position_type
Definition: gnss_messages_novatel.h:228
mrpt::obs::gnss::nv_oem6_ins_status_type::WAITING_INITIALPOS
@ WAITING_INITIALPOS
Definition: gnss_messages_novatel.h:177
mrpt::obs::gnss::week_seconds
double week_seconds
Definition: gnss_messages_novatel.h:380
mrpt::obs::gnss::att_cov
double att_cov[9]
Attitude covariance matrix of the SPAN frame to the local level frame.
Definition: gnss_messages_novatel.h:291
mrpt::obs::gnss::nv_oem6_position_type::NARROWLANE
@ NARROWLANE
Definition: gnss_messages_novatel.h:80
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::Message_NV_OEM6_GENERIC_SHORT_FRAME
Message_NV_OEM6_GENERIC_SHORT_FRAME()
Definition: gnss_messages_novatel.h:208
mrpt::obs::gnss::nv_oem6_solution_status::DELTA_POS
@ DELTA_POS
delta position is too large
Definition: gnss_messages_novatel.h:133
mrpt::obs::gnss::nv_oem6_header_t::hdr_len
uint8_t hdr_len
Definition: gnss_messages_novatel.h:33
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::num_obs
uint32_t num_obs
Definition: gnss_messages_novatel.h:315
mrpt::obs::gnss::nv_oem6_position_type::INS_PSRSP
@ INS_PSRSP
Definition: gnss_messages_novatel.h:95
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_ALIGNMENT_COMPLETE
@ INS_ALIGNMENT_COMPLETE
Definition: gnss_messages_novatel.h:171
mrpt::obs::gnss::NV_OEM6_MARKPOS
@ NV_OEM6_MARKPOS
Definition: gnss_messages_type_list.h:71
mrpt::obs::gnss::hgt
double hgt
Definition: gnss_messages_novatel.h:230
mrpt::obs::gnss::seconds_in_week
double seconds_in_week
Definition: gnss_messages_novatel.h:261
mrpt::obs::gnss::nv_oem6_header_t::seq_number
uint16_t seq_number
Definition: gnss_messages_novatel.h:38
mrpt::serialization::CArchive
Virtual base class for "archives": classes abstracting I/O streams.
Definition: CArchive.h:48
mrpt::obs::gnss::galileo_beidou_mask
uint8_t galileo_beidou_mask
Definition: gnss_messages_novatel.h:240
mrpt::obs::gnss::lon_sigma
float lon_sigma
Definition: gnss_messages_novatel.h:234
mrpt::obs::gnss::nv_oem6_position_type::NARROW_INT
@ NARROW_INT
Definition: gnss_messages_novatel.h:92
mrpt::obs::gnss::error
uint32_t error
Definition: gnss_messages_novatel.h:330
mrpt::obs::gnss::nv_oem6_position_type::FLOATCONV
@ FLOATCONV
Definition: gnss_messages_novatel.h:78
mrpt::obs::gnss::azimuth
double azimuth
Definition: gnss_messages_novatel.h:264
mrpt::obs::gnss::NV_OEM6_RAWIMUS
@ NV_OEM6_RAWIMUS
Definition: gnss_messages_type_list.h:97
mrpt::obs::gnss::aux3stat_set
uint32_t aux3stat_set
Definition: gnss_messages_novatel.h:334
mrpt::obs::gnss::Message_NV_OEM6_VERSION::crc
uint32_t crc
Definition: gnss_messages_novatel.h:366
mrpt::obs::gnss::nv_oem6_header_t::msg_len
uint16_t msg_len
Definition: gnss_messages_novatel.h:37
mrpt::obs::gnss::rxstat_pri
uint32_t rxstat_pri
Definition: gnss_messages_novatel.h:331
val
int val
Definition: mrpt_jpeglib.h:955
mrpt::obs::gnss::aux2stat_clear
uint32_t aux2stat_clear
Definition: gnss_messages_novatel.h:333
mrpt::obs::gnss::nv_oem6_solution_status::INTEGRITY_WARNING
@ INTEGRITY_WARNING
large residuals make position unreliable
Definition: gnss_messages_novatel.h:137
mrpt::obs::gnss::num_sats_sol_L1
uint8_t num_sats_sol_L1
Definition: gnss_messages_novatel.h:237
mrpt::obs::gnss::nv_oem6_solution_status::SOL_COMPUTED
@ SOL_COMPUTED
solution computed
Definition: gnss_messages_novatel.h:113
mrpt::obs::gnss::subframe2
uint8_t subframe2[30]
Definition: gnss_messages_novatel.h:343
data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:3547
mrpt::obs::gnss::nv_oem6_solution_status::enum2str
const std::string & enum2str(int val)
for nv_solution_status_t
Definition: gnss_messages_novatel.cpp:91
mrpt::obs::gnss::nv_oem6_position_type::INS
@ INS
Definition: gnss_messages_novatel.h:94
mrpt::obs::gnss::num_sats_sol_multi
uint8_t num_sats_sol_multi
Definition: gnss_messages_novatel.h:237
mrpt::obs::gnss::nv_oem6_solution_status::V_H_LIMIT
@ V_H_LIMIT
height or velocity limits exceeded
Definition: gnss_messages_novatel.h:127
mrpt::obs::gnss::a2
double a2
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::subframe3
uint8_t subframe3[30]
Definition: gnss_messages_novatel.h:343
mrpt::obs::gnss::a0
double a0
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::week
uint32_t week
Definition: gnss_messages_novatel.h:260
mrpt::obs::gnss::nv_oem6_header_t::SYNCH0
@ SYNCH0
Definition: gnss_messages_novatel.h:27
mrpt::obs::gnss::deltat_ls
uint32_t deltat_ls
Delta time due to leap seconds.
Definition: gnss_messages_novatel.h:467
mrpt::obs::gnss::lon
double lon
Definition: gnss_messages_novatel.h:230
mrpt::obs::gnss::Message_NV_OEM6_VERSION::dumpToStream
void dumpToStream(std::ostream &out) const override
Dumps the contents of the observation in a human-readable form to a given output stream.
Definition: gnss_messages_novatel.cpp:390
mrpt::obs::gnss::aux2stat_set
uint32_t aux2stat_set
Definition: gnss_messages_novatel.h:333
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::TCompressedRangeLog
Definition: gnss_messages_novatel.h:308
mrpt::obs::gnss::nv_oem6_position_type::SINGLE
@ SINGLE
Definition: gnss_messages_novatel.h:82
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::msg_body
std::vector< uint8_t > msg_body
Definition: gnss_messages_novatel.h:195
mrpt::obs::gnss::ref_secs
uint32_t ref_secs
Definition: gnss_messages_novatel.h:342
mrpt::obs::gnss::nv_oem6_header_t::SYNCH2
@ SYNCH2
Definition: gnss_messages_novatel.h:29
mrpt::obs::gnss::b2
double b2
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::nv_oem6_header_t::nv_oem6_header_t
nv_oem6_header_t()
Definition: gnss_messages_novatel.cpp:19
mrpt::obs::gnss::nv_oem6_position_type::FIXEDPOS
@ FIXEDPOS
Definition: gnss_messages_novatel.h:75
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::header
nv_oem6_header_t header
Frame header.
Definition: gnss_messages_novatel.h:194
mrpt::obs::gnss::nv_oem6_position_type::RTK_DIRECT_INS
@ RTK_DIRECT_INS
Definition: gnss_messages_novatel.h:93
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::Message_NV_OEM6_RANGECMP
Message_NV_OEM6_RANGECMP()
Definition: gnss_messages_novatel.h:304
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::internal_readFromStream
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:359
mrpt::obs::gnss::Message_NV_OEM6_VERSION::internal_readFromStream
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:420
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::type
uint32_t type
Definition: gnss_messages_novatel.h:356
mrpt::obs::gnss::deltat_lsf
uint32_t deltat_lsf
Delta time due to leap seconds (future)
Definition: gnss_messages_novatel.h:469
mrpt::obs::gnss::nv_oem6_short_header_t::SYNCH1
@ SYNCH1
Definition: gnss_messages_novatel.h:56
mrpt::obs::gnss::nv_oem6_position_type::NARROW_FLOAT
@ NARROW_FLOAT
Definition: gnss_messages_novatel.h:89
mrpt::obs::gnss::aux2stat_pri
uint32_t aux2stat_pri
Definition: gnss_messages_novatel.h:333
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::compdate
char compdate[12]
Definition: gnss_messages_novatel.h:359
mrpt::obs::gnss::lat
double lat
[deg], [deg], hgt over sea level[m]
Definition: gnss_messages_novatel.h:230
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP
Novatel frame: NV_OEM6_RANGECMP.
Definition: gnss_messages_novatel.h:302
mrpt::obs::gnss::pitch
double pitch
Definition: gnss_messages_novatel.h:264
mrpt::obs::gnss::nv_oem6_header_t::receiver_sw_version
uint16_t receiver_sw_version
Definition: gnss_messages_novatel.h:45
mrpt::obs::gnss::rxstat_clear
uint32_t rxstat_clear
Definition: gnss_messages_novatel.h:331
mrpt::obs::gnss::nv_oem6_position_type::INS_RTKFIXED
@ INS_RTKFIXED
Definition: gnss_messages_novatel.h:98
mrpt::obs::gnss::nv_oem6_ins_status_type::enum2str
const std::string & enum2str(int val)
for nv_ins_status_type_t
Definition: gnss_messages_novatel.cpp:168
mrpt::obs::gnss::nv_oem6_position_type::CDGPS
@ CDGPS
Definition: gnss_messages_novatel.h:101
GNSS_BINARY_MSG_DEFINITION_MID
#define GNSS_BINARY_MSG_DEFINITION_MID
Definition: gnss_messages_common.h:150
mrpt::obs::gnss::nv_oem6_position_type::PROPAGATED
@ PROPAGATED
Definition: gnss_messages_novatel.h:85
mrpt::obs::gnss::Message_NV_OEM6_VERSION::internal_writeToStream
void internal_writeToStream(mrpt::serialization::CArchive &out) const override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:407
mrpt::obs::gnss::ref_week
uint32_t ref_week
Definition: gnss_messages_novatel.h:342
mrpt::obs::gnss::nv_oem6_solution_status::PENDING
@ PENDING
when a fix position command is entered, the receiver computes its own position and determines if the ...
Definition: gnss_messages_novatel.h:148
mrpt::obs::gnss::aux3stat_clear
uint32_t aux3stat_clear
Definition: gnss_messages_novatel.h:334
mrpt::obs::gnss::nv_oem6_header_t::ms_in_week
uint32_t ms_in_week
Definition: gnss_messages_novatel.h:42
mrpt::obs::gnss::aux1stat_set
uint32_t aux1stat_set
Definition: gnss_messages_novatel.h:332
mrpt::obs::gnss::nv_oem6_ins_status_type::nv_ins_status_type_t
nv_ins_status_type_t
Novatel SPAN on OEM6 firmware reference, table 33.
Definition: gnss_messages_novatel.h:159
mrpt::obs::gnss::nv_oem6_solution_status::nv_solution_status_t
nv_solution_status_t
Novatel OEM6 firmware reference, table 85.
Definition: gnss_messages_novatel.h:110
int32_t
__int32 int32_t
Definition: rptypes.h:46
mrpt::obs::gnss::num_sats_tracked
uint8_t num_sats_tracked
Definition: gnss_messages_novatel.h:237
mrpt::obs::gnss::nv_oem6_solution_status::RESIDUALS
@ RESIDUALS
residuals are too large
Definition: gnss_messages_novatel.h:131
mrpt::obs::gnss::nv_oem6_header_t::reserved
uint16_t reserved
Definition: gnss_messages_novatel.h:44
GNSS_BINARY_MSG_DEFINITION_START
#define GNSS_BINARY_MSG_DEFINITION_START(_MSG_ID)
Definition: gnss_messages_common.h:139
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::hwversion
char hwversion[16]
Definition: gnss_messages_novatel.h:358
mrpt::obs::gnss::aux2stat
uint32_t aux2stat
Definition: gnss_messages_novatel.h:333
mrpt::obs::gnss::nv_oem6_position_type::INS_RTKFLOAT
@ INS_RTKFLOAT
Definition: gnss_messages_novatel.h:97
mrpt::obs::gnss::clock_status
uint32_t clock_status
Definition: gnss_messages_novatel.h:428
mrpt::obs::gnss::pos_cov
double pos_cov[9]
Position covariance matrix in local level frame (metres squared) xx,xy,xz,yx,yy,yz,...
Definition: gnss_messages_novatel.h:288
mrpt::obs::gnss::vel_up
double vel_up
Definition: gnss_messages_novatel.h:263
mrpt::obs::gnss::getAllFieldValues
bool getAllFieldValues(std::ostream &o) const override
mrpt::obs::gnss::gyro_x
int32_t gyro_x
Definition: gnss_messages_novatel.h:383
mrpt::obs::gnss::nv_oem6_position_type::FIXEDHEIGHT
@ FIXEDHEIGHT
Definition: gnss_messages_novatel.h:76
mrpt::obs::gnss::nv_oem6_solution_status::TEST_DIST
@ TEST_DIST
test distance exceeded (max of 3 rejections if distance > 10km)
Definition: gnss_messages_novatel.h:123
mrpt::obs::gnss::nv_oem6_position_type::WIDELANE
@ WIDELANE
Definition: gnss_messages_novatel.h:79
mrpt::obs::gnss::nv_oem6_solution_status::VARIANCE
@ VARIANCE
variance exceeds limits
Definition: gnss_messages_novatel.h:129
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::internal_readFromStream
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:58
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_FRAME::Message_NV_OEM6_GENERIC_FRAME
Message_NV_OEM6_GENERIC_FRAME()
Definition: gnss_messages_novatel.h:189
mrpt::obs::gnss::nv_oem6_solution_status::NEGATIVE_VAR
@ NEGATIVE_VAR
negative variance
Definition: gnss_messages_novatel.h:135
mrpt::obs::gnss::aux1stat_pri
uint32_t aux1stat_pri
Definition: gnss_messages_novatel.h:332
mrpt::obs::gnss::A1
double A1
Definition: gnss_messages_novatel.h:461
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::serial
char serial[16]
Definition: gnss_messages_novatel.h:357
mrpt::obs::gnss::undulation
float undulation
Definition: gnss_messages_novatel.h:231
mrpt::obs::gnss::nv_oem6_solution_status::INS_ALIGNING
@ INS_ALIGNING
ins doing its coarse alignment
Definition: gnss_messages_novatel.h:141
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::swversion
char swversion[16]
Definition: gnss_messages_novatel.h:358
mrpt::obs::gnss::nv_oem6_position_type::Reserved
@ Reserved
Definition: gnss_messages_novatel.h:77
mrpt::obs::gnss::b3
double b3
Definition: gnss_messages_novatel.h:455
mrpt::obs::gnss::NV_OEM6_RAWEPHEM
@ NV_OEM6_RAWEPHEM
Definition: gnss_messages_type_list.h:77
mrpt::obs::gnss::getAllFieldDescriptions
bool getAllFieldDescriptions(std::ostream &o) const override
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_SOLUTION_FREE
@ INS_SOLUTION_FREE
Definition: gnss_messages_novatel.h:169
mrpt::obs::gnss::A0
double A0
UTC constant and 1st order terms.
Definition: gnss_messages_novatel.h:461
gnss_messages_common.h
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::bootversion
char bootversion[16]
Definition: gnss_messages_novatel.h:358
mrpt::obs::gnss::sol_age
float sol_age
Definition: gnss_messages_novatel.h:236
mrpt::obs::gnss::ins_status
nv_oem6_ins_status_type::nv_ins_status_type_t ins_status
Definition: gnss_messages_novatel.h:265
mrpt::obs::gnss::NV_OEM6_IONUTC
@ NV_OEM6_IONUTC
Definition: gnss_messages_type_list.h:70
in
GLuint in
Definition: glext.h:7274
string
GLsizei const GLchar ** string
Definition: glext.h:4101
mrpt::obs::gnss::gnss_message
Pure virtual base for all message types.
Definition: gnss_messages_common.h:26
mrpt::obs::gnss::nv_oem6_position_type::WAAS
@ WAAS
Definition: gnss_messages_novatel.h:84
mrpt::obs::gnss::num_stats
uint32_t num_stats
Definition: gnss_messages_novatel.h:330
mrpt::obs::gnss::Message_NV_OEM6_VERSION::TComponentVersion::comptime
char comptime[12]
Definition: gnss_messages_novatel.h:359
mrpt::obs::gnss::nv_oem6_position_type::L1_INT
@ L1_INT
Definition: gnss_messages_novatel.h:90
mrpt::obs::gnss::a3
double a3
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::utc_offset
double utc_offset
Definition: gnss_messages_novatel.h:427
mrpt::obs::gnss::Message_NV_OEM6_RANGECMP::obs_data
std::vector< TCompressedRangeLog > obs_data
Definition: gnss_messages_novatel.h:316
mrpt::obs::gnss::imu_status
uint32_t imu_status
Definition: gnss_messages_novatel.h:381
mrpt::obs::gnss::diff_age
float diff_age
Definition: gnss_messages_novatel.h:236
mrpt::obs::gnss::nv_oem6_ins_status_type::INS_HIGH_VARIANCE
@ INS_HIGH_VARIANCE
Definition: gnss_messages_novatel.h:164
mrpt::obs::gnss::nv_oem6_position_type::INS_PSRDIFF
@ INS_PSRDIFF
Definition: gnss_messages_novatel.h:96
mrpt::obs::gnss::gyro_y_neg
int32_t gyro_y_neg
Definition: gnss_messages_novatel.h:383
mrpt::obs::gnss::accel_x
int32_t accel_x
Definition: gnss_messages_novatel.h:382
mrpt::obs::gnss::Message_NV_OEM6_VERSION::Message_NV_OEM6_VERSION
Message_NV_OEM6_VERSION()
Definition: gnss_messages_novatel.h:350
mrpt::obs::gnss::accel_y_neg
int32_t accel_y_neg
Definition: gnss_messages_novatel.h:382
mrpt::obs::gnss::nv_oem6_position_type::PSRDIFF
@ PSRDIFF
Definition: gnss_messages_novatel.h:83
mrpt::obs::gnss::lat_sigma
float lat_sigma
Uncertainties (all in [m])
Definition: gnss_messages_novatel.h:234
mrpt::obs::gnss::Message_NV_OEM6_VERSION::header
nv_oem6_header_t header
Frame header.
Definition: gnss_messages_novatel.h:363
mrpt::obs::gnss::b1
double b1
Definition: gnss_messages_novatel.h:454
mrpt::obs::gnss::aux1stat
uint32_t aux1stat
Definition: gnss_messages_novatel.h:332
mrpt::obs::gnss::datum_id
uint32_t datum_id
Definition: gnss_messages_novatel.h:232
mrpt::obs::gnss::NV_OEM6_RXSTATUS
@ NV_OEM6_RXSTATUS
Definition: gnss_messages_type_list.h:78
uint32_t
unsigned __int32 uint32_t
Definition: rptypes.h:47
mrpt::obs::gnss::wn_lsf
uint32_t wn_lsf
Future week number.
Definition: gnss_messages_novatel.h:463
mrpt::obs::gnss::nv_oem6_solution_status::INS_BAD
@ INS_BAD
ins position is bad
Definition: gnss_messages_novatel.h:143
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::msg_body
std::vector< uint8_t > msg_body
Definition: gnss_messages_novatel.h:214
mrpt::obs::gnss::nv_oem6_header_t::idle_percent
uint8_t idle_percent
Definition: gnss_messages_novatel.h:39
mrpt::obs::gnss::nv_oem6_position_type::DOPPLER_VELOCITY
@ DOPPLER_VELOCITY
Definition: gnss_messages_novatel.h:81
mrpt::obs::gnss::nv_oem6_short_header_t::SYNCH0
@ SYNCH0
Definition: gnss_messages_novatel.h:55
mrpt::obs::gnss::clock_offset
double clock_offset
Definition: gnss_messages_novatel.h:426
mrpt::obs::gnss::Message_NV_OEM6_GENERIC_SHORT_FRAME::internal_readFromStream
void internal_readFromStream(mrpt::serialization::CArchive &in) override
Save to binary stream.
Definition: gnss_messages_novatel.cpp:80
mrpt::obs::gnss::NV_OEM6_MARKTIME
@ NV_OEM6_MARKTIME
Definition: gnss_messages_type_list.h:73
mrpt::obs::gnss::nv_oem6_short_header_t::nv_oem6_short_header_t
nv_oem6_short_header_t()
Definition: gnss_messages_novatel.cpp:37



Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST