4 #define UBLOX_BUFFER_SIZE 128 183 DYNMODE_PORTABLE = 0,
184 DYNMODE_STATIONARY = 2,
185 DYNMODE_PEDESTRIAN = 3,
186 DYNMODE_AUTOMOTIVE = 4,
188 DYNMODE_AIRBORNE_1G = 6,
189 DYNMODE_AIRBORNE_2G = 7,
190 DYNMODE_AIRBORNE_4G = 8
201 UTC_STANDARD_AUTO = 0,
202 UTC_STANDARD_USA = 3,
203 UTC_STANDARD_RUS = 6,
204 UTC_STANDARD_CHN = 7,
211 MASK_POSFIXMODE = 0x004,
213 MASK_POSMASK = 0x010,
214 MASK_TIMEMASK = 0x020,
215 MASK_STATICHOLDMASK = 0x040,
216 MASK_DGPSMASK = 0x080,
217 MASK_CNOTHRESHOLD = 0x100,
236 uint8_t reserved1[2];
239 uint8_t reserved2[5];
254 CHARLEN_8BIT = 0x00C0,
255 PARITY_NONE = 0x0800,
279 uint8_t reserved2[2];
288 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,
448 void read_ecef(int32_t *pos_ecef, int32_t *vel_ecef, uint32_t &p_acc_ecef, uint32_t &s_acc_ecef);
455 void ned(
float *vel)
const;
456 void posECEF(
double *pos)
const;
457 void velECEF(
double *vel)
const;
468 void enable_message(uint8_t msg_cls, uint8_t msg_id, uint8_t rate);
474 uint8_t &ck_a, uint8_t &ck_b)
const;
478 const uint32_t
baudrates[5] = {115200, 19200, 57600, 9600, 38400};
508 #pragma GCC diagnostic push 509 #pragma GCC diagnostic ignored "-Wmissing-field-initializers" 513 #pragma GCC diagnostic pop 519 "FIX_TYPE_DEAD_RECKONING",
522 "FIX_TYPE_GPS_AND_DEAD_RECKONING",
523 "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
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
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 posECEF(double *pos) const
void velECEF(double *vel) const
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]
UBX_message_t out_message_
parse_state_t parse_state_
uint32_t num_messages_received()
const std::string fix_names[6]
uint32_t current_baudrate_
void ned(float *vel) const
const NAV_PVT_t & read_raw()
bool send_message(uint8_t msg_class, uint8_t msg_id, UBX_message_t &message, uint16_t len)
void set_nav_rate(uint8_t period_ms)
NAV_VELECEF_t NAV_VELECEF
GNSSPosECEF read_pos_ecef()
const uint32_t baudrates[5]
struct __attribute__((packed))
uint64_t last_pvt_timestamp
void read_cb(uint8_t byte)
GNSSVelECEF read_vel_ecef()
UBX_message_t in_message_