Paparazzi UAS  v5.15_devel-50-g4d7045d
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
gps_ubx_i2c.h File Reference

pprz link device for Ublox over I2C More...

#include "std.h"
#include "mcu_periph/i2c.h"
#include "pprzlink/pprzlink_device.h"
+ Include dependency graph for gps_ubx_i2c.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  GpsUbxI2C
 ubx_i2c state More...


#define GPS_I2C_BUF_SIZE   255


typedef enum GpsI2CReadState GpsI2CReadState
 read states More...
typedef enum GpsI2CWriteState GpsI2CWriteState
 write states More...


enum  GpsI2CReadState { gps_i2c_read_standby, gps_i2c_read_sizeof, gps_i2c_read_data }
 read states More...
enum  GpsI2CWriteState { gps_i2c_write_standby, gps_i2c_write_request_size, gps_i2c_write_cfg }
 write states More...


void gps_ubx_i2c_init (void)
 init function More...
void gps_ubx_i2c_periodic (void)
 handle message sending More...
void gps_ubx_i2c_read_event (void)
 handle message reception More...
bool gps_i2c_tx_is_ready (void)
 is driver ready to send a message More...
void gps_i2c_begin (void)
 config is done, begin reading messages More...
static void GpsUbxi2cEvent (void)
 i2c event More...


struct GpsUbxI2C gps_i2c

Detailed Description

pprz link device for Ublox over I2C

This module adds i2c functionality for the ublox using existing driver

Definition in file gps_ubx_i2c.h.

Data Structure Documentation

struct GpsUbxI2C

ubx_i2c state

Definition at line 61 of file gps_ubx_i2c.h.

+ Collaboration diagram for GpsUbxI2C:
Data Fields
int baudrate baudrate, unused
struct link_device device ppz link device
GpsI2CReadState read_state
uint8_t rx_buf[GPS_I2C_BUF_SIZE] receive buffer
uint16_t rx_buf_avail how many bytes are waiting to be read
uint16_t rx_buf_idx rx buf index
struct i2c_transaction trans i2c transaction
uint8_t tx_buf[GPS_I2C_BUF_SIZE] transmit buffer
uint16_t tx_buf_idx tx buf index
bool tx_rdy are we ready to transmit
GpsI2CWriteState write_state

Macro Definition Documentation

#define GPS_I2C_BUF_SIZE   255

Typedef Documentation

read states

write states

Enumeration Type Documentation

read states


dont read anything


read size of ubx buffer


read data from ubx buffer

Definition at line 43 of file gps_ubx_i2c.h.

write states


wait for gps_ubx to read buffer or ucenter to transmit


request size of ubx buffer


send a config msg and get reply

Definition at line 52 of file gps_ubx_i2c.h.

Function Documentation

void gps_i2c_begin ( void  )

config is done, begin reading messages

Definition at line 159 of file gps_ubx_i2c.c.

References TRUE.

Referenced by gps_ubx_ucenter_periodic().

+ Here is the caller graph for this function:

bool gps_i2c_tx_is_ready ( void  )

is driver ready to send a message

Definition at line 154 of file gps_ubx_i2c.c.

References gps_i2c, and GpsUbxI2C::tx_rdy.

Referenced by gps_ubx_ucenter_periodic().

+ Here is the caller graph for this function:

void gps_ubx_i2c_init ( void  )

init function

< check if transmit buffer is not full

< put one byte

< put several bytes

< send completed buffer

< check if a new character is available

< get a new char

< set device baudrate

Definition at line 96 of file gps_ubx_i2c.c.

References GpsUbxI2C::device, FALSE, gps_i2c, gps_i2c_char_available(), gps_i2c_check_free_space(), gps_i2c_getch(), gps_i2c_msg_ready(), gps_i2c_put_buffer(), gps_i2c_put_byte(), gps_i2c_read_standby, gps_i2c_write_standby, I2CTransDone, null_function(), GpsUbxI2C::read_state, GpsUbxI2C::rx_buf_avail, GpsUbxI2C::rx_buf_idx, i2c_transaction::status, GpsUbxI2C::trans, TRUE, GpsUbxI2C::tx_buf_idx, GpsUbxI2C::tx_rdy, and GpsUbxI2C::write_state.

+ Here is the call graph for this function:

static void GpsUbxi2cEvent ( void  )

i2c event

Definition at line 101 of file gps_ubx_i2c.h.

References gps_i2c, gps_ubx_i2c_read_event(), I2CTransDone, I2CTransFailed, I2CTransSuccess, i2c_transaction::status, and GpsUbxI2C::trans.

+ Here is the call graph for this function:

Variable Documentation