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

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

#include "mcu_periph/sys_time.h"
#include "subsystems/datalink/bluegiga.h"
#include "mcu_periph/gpio.h"
#include "mcu_periph/spi.h"
#include <string.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
 

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, uint8_t len)
 
static void dev_put_byte (struct bluegiga_periph *p, uint8_t byte)
 
static void dev_send_message (struct bluegiga_periph *p)
 
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_t bluegiga_ch_available (struct bluegiga_periph *p)
 
void bluegiga_increment_buf (uint8_t *buf_idx, uint8_t len)
 
void bluegiga_init (struct bluegiga_periph *p)
 
void bluegiga_scan (struct bluegiga_periph *p)
 
void bluegiga_request_all_rssi (struct bluegiga_periph *p)
 

Variables

enum BlueGigaStatus coms_status
 
struct bluegiga_periph bluegiga_p
 
struct spi_transaction bluegiga_spi
 
signed char bluegiga_rssi [256]
 
unsigned char telemetry_copy [20]
 

Detailed Description

Datalink implementation for the BlueGiga Bluetooth radio chip trough SPI.

Definition in file bluegiga.c.

Macro Definition Documentation

#define BLUEGIGA_DRDY_GPIO   SUPERBITRF_DRDY_PORT
#define BLUEGIGA_DRDY_GPIO_PIN   SUPERBITRF_DRDY_PIN

Function Documentation

bool_t bluegiga_ch_available ( struct bluegiga_periph p)

Definition at line 97 of file bluegiga.c.

References bluegiga_periph::rx_extract_idx, and bluegiga_periph::rx_insert_idx.

Referenced by bluegiga_read_buffer(), and dev_char_available().

+ Here is the caller graph for this function:

void bluegiga_increment_buf ( uint8_t buf_idx,
uint8_t  len 
)

Definition at line 103 of file bluegiga.c.

References BLUEGIGA_BUFFER_SIZE.

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

+ Here is the caller graph for this function:

void bluegiga_load_tx ( struct bluegiga_periph p)
void bluegiga_request_all_rssi ( struct bluegiga_periph p)

Definition at line 322 of file bluegiga.c.

References BLUEGIGA_DRDY_GPIO, BLUEGIGA_DRDY_GPIO_PIN, BLUEGIGA_SENDING, coms_status, gpio_clear(), and bluegiga_periph::work_tx.

+ Here is the call graph for this function:

void bluegiga_scan ( struct bluegiga_periph p)

Definition at line 309 of file bluegiga.c.

References BLUEGIGA_DRDY_GPIO, BLUEGIGA_DRDY_GPIO_PIN, BLUEGIGA_SENDING, coms_status, gpio_clear(), and bluegiga_periph::work_tx.

+ Here is the call graph for this function:

void bluegiga_transmit ( struct bluegiga_periph p,
uint8_t  data 
)

Definition at line 188 of file bluegiga.c.

References bluegiga_increment_buf(), BLUEGIGA_UNINIT, coms_status, dev_check_free_space(), bluegiga_periph::tx_buf, and bluegiga_periph::tx_insert_idx.

Referenced by dev_put_byte().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int dev_char_available ( struct bluegiga_periph p)
static

Definition at line 79 of file bluegiga.c.

References bluegiga_ch_available().

Referenced by bluegiga_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int dev_check_free_space ( struct bluegiga_periph p,
uint8_t  len 
)
static

Definition at line 61 of file bluegiga.c.

References BLUEGIGA_BUFFER_SIZE, FALSE, TRUE, bluegiga_periph::tx_extract_idx, and bluegiga_periph::tx_insert_idx.

Referenced by bluegiga_init(), and bluegiga_transmit().

+ Here is the caller graph for this function:

static uint8_t dev_get_byte ( struct bluegiga_periph p)
static

Definition at line 83 of file bluegiga.c.

References bluegiga_increment_buf(), bluegiga_periph::rx_buf, and bluegiga_periph::rx_extract_idx.

Referenced by bluegiga_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 71 of file bluegiga.c.

References bluegiga_transmit().

Referenced by bluegiga_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dev_send_message ( struct bluegiga_periph p)
static

Definition at line 75 of file bluegiga.c.

References bluegiga_periph::end_of_msg, and bluegiga_periph::tx_insert_idx.

Referenced by bluegiga_init().

+ Here is the caller graph for this function:

static void trans_cb ( struct spi_transaction trans)
static

Definition at line 91 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

struct bluegiga_periph bluegiga_p

Definition at line 50 of file bluegiga.c.

Referenced by bluegiga_receive(), and downlink_init().

signed char bluegiga_rssi[256]

Definition at line 53 of file bluegiga.c.

Referenced by bluegiga_init(), and bluegiga_receive().

struct spi_transaction bluegiga_spi

Definition at line 51 of file bluegiga.c.

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

unsigned char telemetry_copy[20]

Definition at line 54 of file bluegiga.c.

Referenced by bluegiga_receive().