Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
bluegiga.c File Reference

Datalink implementation for the BlueGiga Bluetooth radio chip trough SPI. More...

#include "mcu_periph/sys_time.h"
#include "modules/datalink/bluegiga.h"
#include "mcu_periph/gpio.h"
#include "mcu_periph/spi.h"
#include "modules/core/abi.h"
#include <string.h>
#include "modules/datalink/telemetry.h"
+ Include dependency graph for bluegiga.c:

Go to the source code of this file.

Macros

#define BLUEGIGA_DRDY_GPIO   SUPERBITRF_DRDY_PORT
 
#define BLUEGIGA_DRDY_GPIO_PIN   SUPERBITRF_DRDY_PIN
 
#define TxStrengthOfSender(x)   (x[1])
 
#define RssiOfSender(x)   (x[2])
 
#define Pprz_StxOfMsg(x)   (x[3])
 
#define SenderIdOfBGMsg(x)   (x[5])
 

Functions

void bluegiga_load_tx (struct bluegiga_periph *p)
 
void bluegiga_transmit (struct bluegiga_periph *p, uint8_t data)
 
void bluegiga_receive (struct spi_transaction *trans)
 
static int dev_check_free_space (struct bluegiga_periph *p, long *fd, uint16_t len)
 
static void dev_put_buffer (struct bluegiga_periph *p, long fd, uint8_t *data, uint16_t len)
 
static void dev_put_byte (struct bluegiga_periph *p, long fd, uint8_t byte)
 
static void dev_send_message (struct bluegiga_periph *p, long fd)
 
static int dev_char_available (struct bluegiga_periph *p)
 
static uint8_t dev_get_byte (struct bluegiga_periph *p)
 
static void trans_cb (struct spi_transaction *trans)
 
bool bluegiga_ch_available (struct bluegiga_periph *p)
 
void bluegiga_increment_buf (uint8_t *buf_idx, uint8_t len)
 
static void send_bluegiga (struct transport_tx *trans, struct link_device *dev)
 
void bluegiga_init (struct bluegiga_periph *p)
 
void bluegiga_broadcast_msg (struct bluegiga_periph *p, char *msg, uint8_t msg_len)
 

Variables

enum BlueGigaStatus coms_status
 
struct bluegiga_periph bluegiga_p
 
struct spi_transaction bluegiga_spi
 
uint8_t broadcast_msg [20]
 
uint32_t a2a_msgs = 0
 
uint32_t last_ts = 0
 

Detailed Description

Datalink implementation for the BlueGiga Bluetooth radio chip trough SPI.

Definition in file bluegiga.c.

Macro Definition Documentation

◆ BLUEGIGA_DRDY_GPIO

#define BLUEGIGA_DRDY_GPIO   SUPERBITRF_DRDY_PORT

Definition at line 48 of file bluegiga.c.

◆ BLUEGIGA_DRDY_GPIO_PIN

#define BLUEGIGA_DRDY_GPIO_PIN   SUPERBITRF_DRDY_PIN

Definition at line 52 of file bluegiga.c.

◆ Pprz_StxOfMsg

#define Pprz_StxOfMsg (   x)    (x[3])

Definition at line 57 of file bluegiga.c.

◆ RssiOfSender

#define RssiOfSender (   x)    (x[2])

Definition at line 56 of file bluegiga.c.

◆ SenderIdOfBGMsg

#define SenderIdOfBGMsg (   x)    (x[5])

Definition at line 58 of file bluegiga.c.

◆ TxStrengthOfSender

#define TxStrengthOfSender (   x)    (x[1])

Definition at line 55 of file bluegiga.c.

Function Documentation

◆ bluegiga_broadcast_msg()

void bluegiga_broadcast_msg ( struct bluegiga_periph p,
char *  msg,
uint8_t  msg_len 
)

Definition at line 343 of file bluegiga.c.

References BLUEGIGA_DRDY_GPIO, BLUEGIGA_DRDY_GPIO_PIN, BLUEGIGA_SENDING, BLUEGIGA_SENDING_BROADCAST, broadcast_msg, coms_status, gpio_clear(), msg, and p.

+ Here is the call graph for this function:

◆ bluegiga_ch_available()

bool bluegiga_ch_available ( struct bluegiga_periph p)

