Paparazzi UAS  v5.2.2_stable-0-gd6b9f29
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
gps_ubx_ucenter.c File Reference

Configure Ublox GPS. More...

#include "gps_ubx_ucenter.h"
#include "subsystems/gps/gps_ubx.h"
#include "subsystems/datalink/downlink.h"
#include <stdio.h>
+ Include dependency graph for gps_ubx_ucenter.c:

Go to the source code of this file.

Macros

#define DEBUG_PRINT(...)   {}
 
#define GPS_UBX_UCENTER_STATUS_STOPPED   0
 
#define GPS_UBX_UCENTER_STATUS_AUTOBAUD   1
 
#define GPS_UBX_UCENTER_STATUS_CONFIG   2
 
#define GPS_UBX_UCENTER_REPLY_NONE   0
 
#define GPS_UBX_UCENTER_REPLY_ACK   1
 
#define GPS_UBX_UCENTER_REPLY_NACK   2
 
#define GPS_UBX_UCENTER_REPLY_VERSION   3
 
#define GPS_UBX_UCENTER_REPLY_CFG_PRT   4
 
#define NAV_DYN_STATIONARY   1
 
#define NAV_DYN_PEDESTRIAN   2
 
#define NAV_DYN_AUTOMOTIVE   3
 
#define NAV_DYN_SEA   4
 
#define NAV_DYN_AIRBORNE_1G   5
 
#define NAV_DYN_AIRBORNE_2G   6
 
#define NAV_DYN_AIRBORNE_4G   7
 
#define NAV5_DYN_PORTABLE   0
 
#define NAV5_DYN_FIXED   1
 
#define NAV5_DYN_STATIONARY   2
 
#define NAV5_DYN_PEDESTRIAN   3
 
#define NAV5_DYN_AUTOMOTIVE   4
 
#define NAV5_DYN_SEA   5
 
#define NAV5_DYN_AIRBORNE_1G   6
 
#define NAV5_DYN_AIRBORNE_2G   7
 
#define NAV5_DYN_AIRBORNE_4G   8
 
#define GPS_UBX_NAV5_DYNAMICS   NAV5_DYN_AIRBORNE_2G
 
#define NAV5_MASK   0x05
 
#define NAV5_2D_ONLY   1
 
#define NAV5_3D_ONLY   2
 
#define NAV5_AUTO   3
 
#define NAV5_DEFAULT_MIN_ELEV   5
 
#define NAV5_DEFAULT_PDOP_MASK   25
 
#define NAV5_DEFAULT_TDOP_MASK   25
 
#define NAV5_DEFAULT_P_ACC   100
 
#define NAV5_DEFAULT_T_ACC   300
 
#define NAV5_DEFAULT_STATIC_HOLD_THRES   0
 
#define IGNORED   0
 
#define RESERVED   0
 
#define UBX_UART_MODE_MASK   0x000008D0
 
#define UBX_PROTO_MASK   0x0001
 
#define NMEA_PROTO_MASK   0x0002
 
#define RTCM_PROTO_MASK   0x0004
 
#define GPS_PORT_DDC   0x00
 
#define GPS_PORT_UART1   0x01
 
#define GPS_PORT_UART2   0x02
 
#define GPS_PORT_USB   0x03
 
#define GPS_PORT_SPI   0x04
 
#define GPS_PORT_RESERVED   0x05
 
#define __UBX_GPS_BAUD(_u)   _u##_BAUD
 
#define _UBX_GPS_BAUD(_u)   __UBX_GPS_BAUD(_u)
 
#define UBX_GPS_BAUD   _UBX_GPS_BAUD(GPS_LINK)
 
#define GPS_UBX_UCENTER_RATE   0x00FA
 
#define GPS_SBAS_ENABLED   0x01
 
#define GPS_SBAS_RANGING   0x01
 
#define GPS_SBAS_CORRECTIONS   0x02
 
#define GPS_SBAS_INTEGRITY   0x04
 
