Microchip® Advanced Software Framework

btstack_uart_block_t Struct Reference

#include <btstack_uart_block.h>

Data Fields

int(* close )(void)
 close transport connection More...
 
int(* get_supported_sleep_modes )(void)
 query supported wakeup mechanisms More...
 
int(* init )(const btstack_uart_config_t *uart_config)
 init transport More...
 
int(* open )(void)
 open transport connection More...
 
void(* receive_block )(uint8_t *buffer, uint16_t len)
 receive block More...
 
void(* send_block )(const uint8_t *buffer, uint16_t length)
 send block More...
 
int(* set_baudrate )(uint32_t baudrate)
 set baudrate More...
 
void(* set_block_received )(void(*block_handler)(void))
 set callback for block received. More...
 
void(* set_block_sent )(void(*block_handler)(void))
 set callback for sent. More...
 
int(* set_flowcontrol )(int flowcontrol)
 set flowcontrol More...
 
int(* set_parity )(int parity)
 set parity More...
 
void(* set_sleep )(btstack_uart_sleep_mode_t sleep_mode)
 set UART sleep mode - allows to turn off UART and it's clocks to save energy Supported sleep modes: More...
 
void(* set_wakeup_handler )(void(*wakeup_handler)(void))
 set wakeup handler - needed to notify hci transport of wakeup requests by Bluetooth controller Called upon CTS pulse or RX data. More...
 

int(* btstack_uart_block_t::close)(void)

close transport connection

Referenced by hci_transport_h4_close(), and hci_transport_h5_close().

int(* btstack_uart_block_t::get_supported_sleep_modes)(void)

query supported wakeup mechanisms

Returns
supported_sleep_modes mask

Referenced by hci_transport_h5_open().

int(* btstack_uart_block_t::init)(const btstack_uart_config_t *uart_config)

init transport

Parameters
uart_config

Referenced by bt_task(), hci_transport_h4_init(), hci_transport_h5_init(), and main().

int(* btstack_uart_block_t::open)(void)
void(* btstack_uart_block_t::send_block)(const uint8_t *buffer, uint16_t length)
int(* btstack_uart_block_t::set_baudrate)(uint32_t baudrate)
void(* btstack_uart_block_t::set_block_received)(void(*block_handler)(void))
void(* btstack_uart_block_t::set_block_sent)(void(*block_handler)(void))
int(* btstack_uart_block_t::set_flowcontrol)(int flowcontrol)

set flowcontrol

Referenced by atwilc3000_configure_uart(), and atwilc3000_done().

int(* btstack_uart_block_t::set_parity)(int parity)
void(* btstack_uart_block_t::set_sleep)(btstack_uart_sleep_mode_t sleep_mode)

set UART sleep mode - allows to turn off UART and it's clocks to save energy Supported sleep modes:

  • off: UART active, RTS low if receive_block was called and block not read yet
  • RTS high, wake on CTS: RTS should be high. On CTS pulse, UART gets enabled again and RTS goes to low
  • RTS low, wake on RX: data on RX will trigger UART enable, bytes might get lost

Referenced by hci_transport_h5_block_sent(), hci_transport_h5_process_frame(), and hci_transport_h5_send_packet().

void(* btstack_uart_block_t::set_wakeup_handler)(void(*wakeup_handler)(void))

set wakeup handler - needed to notify hci transport of wakeup requests by Bluetooth controller Called upon CTS pulse or RX data.

See sleep modes.