Definition at line 116 of file bluegiga.c.

References p.

Referenced by dev_char_available().

+ Here is the caller graph for this function:

◆ bluegiga_increment_buf()

void bluegiga_increment_buf ( uint8_t buf_idx,
uint8_t  len 
)

Definition at line 122 of file bluegiga.c.

References BLUEGIGA_BUFFER_SIZE.

Referenced by bluegiga_load_tx(), bluegiga_receive(), bluegiga_transmit(), and dev_get_byte().

+ Here is the caller graph for this function:

◆ bluegiga_init()

◆ bluegiga_load_tx()

void bluegiga_load_tx ( struct bluegiga_periph p)

Definition at line 217 of file bluegiga.c.

References BLUEGIGA_BUFFER_SIZE, BLUEGIGA_IDLE, bluegiga_increment_buf(), BLUEGIGA_SENDING, BLUEGIGA_SPI_BUF_SIZE, coms_status, and p.

Referenced by bluegiga_receive().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bluegiga_receive()

◆ bluegiga_transmit()

void bluegiga_transmit ( struct bluegiga_periph p,
uint8_t  data 
)

Definition at line 207 of file bluegiga.c.

References bluegiga_increment_buf(), BLUEGIGA_UNINIT, coms_status, dev_check_free_space(), fd, and p.

Referenced by dev_put_buffer(), and dev_put_byte().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dev_char_available()

static int dev_char_available ( struct bluegiga_periph p)
static

Definition at line 96 of file bluegiga.c.

References bluegiga_ch_available(), and p.

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dev_check_free_space()

static int dev_check_free_space ( struct bluegiga_periph p,
long *  fd,
uint16_t  len 
)
static

Definition at line 71 of file bluegiga.c.

References BLUEGIGA_BUFFER_SIZE, and p.

Referenced by bluegiga_init(), and bluegiga_transmit().

+ Here is the caller graph for this function:

◆ dev_get_byte()

static uint8_t dev_get_byte ( struct bluegiga_periph p)
static

Definition at line 102 of file bluegiga.c.

References bluegiga_increment_buf(), and p.

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dev_put_buffer()

static void dev_put_buffer ( struct bluegiga_periph p,
long  fd,
uint8_t data,
uint16_t  len 
)
static

Definition at line 81 of file bluegiga.c.

References bluegiga_transmit(), and p.

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dev_put_byte()

static void dev_put_byte ( struct bluegiga_periph p,
long  fd,
uint8_t  byte 
)
static

Definition at line 88 of file bluegiga.c.

References bluegiga_transmit(), and p.

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dev_send_message()

static void dev_send_message ( struct bluegiga_periph p,
long  fd 
)
static

Definition at line 92 of file bluegiga.c.

References p.

Referenced by bluegiga_init().

+ Here is the caller graph for this function:

◆ send_bluegiga()

static void send_bluegiga ( struct transport_tx *  trans,
struct link_device *  dev 
)
static

Definition at line 132 of file bluegiga.c.

References a2a_msgs, bluegiga_p, bluegiga_periph::bytes_recvd_since_last, dev, get_sys_time_msec(), and last_ts.

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trans_cb()

static void trans_cb ( struct spi_transaction trans)
static

Definition at line 110 of file bluegiga.c.

References bluegiga_receive().

Referenced by bluegiga_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ a2a_msgs

uint32_t a2a_msgs = 0

Definition at line 127 of file bluegiga.c.

Referenced by bluegiga_receive(), and send_bluegiga().

◆ bluegiga_p

struct bluegiga_periph bluegiga_p

Definition at line 1 of file bluegiga.c.

Referenced by bluegiga_dl_init(), bluegiga_receive(), and send_bluegiga().

◆ bluegiga_spi

struct spi_transaction bluegiga_spi

Definition at line 1 of file bluegiga.c.

Referenced by bluegiga_init().

◆ broadcast_msg

uint8_t broadcast_msg[20]

Definition at line 64 of file bluegiga.c.

Referenced by bluegiga_broadcast_msg(), bluegiga_init(), and bluegiga_receive().

◆ coms_status

◆ last_ts

uint32_t last_ts = 0

Definition at line 131 of file bluegiga.c.

Referenced by ins_alt_float_update_baro(), ins_alt_float_update_gps(), and send_bluegiga().