#define GPS_SBAS_MAX_SBAS   1
 
#define GPS_SBAS_AUTOSCAN   0x00
 

Functions

static bool_t gps_ubx_ucenter_autobaud (uint8_t nr)
 Automatically determine the baudrate of the u-blox module. More...
 
static bool_t 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)
 

Variables

struct gps_ubx_ucenter_struct gps_ubx_ucenter
 

Detailed Description

Configure Ublox GPS.

Definition in file gps_ubx_ucenter.c.

Macro Definition Documentation

#define __UBX_GPS_BAUD (   _u)    _u##_BAUD

Definition at line 373 of file gps_ubx_ucenter.c.

#define _UBX_GPS_BAUD (   _u)    __UBX_GPS_BAUD(_u)

Definition at line 374 of file gps_ubx_ucenter.c.

#define DEBUG_PRINT (   ...)    {}
#define GPS_PORT_DDC   0x00

Definition at line 366 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define GPS_PORT_RESERVED   0x05

Definition at line 371 of file gps_ubx_ucenter.c.

#define GPS_PORT_SPI   0x04

Definition at line 370 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define GPS_PORT_UART1   0x01

Definition at line 367 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define GPS_PORT_UART2   0x02

Definition at line 368 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define GPS_PORT_USB   0x03

Definition at line 369 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define GPS_SBAS_AUTOSCAN   0x00

Definition at line 419 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_SBAS_CORRECTIONS   0x02

Definition at line 414 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_SBAS_ENABLED   0x01

Definition at line 411 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_SBAS_INTEGRITY   0x04

Definition at line 415 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_SBAS_MAX_SBAS   1

Definition at line 417 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_SBAS_RANGING   0x01

Definition at line 413 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_sbas().

#define GPS_UBX_NAV5_DYNAMICS   NAV5_DYN_AIRBORNE_2G

Definition at line 318 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define GPS_UBX_UCENTER_RATE   0x00FA

Definition at line 378 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_configure().

#define GPS_UBX_UCENTER_REPLY_ACK   1
#define GPS_UBX_UCENTER_REPLY_CFG_PRT   4

Definition at line 57 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_event().

#define GPS_UBX_UCENTER_REPLY_NACK   2

Definition at line 55 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_event().

#define GPS_UBX_UCENTER_REPLY_NONE   0
#define GPS_UBX_UCENTER_REPLY_VERSION   3

Definition at line 56 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_event().

#define GPS_UBX_UCENTER_STATUS_AUTOBAUD   1

Definition at line 50 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 51 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_periodic().

#define GPS_UBX_UCENTER_STATUS_STOPPED   0

Definition at line 49 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_event(), and gps_ubx_ucenter_periodic().

#define IGNORED   0

Definition at line 334 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_2D_ONLY   1

Definition at line 323 of file gps_ubx_ucenter.c.

#define NAV5_3D_ONLY   2

Definition at line 324 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_AUTO   3

Definition at line 325 of file gps_ubx_ucenter.c.

#define NAV5_DEFAULT_MIN_ELEV   5

Definition at line 327 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DEFAULT_P_ACC   100

Definition at line 330 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DEFAULT_PDOP_MASK   25

Definition at line 328 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DEFAULT_STATIC_HOLD_THRES   0

Definition at line 332 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DEFAULT_T_ACC   300

Definition at line 331 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DEFAULT_TDOP_MASK   25

Definition at line 329 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV5_DYN_AIRBORNE_1G   6

Definition at line 313 of file gps_ubx_ucenter.c.

#define NAV5_DYN_AIRBORNE_2G   7

Definition at line 314 of file gps_ubx_ucenter.c.

#define NAV5_DYN_AIRBORNE_4G   8

Definition at line 315 of file gps_ubx_ucenter.c.

#define NAV5_DYN_AUTOMOTIVE   4

Definition at line 311 of file gps_ubx_ucenter.c.

