RBControl
Library for the RB3201-RBControl board with the ESP32 by RoboticsBrno.
Public Attributes | List of all members
rb::half_duplex::uart_obj_t Struct Reference

Public Attributes

uart_port_t uart_num
 
int queue_size
 
QueueHandle_t xQueueUart
 
intr_handle_t intr_handle
 
uart_mode_t uart_mode
 
bool coll_det_flg
 
int rx_buffered_len
 
SemaphoreHandle_t rx_mux
 
int rx_buf_size
 
RingbufHandle_t rx_ring_buf
 
bool rx_buffer_full_flg
 
int rx_cur_remain
 
uint8_t * rx_ptr
 
uint8_t * rx_head_ptr
 
uint8_t rx_data_buf [UART_FIFO_LEN]
 
uint8_t rx_stash_len
 
uart_pat_rb_t rx_pattern_pos
 
SemaphoreHandle_t tx_fifo_sem
 
SemaphoreHandle_t tx_mux
 
SemaphoreHandle_t tx_done_sem
 
SemaphoreHandle_t tx_brk_sem
 
int tx_buf_size
 
RingbufHandle_t tx_ring_buf
 
bool tx_waiting_fifo
 
uint8_t * tx_ptr
 
uart_tx_data_ttx_head
 
uint32_t tx_len_tot
 
uint32_t tx_len_cur
 
uint8_t tx_brk_flg
 
uint8_t tx_brk_len
 
uint8_t tx_waiting_brk
 
uart_select_notif_callback_t uart_select_notif_callback
 
gpio_num_t half_duplex_pin
 

Member Data Documentation

◆ coll_det_flg

bool rb::half_duplex::uart_obj_t::coll_det_flg

UART collision detection flag

◆ half_duplex_pin

gpio_num_t rb::half_duplex::uart_obj_t::half_duplex_pin

◆ intr_handle

intr_handle_t rb::half_duplex::uart_obj_t::intr_handle

UART interrupt handle

◆ queue_size

int rb::half_duplex::uart_obj_t::queue_size

UART event queue size

◆ rx_buf_size

int rb::half_duplex::uart_obj_t::rx_buf_size

RX ring buffer size

◆ rx_buffer_full_flg

bool rb::half_duplex::uart_obj_t::rx_buffer_full_flg

RX ring buffer full flag.

◆ rx_buffered_len

int rb::half_duplex::uart_obj_t::rx_buffered_len

UART cached data length

◆ rx_cur_remain

int rb::half_duplex::uart_obj_t::rx_cur_remain

Data number that waiting to be read out in ring buffer item

◆ rx_data_buf

uint8_t rb::half_duplex::uart_obj_t::rx_data_buf[UART_FIFO_LEN]

Data buffer to stash FIFO data

◆ rx_head_ptr

uint8_t* rb::half_duplex::uart_obj_t::rx_head_ptr

pointer to the head of RX item

◆ rx_mux

SemaphoreHandle_t rb::half_duplex::uart_obj_t::rx_mux

UART RX data mutex

◆ rx_pattern_pos

uart_pat_rb_t rb::half_duplex::uart_obj_t::rx_pattern_pos

◆ rx_ptr

uint8_t* rb::half_duplex::uart_obj_t::rx_ptr

pointer to the current data in ring buffer

◆ rx_ring_buf

RingbufHandle_t rb::half_duplex::uart_obj_t::rx_ring_buf

RX ring buffer handler

◆ rx_stash_len

uint8_t rb::half_duplex::uart_obj_t::rx_stash_len

stashed data length.(When using flow control, after reading out FIFO data, if we fail to push to buffer, we can just stash them.)

◆ tx_brk_flg

uint8_t rb::half_duplex::uart_obj_t::tx_brk_flg

Flag to indicate to send a break signal in the end of the item sending procedure

◆ tx_brk_len

uint8_t rb::half_duplex::uart_obj_t::tx_brk_len

TX break signal cycle length/number

◆ tx_brk_sem

SemaphoreHandle_t rb::half_duplex::uart_obj_t::tx_brk_sem

UART TX send break done semaphore

◆ tx_buf_size

int rb::half_duplex::uart_obj_t::tx_buf_size

TX ring buffer size

◆ tx_done_sem

SemaphoreHandle_t rb::half_duplex::uart_obj_t::tx_done_sem

UART TX done semaphore

◆ tx_fifo_sem

SemaphoreHandle_t rb::half_duplex::uart_obj_t::tx_fifo_sem

UART TX FIFO semaphore

◆ tx_head

uart_tx_data_t* rb::half_duplex::uart_obj_t::tx_head

TX data pointer to head of the current buffer in TX ring buffer

◆ tx_len_cur

uint32_t rb::half_duplex::uart_obj_t::tx_len_cur

◆ tx_len_tot

uint32_t rb::half_duplex::uart_obj_t::tx_len_tot

Total length of current item in ring buffer

◆ tx_mux

SemaphoreHandle_t rb::half_duplex::uart_obj_t::tx_mux

UART TX mutex

◆ tx_ptr

uint8_t* rb::half_duplex::uart_obj_t::tx_ptr

TX data pointer to push to FIFO in TX buffer mode

◆ tx_ring_buf

RingbufHandle_t rb::half_duplex::uart_obj_t::tx_ring_buf

TX ring buffer handler

◆ tx_waiting_brk

uint8_t rb::half_duplex::uart_obj_t::tx_waiting_brk

Flag to indicate that TX FIFO is ready to send break signal after FIFO is empty, do not push data into TX FIFO right now.

◆ tx_waiting_fifo

bool rb::half_duplex::uart_obj_t::tx_waiting_fifo

this flag indicates that some task is waiting for FIFO empty interrupt, used to send all data without any data buffer

◆ uart_mode

uart_mode_t rb::half_duplex::uart_obj_t::uart_mode

UART controller actual mode set by uart_set_mode()

◆ uart_num

uart_port_t rb::half_duplex::uart_obj_t::uart_num

UART port number

◆ uart_select_notif_callback

uart_select_notif_callback_t rb::half_duplex::uart_obj_t::uart_select_notif_callback

Notification about select() events

◆ xQueueUart

QueueHandle_t rb::half_duplex::uart_obj_t::xQueueUart

UART queue handler


The documentation for this struct was generated from the following file: