4 #define UBLOX_BUFFER_SIZE 128 182 DYNMODE_PORTABLE = 0,
183 DYNMODE_STATIONARY = 2,
184 DYNMODE_PEDESTRIAN = 3,
185 DYNMODE_AUTOMOTIVE = 4,
187 DYNMODE_AIRBORNE_1G = 6,
188 DYNMODE_AIRBORNE_2G = 7,
189 DYNMODE_AIRBORNE_4G = 8
200 UTC_STANDARD_AUTO = 0,
201 UTC_STANDARD_USA = 3,
202 UTC_STANDARD_RUS = 6,
203 UTC_STANDARD_CHN = 7,
210 MASK_POSFIXMODE = 0x004,
212 MASK_POSMASK = 0x010,
213 MASK_TIMEMASK = 0x020,
214 MASK_STATICHOLDMASK = 0x040,
215 MASK_DGPSMASK = 0x080,
216 MASK_CNOTHRESHOLD = 0x100,
235 uint8_t reserved1[2];
238 uint8_t reserved2[5];
253 CHARLEN_8BIT = 0x00C0,
254 PARITY_NONE = 0x0800,
278 uint8_t reserved2[2];
287 TIME_REF_GLONASS = 2,
314 VALIDITY_FLAGS_VALIDDATE = 0x01,
315 VALIDITY_FLAGS_VALIDTIME = 0x02,
316 VALIDITY_FLAGS_FULLYRESOLVED = 0x04,
321 FIX_STATUS_GNSS_FIX_OK = 0x01,
322 FIX_STATUS_DIFF_SOLN = 0x02,
323 FIX_STATUS_PSM_STATE_NOT_ACTIVE = 0x00,
324 FIX_STATUS_PSM_STATE_ENABLED = 0x04,
325 FIX_STATUS_PSM_STATE_ACQUISITION = 0x08,
326 FIX_STATUS_PSM_STATE_TRACKING = 0x0C,
327 FIX_STATUS_PSM_STATE_POWER_OPTIMIZED_TRACKING = 0x10,
328 FIX_STATUS_PSM_STATE_INACTIVE = 0x14,
329 FIX_STATUS_HEADING_VALID = 0x20,
330 FIX_STATUS_CARR_SOLN_NONE = 0x00,
331 FIX_STATUS_CARR_SOLN_FLOAT = 0x40,
332 FIX_STATUS_CARR_SOLN_FIXED = 0x80,
454 void read_ecef(int32_t *pos_ecef, int32_t *vel_ecef, uint32_t &p_acc_ecef, uint32_t &s_acc_ecef);
464 void enable_message(uint8_t msg_cls, uint8_t msg_id, uint8_t rate);
470 const uint8_t msg_id,
474 uint8_t &ck_b)
const;
515 #pragma GCC diagnostic push 516 #pragma GCC diagnostic ignored "-Wmissing-field-initializers" 520 #pragma GCC diagnostic pop 524 "FIX_TYPE_NO_FIX",
"FIX_TYPE_DEAD_RECKONING",
"FIX_TYPE_2D",
525 "FIX_TYPE_3D",
"FIX_TYPE_GPS_AND_DEAD_RECKONING",
"FIX_TYPE_TIME_ONLY",
void read_ecef(int32_t *pos_ecef, int32_t *vel_ecef, uint32_t &p_acc_ecef, uint32_t &s_acc_ecef)
#define UBLOX_BUFFER_SIZE
uint64_t get_last_pvt_timestamp()
void set_baudrate(const uint32_t baudrate)
volatile uint32_t num_messages_received_
NAV_POSECEF_t NAV_POSECEF
void increment_detect_baudrate_async()
static constexpr uint32_t BAUD_RATE
void enable_message(uint8_t msg_cls, uint8_t msg_id, uint8_t rate)
uint64_t rosflight_timestamp
static uint8_t buffer[BMP280_DATA_FRAME_SIZE]
uint32_t last_baudrate_change_ms_
UBX_message_t out_message_
size_t baudrate_search_index_
static constexpr uint32_t TIMEOUT_MS
parse_state_t parse_state_
static constexpr UART::uart_mode_t UART_MODE
uint32_t num_messages_received()
const std::string fix_names[6]
uint32_t current_baudrate_
void set_nav_rate(uint8_t period_ms)
void start_detect_baudrate_async()
bool send_ubx_message(uint8_t msg_class, uint8_t msg_id, UBX_message_t &message, uint16_t len)
uint32_t last_valid_message_
static constexpr uint32_t BAUDRATE_SEARCH_TIME_MS
NAV_VELECEF_t NAV_VELECEF
GNSSPosECEF read_pos_ecef()
void calculate_checksum(const uint8_t msg_cls, const uint8_t msg_id, const uint16_t len, const UBX_message_t &payload, uint8_t &ck_a, uint8_t &ck_b) const
struct __attribute__((packed))
const NAV_PVT_t & read_full()
void read_cb(uint8_t byte)
GNSSVelECEF read_vel_ecef()
void check_connection_status()
static constexpr size_t BAUDRATE_SEARCH_COUNT
uint64_t last_pvt_timestamp_
const uint32_t baudrates[BAUDRATE_SEARCH_COUNT]
UBX_message_t in_message_