PER Firmware
Loading...
Searching...
No Matches
nav_relposned.h
Go to the documentation of this file.
1#ifndef NAV_RELPOSNED_H
2#define NAV_RELPOSNED_H
3
11#include <stdint.h>
12#include <stddef.h>
13
14// UBX NAV-RELPOSNED message header
15static constexpr uint8_t NAV_RELPOSNED_HEADER_B0 = 0xB5; // UBX message header sync byte 0
16static constexpr uint8_t NAV_RELPOSNED_HEADER_B1 = 0x62; // UBX message header sync byte 1
17static constexpr uint8_t NAV_RELPOSNED_CLASS = 0x01; // UBX message class for NAV-RELPOSNED
18static constexpr uint8_t NAV_RELPOSNED_MSG_ID = 0x3C; // UBX message ID for NAV-RELPOSNED
19
20static constexpr size_t NAV_RELPOSNED_TOTAL_LENGTH = 48;
21
22typedef enum : uint32_t {
23 NAV_RELPOSNED_FLAGS_GNSS_FIX_OK = 0x1, // GNSS fix OK
24 NAV_RELPOSNED_FLAGS_DIFF_SOLN = 0x2, // Differential solution
25 NAV_RELPOSNED_FLAGS_REL_POS_VALID = 0x4,
26
27 NAV_RELPOSNED_FLAGS_CARR_SOLN_MASK = 0x18,
28 NAV_RELPOSNED_FLAGS_CARR_SOLN_NONE = 0x0,
29 NAV_RELPOSNED_FLAGS_CARR_SOLN_FLOAT = 0x8,
30 NAV_RELPOSNED_FLAGS_CARR_SOLN_FIXED = 0x10,
31
32 NAV_RELPOSNED_FLAGS_IS_MOVING = 0x20,
33 NAV_RELPOSNED_FLAGS_REF_POS_MISS = 0x40,
34 NAV_RELPOSNED_FLAGS_REF_OBS_MISS = 0x80
35} NAV_RELPOSNED_flags_t;
36
37typedef struct {
38 uint8_t version;
39 uint8_t reserved0;
40 uint16_t refStationId;
41 uint32_t iTOW;
42
43 int32_t relPosN;
44 int32_t relPosE;
45 int32_t relPosD;
46
47 int8_t relPosHPN;
48 int8_t relPosHPE;
49 int8_t relPosHPD;
50 uint8_t reserved1;
51
52 uint32_t accN;
53 uint32_t accE;
54 uint32_t accD;
55
56 NAV_RELPOSNED_flags_t flags;
58
59static_assert(sizeof(NAV_RELPOSNED_data_t) == 40, "NAV_RELPOSNED_data_t size must be 40 bytes");
60static_assert(offsetof(NAV_RELPOSNED_data_t, version) == 0);
61static_assert(offsetof(NAV_RELPOSNED_data_t, refStationId) == 2);
62static_assert(offsetof(NAV_RELPOSNED_data_t, iTOW) == 4);
63static_assert(offsetof(NAV_RELPOSNED_data_t, relPosN) == 8);
64static_assert(offsetof(NAV_RELPOSNED_data_t, relPosE) == 12);
65static_assert(offsetof(NAV_RELPOSNED_data_t, relPosD) == 16);
66static_assert(offsetof(NAV_RELPOSNED_data_t, relPosHPN) == 20);
67static_assert(offsetof(NAV_RELPOSNED_data_t, accN) == 24);
68static_assert(offsetof(NAV_RELPOSNED_data_t, accE) == 28);
69static_assert(offsetof(NAV_RELPOSNED_data_t, accD) == 32);
70static_assert(offsetof(NAV_RELPOSNED_data_t, flags) == 36);
71
72void NAV_RELPOSNED_decode(NAV_RELPOSNED_data_t *relposned, const volatile uint8_t *rx_buffer);
73
74#endif // NAV_RELPOSNED_H
Definition nav_relposned.h:37