Paparazzi UAS
v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
|
Configure Ublox GPS. More...
#include "modules/gps/gps_ubx_ucenter.h"
#include "subsystems/gps/gps_ubx.h"
#include "ubx_protocol.h"
#include "subsystems/datalink/downlink.h"
Go to the source code of this file.
Functions | |
static bool | gps_ubx_ucenter_autobaud (uint8_t nr) |
Automatically determine the baudrate of the u-blox module. More... | |
static bool | gps_ubx_ucenter_configure (uint8_t nr) |
void | gps_ubx_ucenter_init (void) |
void | gps_ubx_ucenter_periodic (void) |
void | gps_ubx_ucenter_event (void) |
static void | gps_ubx_ucenter_config_port_poll (void) |
Polls the u-blox port configuration When the payload is omitted (zero length), the configuration for the incoming (currently used) port is reported. More... | |
static void | gps_ubx_ucenter_enable_msg (uint8_t class, uint8_t id, uint8_t rate) |
Enable u-blox message at desired period. More... | |
static void | gps_ubx_ucenter_config_nav (void) |
static void | gps_ubx_ucenter_config_port (void) |
static void | gps_ubx_ucenter_config_sbas (void) |
int | gps_ubx_ucenter_get_status (void) |
Variables | |
struct gps_ubx_ucenter_struct | gps_ubx_ucenter |
Configure Ublox GPS.
Definition in file gps_ubx_ucenter.c.
#define DEBUG_PRINT | ( | ... | ) | {} |
Definition at line 39 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav(), gps_ubx_ucenter_config_port(), gps_ubx_ucenter_configure(), gps_ubx_ucenter_event(), and gps_ubx_ucenter_periodic().
#define GPS_PORT_DDC 0x00 |
Definition at line 407 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_PORT_RESERVED 0x05 |
Definition at line 412 of file gps_ubx_ucenter.c.
#define GPS_PORT_SPI 0x04 |
Definition at line 411 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_PORT_UART1 0x01 |
Definition at line 408 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_PORT_UART2 0x02 |
Definition at line 409 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_PORT_USB 0x03 |
Definition at line 410 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_SBAS_AUTOSCAN 0x00 |
Definition at line 461 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas().
#define GPS_SBAS_CORRECTIONS 0x02 |
Definition at line 456 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas(), and gps_ubx_ucenter_configure().
#define GPS_SBAS_ENABLED 0x01 |
Definition at line 453 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas().
#define GPS_SBAS_INTEGRITY 0x04 |
Definition at line 457 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas(), and gps_ubx_ucenter_configure().
#define GPS_SBAS_MAX_SBAS 3 |
Definition at line 459 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas().
#define GPS_SBAS_RANGING 0x01 |
Definition at line 455 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_sbas(), and gps_ubx_ucenter_configure().
#define GPS_UBX_ENABLE_NMEA_DATA_MASK 0x00 |
Definition at line 352 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define GPS_UBX_NAV5_DYNAMICS NAV5_DYN_AIRBORNE_2G |
Definition at line 348 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define GPS_UBX_UCENTER_RATE 0x00FA |
Definition at line 415 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_configure().
#define GPS_UBX_UCENTER_REPLY_ACK 1 |
Definition at line 57 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_configure(), and gps_ubx_ucenter_event().
#define GPS_UBX_UCENTER_REPLY_CFG_PRT 4 |
Definition at line 60 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_event().
#define GPS_UBX_UCENTER_REPLY_NACK 2 |
Definition at line 58 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_event().
#define GPS_UBX_UCENTER_REPLY_NONE 0 |
Definition at line 56 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_configure(), and gps_ubx_ucenter_init().
#define GPS_UBX_UCENTER_REPLY_VERSION 3 |
Definition at line 59 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_event().
#define GPS_UBX_UCENTER_STATUS_AUTOBAUD 1 |
Definition at line 52 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_init(), and gps_ubx_ucenter_periodic().
#define GPS_UBX_UCENTER_STATUS_CONFIG 2 |
Definition at line 53 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_periodic().
#define GPS_UBX_UCENTER_STATUS_STOPPED 0 |
Definition at line 51 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_event(), and gps_ubx_ucenter_periodic().
#define GPS_UBX_UCENTER_STATUS_WAITING 3 |
Definition at line 54 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_periodic().
#define IGNORED 0 |
Definition at line 368 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_2D_ONLY 1 |
Definition at line 357 of file gps_ubx_ucenter.c.
#define NAV5_3D_ONLY 2 |
Definition at line 358 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_AUTO 3 |
Definition at line 359 of file gps_ubx_ucenter.c.
#define NAV5_DEFAULT_MIN_ELEV 5 |
Definition at line 361 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DEFAULT_P_ACC 100 |
Definition at line 364 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DEFAULT_PDOP_MASK 25 |
Definition at line 362 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DEFAULT_STATIC_HOLD_THRES 0 |
Definition at line 366 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DEFAULT_T_ACC 300 |
Definition at line 365 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DEFAULT_TDOP_MASK 25 |
Definition at line 363 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV5_DYN_AIRBORNE_1G 6 |
Definition at line 343 of file gps_ubx_ucenter.c.
#define NAV5_DYN_AIRBORNE_2G 7 |
Definition at line 344 of file gps_ubx_ucenter.c.
#define NAV5_DYN_AIRBORNE_4G 8 |
Definition at line 345 of file gps_ubx_ucenter.c.
#define NAV5_DYN_AUTOMOTIVE 4 |
Definition at line 341 of file gps_ubx_ucenter.c.
#define NAV5_DYN_FIXED 1 |
Definition at line 338 of file gps_ubx_ucenter.c.
#define NAV5_DYN_PEDESTRIAN 3 |
Definition at line 340 of file gps_ubx_ucenter.c.
#define NAV5_DYN_PORTABLE 0 |
Definition at line 337 of file gps_ubx_ucenter.c.
#define NAV5_DYN_SEA 5 |
Definition at line 342 of file gps_ubx_ucenter.c.
#define NAV5_DYN_STATIONARY 2 |
Definition at line 339 of file gps_ubx_ucenter.c.
#define NAV5_MASK 0x05 |
Definition at line 355 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV_DYN_AIRBORNE_1G 5 |
Definition at line 333 of file gps_ubx_ucenter.c.
#define NAV_DYN_AIRBORNE_2G 6 |
Definition at line 334 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav().
#define NAV_DYN_AIRBORNE_4G 7 |
Definition at line 335 of file gps_ubx_ucenter.c.
#define NAV_DYN_AUTOMOTIVE 3 |
Definition at line 331 of file gps_ubx_ucenter.c.
#define NAV_DYN_PEDESTRIAN 2 |
Definition at line 330 of file gps_ubx_ucenter.c.
#define NAV_DYN_SEA 4 |
Definition at line 332 of file gps_ubx_ucenter.c.
#define NAV_DYN_STATIONARY 1 |
Definition at line 329 of file gps_ubx_ucenter.c.
#define NMEA_PROTO_MASK 0x0002 |
Definition at line 403 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define RESERVED 0 |
Definition at line 369 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_nav(), gps_ubx_ucenter_config_port(), and gps_ubx_ucenter_configure().
#define RTCM3_PROTO_MASK 0x0020 |
Definition at line 405 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define RTCM_PROTO_MASK 0x0004 |
Definition at line 404 of file gps_ubx_ucenter.c.
#define UBX_GPS_BAUD (UBX_GPS_LINK).baudrate |
Definition at line 63 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_init().
#define UBX_PROTO_MASK 0x0001 |
Definition at line 402 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
#define UBX_UART_MODE_MASK 0x000008D0 |
Definition at line 400 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_config_port().
|
static |
Automatically determine the baudrate of the u-blox module.
Only needed when connecting to a UART port on the u-blox. The discovered baudrate is copied to gps_ubx_ucenter.baud_init.
nr | Autobaud step number to perform |
Definition at line 251 of file gps_ubx_ucenter.c.
References B115200, B230400, B38400, B4800, B57600, B9600, gps_ubx_ucenter_struct::baud_init, gps_ubx_ucenter_struct::baud_run, gps_ubx_ucenter, gps_ubx_ucenter_config_port_poll(), GPS_UBX_UCENTER_REPLY_ACK, GPS_UBX_UCENTER_REPLY_NONE, gps_ubx_ucenter_struct::reply, and uart_periph_set_baudrate().
Referenced by gps_ubx_ucenter_periodic().
|
inlinestatic |
Definition at line 371 of file gps_ubx_ucenter.c.
References DEBUG_PRINT, gps_ubx_ucenter_struct::dev, GPS_UBX_NAV5_DYNAMICS, gps_ubx_ucenter, gps_ubx_ucenter_struct::hw_ver_h, IGNORED, NAV5_3D_ONLY, NAV5_DEFAULT_MIN_ELEV, NAV5_DEFAULT_P_ACC, NAV5_DEFAULT_PDOP_MASK, NAV5_DEFAULT_STATIC_HOLD_THRES, NAV5_DEFAULT_T_ACC, NAV5_DEFAULT_TDOP_MASK, NAV5_MASK, NAV_DYN_AIRBORNE_2G, RESERVED, and gps_ubx_ucenter_struct::sw_ver_h.
Referenced by gps_ubx_ucenter_configure().
|
inlinestatic |
Definition at line 418 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::baud_target, DEBUG_PRINT, gps_ubx_ucenter_struct::dev, GPS_PORT_DDC, GPS_PORT_SPI, GPS_PORT_UART1, GPS_PORT_UART2, GPS_PORT_USB, GPS_UBX_ENABLE_NMEA_DATA_MASK, gps_ubx_ucenter, NMEA_PROTO_MASK, gps_ubx_ucenter_struct::port_id, RESERVED, RTCM3_PROTO_MASK, UART_SPEED, UBX_PROTO_MASK, and UBX_UART_MODE_MASK.
Referenced by gps_ubx_ucenter_configure().
|
inlinestatic |
Polls the u-blox port configuration When the payload is omitted (zero length), the configuration for the incoming (currently used) port is reported.
Definition at line 220 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::dev, and gps_ubx_ucenter.
Referenced by gps_ubx_ucenter_autobaud().
|
inlinestatic |
Definition at line 463 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::dev, GPS_SBAS_AUTOSCAN, GPS_SBAS_CORRECTIONS, GPS_SBAS_ENABLED, GPS_SBAS_INTEGRITY, GPS_SBAS_MAX_SBAS, GPS_SBAS_RANGING, and gps_ubx_ucenter.
Referenced by gps_ubx_ucenter_configure().
|
static |
Definition at line 474 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::baud_run, gps_ubx_ucenter_struct::baud_target, DEBUG_PRINT, DefaultChannel, DefaultDevice, gps_ubx_ucenter_struct::dev, gps_ubx_ucenter_struct::gnss_in_use, GPS_SBAS_CORRECTIONS, GPS_SBAS_INTEGRITY, GPS_SBAS_RANGING, gps_ubx_ucenter, gps_ubx_ucenter_config_nav(), gps_ubx_ucenter_config_port(), gps_ubx_ucenter_config_sbas(), GPS_UBX_UCENTER_CONFIG_STEPS, gps_ubx_ucenter_enable_msg(), GPS_UBX_UCENTER_RATE, GPS_UBX_UCENTER_REPLY_ACK, GPS_UBX_UCENTER_REPLY_NONE, gps_ubx_ucenter_struct::hw_ver_h, gps_ubx_ucenter_struct::hw_ver_l, gps_ubx_ucenter_struct::replies, gps_ubx_ucenter_struct::reply, RESERVED, gps_ubx_ucenter_struct::sw_ver_h, gps_ubx_ucenter_struct::sw_ver_l, uart_periph_set_baudrate(), and UART_SPEED.
Referenced by gps_ubx_ucenter_periodic().
Enable u-blox message at desired period.
Will enable the message on the port that this command is received on. For example, sending this configuration message over UART1 will cause the desired message to be published on UART1.
For more information on u-blox messages, see the protocol specification. http://www.ublox.com/en/download/documents-a-resources.html
class | u-blox message class |
id | u-blox message ID |
rate | Desired period to send message. Example: Setting 3 would send the message on every 3rd navigation solution. |
Definition at line 237 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::dev, and gps_ubx_ucenter.
Referenced by gps_ubx_ucenter_configure().
void gps_ubx_ucenter_event | ( | void | ) |
Definition at line 159 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::baud_run, DEBUG_PRINT, gps_ubx_ucenter_struct::gnss_in_use, gps_ubx, gps_ubx_ucenter, GPS_UBX_UCENTER_REPLY_ACK, GPS_UBX_UCENTER_REPLY_CFG_PRT, GPS_UBX_UCENTER_REPLY_NACK, GPS_UBX_UCENTER_REPLY_VERSION, GPS_UBX_UCENTER_STATUS_STOPPED, gps_ubx_ucenter_struct::hw_ver_h, gps_ubx_ucenter_struct::hw_ver_l, GpsUbx::msg_buf, GpsUbx::msg_class, GpsUbx::msg_id, gps_ubx_ucenter_struct::port_id, gps_ubx_ucenter_struct::reply, gps_ubx_ucenter_struct::status, gps_ubx_ucenter_struct::sw_ver_h, and gps_ubx_ucenter_struct::sw_ver_l.
int gps_ubx_ucenter_get_status | ( | void | ) |
Definition at line 619 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter, and gps_ubx_ucenter_struct::status.
void gps_ubx_ucenter_init | ( | void | ) |
Definition at line 72 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::baud_init, gps_ubx_ucenter_struct::baud_run, gps_ubx_ucenter_struct::baud_target, gps_ubx_ucenter_struct::cnt, gps_ubx_ucenter_struct::dev, gps_ubx_ucenter, GPS_UBX_UCENTER_CONFIG_STEPS, GPS_UBX_UCENTER_REPLY_NONE, GPS_UBX_UCENTER_STATUS_AUTOBAUD, gps_ubx_ucenter_struct::hw_ver_h, gps_ubx_ucenter_struct::hw_ver_l, gps_ubx_ucenter_struct::replies, gps_ubx_ucenter_struct::reply, gps_ubx_ucenter_struct::status, gps_ubx_ucenter_struct::sw_ver_h, gps_ubx_ucenter_struct::sw_ver_l, and UBX_GPS_BAUD.
void gps_ubx_ucenter_periodic | ( | void | ) |
Definition at line 100 of file gps_ubx_ucenter.c.
References gps_ubx_ucenter_struct::baud_init, gps_ubx_ucenter_struct::cnt, DEBUG_PRINT, FALSE, gps_i2c_begin(), gps_i2c_tx_is_ready(), gps_ubx_ucenter, gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_configure(), GPS_UBX_UCENTER_STATUS_AUTOBAUD, GPS_UBX_UCENTER_STATUS_CONFIG, GPS_UBX_UCENTER_STATUS_STOPPED, GPS_UBX_UCENTER_STATUS_WAITING, and gps_ubx_ucenter_struct::status.
struct gps_ubx_ucenter_struct gps_ubx_ucenter |
Definition at line 66 of file gps_ubx_ucenter.c.
Referenced by gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_config_nav(), gps_ubx_ucenter_config_port(), gps_ubx_ucenter_config_port_poll(), gps_ubx_ucenter_config_sbas(), gps_ubx_ucenter_configure(), gps_ubx_ucenter_enable_msg(), gps_ubx_ucenter_event(), gps_ubx_ucenter_get_status(), gps_ubx_ucenter_init(), and gps_ubx_ucenter_periodic().