#define NAV5_DYN_FIXED   1

Definition at line 308 of file gps_ubx_ucenter.c.

#define NAV5_DYN_PEDESTRIAN   3

Definition at line 310 of file gps_ubx_ucenter.c.

#define NAV5_DYN_PORTABLE   0

Definition at line 307 of file gps_ubx_ucenter.c.

#define NAV5_DYN_SEA   5

Definition at line 312 of file gps_ubx_ucenter.c.

#define NAV5_DYN_STATIONARY   2

Definition at line 309 of file gps_ubx_ucenter.c.

#define NAV5_MASK   0x05

Definition at line 321 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV_DYN_AIRBORNE_1G   5

Definition at line 303 of file gps_ubx_ucenter.c.

#define NAV_DYN_AIRBORNE_2G   6

Definition at line 304 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define NAV_DYN_AIRBORNE_4G   7

Definition at line 305 of file gps_ubx_ucenter.c.

#define NAV_DYN_AUTOMOTIVE   3

Definition at line 301 of file gps_ubx_ucenter.c.

#define NAV_DYN_PEDESTRIAN   2

Definition at line 300 of file gps_ubx_ucenter.c.

#define NAV_DYN_SEA   4

Definition at line 302 of file gps_ubx_ucenter.c.

#define NAV_DYN_STATIONARY   1

Definition at line 299 of file gps_ubx_ucenter.c.

#define NMEA_PROTO_MASK   0x0002

Definition at line 363 of file gps_ubx_ucenter.c.

#define RESERVED   0

Definition at line 335 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_nav().

#define RTCM_PROTO_MASK   0x0004

Definition at line 364 of file gps_ubx_ucenter.c.

#define UBX_GPS_BAUD   _UBX_GPS_BAUD(GPS_LINK)

Definition at line 375 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port(), and gps_ubx_ucenter_configure().

#define UBX_PROTO_MASK   0x0001

Definition at line 362 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

#define UBX_UART_MODE_MASK   0x000008D0

Definition at line 360 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_config_port().

Function Documentation

static bool_t gps_ubx_ucenter_autobaud ( uint8_t  nr)
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.

Parameters
nrAutobaud step number to perform
Returns
FALSE when completed

Definition at line 229 of file gps_ubx_ucenter.c.

References B115200, B38400, B4800, B57600, B9600, gps_ubx_ucenter_struct::baud_init, gps_ubx_ucenter_struct::baud_run, FALSE, gps_ubx_ucenter, gps_ubx_ucenter_config_port_poll(), GPS_UBX_UCENTER_REPLY_ACK, GPS_UBX_UCENTER_REPLY_NONE, GpsUartSetBaudrate, gps_ubx_ucenter_struct::reply, and TRUE.

Referenced by gps_ubx_ucenter_periodic().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gps_ubx_ucenter_config_port ( void  )
inlinestatic
static void gps_ubx_ucenter_config_port_poll ( void  )
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 199 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_autobaud().

+ Here is the caller graph for this function:

static void gps_ubx_ucenter_config_sbas ( void  )
inlinestatic

Definition at line 421 of file gps_ubx_ucenter.c.

References GPS_SBAS_AUTOSCAN, GPS_SBAS_CORRECTIONS, GPS_SBAS_ENABLED, GPS_SBAS_INTEGRITY, GPS_SBAS_MAX_SBAS, and GPS_SBAS_RANGING.

Referenced by gps_ubx_ucenter_configure().

+ Here is the caller graph for this function:

static void gps_ubx_ucenter_enable_msg ( uint8_t  class,
uint8_t  id,
uint8_t  rate 
)
inlinestatic

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

Parameters
classu-blox message class
idu-blox message ID
rateDesired period to send message. Example: Setting 3 would send the message on every 3rd navigation solution.

Definition at line 216 of file gps_ubx_ucenter.c.

Referenced by gps_ubx_ucenter_configure().

+ Here is the caller graph for this function:

Variable Documentation