main_ubi_sdk v 0.1.3
This is UBI4 documentation
a_port.h
Go to the documentation of this file.
1/*
2 ******************************************************************************
3 * @file a_port.h
4 * @author A.Alborov
5 ******************************************************************************
6 */
7
8#ifndef INC_A_PORT_H_
9#define INC_A_PORT_H_
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#include "UBI_SDK.h"
16#include "stdint.h"
17#include "stdbool.h"
18
19
20#ifdef UBI_SDK_TARGET_ESP32
21
22//#include "UBIv4/TransportLevel/ports/esp32/ble_gatt_server_port.h"
23
24//#include "TransportLevel/ports/esp32/one_wire_port.h"
25
26//#include "TransportLevel/ports/esp32/usb_cdc_port.h"
27
28#include "stdint.h"
29#include "stdbool.h"
30
31#endif
32
33#ifdef UBI_SDK_FAMILY_STM32
34
35//#include "TransportLevel/ports/stm32/one_wire_port.h"
36
37//#include "TransportLevel/ports/stm32/usb_cdc_port.h"
38
39//#include "TransportLevel/ports/stm32/uart_port.h"
40
41//#include "TransportLevel/ports/stm32/spi_slave_port.h"
42
43#endif
44
45
46
54
59
64
65typedef struct {
67
69
70/*
71typedef bool (*initialize_port_func)(void* init_str, void* port_str);
72typedef uint8_t* (*get_port_buffer_func)(void* port_str);
73typedef void (*write_port_func)(void* port_str,uint8_t *buf, uint8_t size);
74typedef void (*receive_data_func)(void* port_str);
75*/
76typedef uint8_t* (*get_tx_buffer_t)(void* init_str);
77typedef uint8_t* (*get_rx_buffer_t)(void* init_str);
78typedef void (*write_direct_t)(void* port_str, uint8_t *buf, uint16_t size);
79typedef void (*write_and_time_receive_t)(void* port_str, uint8_t *buf, uint16_t size, uint32_t time_ms);
80typedef int (*receive_data_t)(void* port_str);
81typedef void (*base_port_receive_bridge_func_t)(void* port_str, uint8_t* buf, uint32_t size);
82typedef void (*slave_answer_func_t)(void* port_str, uint8_t* buf, uint32_t size);
83typedef void (*receive_to_current_device_func_t)(void* port_str, uint8_t* buf, uint32_t size);
84typedef void (*receive_to_another_device_func_t)(void* port_str, uint8_t* buf, uint32_t size);
85typedef void (*get_receive_buffer_size_t)(void* port_str, uint32_t* size);
86typedef void (*read_data_buffer_t)(void* port_str, uint8_t* out_buf, uint32_t out_buf_size, uint32_t* read_bytes_size);
87typedef void (*start_receive_task_t)(void* port_str);
88typedef void (*processing_data_t)(void* port_str, uint32_t len);
89typedef void (*wait_receive_t)(void* port_str, uint32_t rx_buf_offset, uint32_t len);
90typedef void (*wait_tx_finish_t)(void* port_str);
91typedef void (*wait_receive_time_t)(void* port, uint32_t time_ms);
92typedef uint32_t (*wait_receive_time_blocked_t)(void* port, uint32_t offset, uint32_t len ,uint32_t time_ms);
93typedef void (*stop_receive_t)(void* port_str);
94typedef void (*set_receiver_mode_t)(void* port_str, port_receive_mode_enum mode);
95typedef uint32_t (*GetTransmitTime_us_t)(void* port_str, uint32_t num_bytes);
96typedef void (*close_port_callback_t)(void* protocol_str);
97
156
157
158
159void base_port_init(base_port_struct* port_str);
160
162
163void base_port_receive_bridge(base_port_struct* port_str,uint8_t* buf, uint32_t size);
164void base_port_slave_answer(base_port_struct* port_str,uint8_t* buf, uint32_t size);
165void base_port_receive_to_current_device(base_port_struct* port_str,uint8_t* buf, uint32_t size);
166
167void base_port_get_receive_buffer_size(base_port_struct* port_str, uint32_t* size);
168
169void base_port_read_data_buffer(base_port_struct* port_str, uint8_t* out_buf, uint32_t out_buf_size, uint32_t* read_bytes_size);
170
171 uint8_t* port_get_tx_buffer(base_port_struct* port_str);
172
173 uint8_t* port_get_rx_buffer(base_port_struct* port_str);
174
175
176#ifdef __cplusplus
177}
178#endif
179
180#endif /* INC_A_PORT_H_ */
void(* read_data_buffer_t)(void *port_str, uint8_t *out_buf, uint32_t out_buf_size, uint32_t *read_bytes_size)
Definition a_port.h:86
void(* processing_data_t)(void *port_str, uint32_t len)
Definition a_port.h:88
uint8_t *(* get_tx_buffer_t)(void *init_str)
Definition a_port.h:76
void(* write_direct_t)(void *port_str, uint8_t *buf, uint16_t size)
Definition a_port.h:78
ports_enum
Definition a_port.h:47
@ UBI_PE_USB
Definition a_port.h:51
@ UPI_PE_BLE
Definition a_port.h:52
@ UBI_PE_UART_BUS
Definition a_port.h:49
@ UBI_PE_SPI_BUS
Definition a_port.h:50
@ UBI_PE_ONE_WIRE_BUS
Definition a_port.h:48
port_type_enum
Definition a_port.h:55
@ UBI_PTE_FULL_DUPLEX
Definition a_port.h:56
@ UBI_PTE_HALF_DUPLEX
Definition a_port.h:57
void(* close_port_callback_t)(void *protocol_str)
Definition a_port.h:96
void base_port_ubi4_bus_receive_data(base_port_struct *port_str)
void(* base_port_receive_bridge_func_t)(void *port_str, uint8_t *buf, uint32_t size)
Definition a_port.h:81
void base_port_receive_bridge(base_port_struct *port_str, uint8_t *buf, uint32_t size)
Definition a_port.c:32
void(* wait_receive_t)(void *port_str, uint32_t rx_buf_offset, uint32_t len)
Definition a_port.h:89
uint32_t(* wait_receive_time_blocked_t)(void *port, uint32_t offset, uint32_t len, uint32_t time_ms)
Definition a_port.h:92
uint8_t *(* get_rx_buffer_t)(void *init_str)
Definition a_port.h:77
void(* stop_receive_t)(void *port_str)
Definition a_port.h:93
void(* write_and_time_receive_t)(void *port_str, uint8_t *buf, uint16_t size, uint32_t time_ms)
Definition a_port.h:79
void base_port_receive_to_current_device(base_port_struct *port_str, uint8_t *buf, uint32_t size)
Definition a_port.c:41
uint8_t * port_get_tx_buffer(base_port_struct *port_str)
Definition a_port.c:56
port_receive_mode_enum
Definition a_port.h:60
@ PORT_RECEIVER_COLLECT_MODE
Definition a_port.h:62
@ PORT_RECEIVER_IRQ_MODE
Definition a_port.h:61
void base_port_init(base_port_struct *port_str)
Definition a_port.c:15
void base_port_slave_answer(base_port_struct *port_str, uint8_t *buf, uint32_t size)
Definition a_port.c:37
uint8_t * port_get_rx_buffer(base_port_struct *port_str)
Definition a_port.c:61
void(* receive_to_another_device_func_t)(void *port_str, uint8_t *buf, uint32_t size)
Definition a_port.h:84
void(* start_receive_task_t)(void *port_str)
Definition a_port.h:87
void(* wait_tx_finish_t)(void *port_str)
Definition a_port.h:90
void(* receive_to_current_device_func_t)(void *port_str, uint8_t *buf, uint32_t size)
Definition a_port.h:83
void(* slave_answer_func_t)(void *port_str, uint8_t *buf, uint32_t size)
Definition a_port.h:82
void(* wait_receive_time_t)(void *port, uint32_t time_ms)
Definition a_port.h:91
void(* get_receive_buffer_size_t)(void *port_str, uint32_t *size)
Definition a_port.h:85
void(* set_receiver_mode_t)(void *port_str, port_receive_mode_enum mode)
Definition a_port.h:94
uint32_t(* GetTransmitTime_us_t)(void *port_str, uint32_t num_bytes)
Definition a_port.h:95
int(* receive_data_t)(void *port_str)
Definition a_port.h:80
void base_port_get_receive_buffer_size(base_port_struct *port_str, uint32_t *size)
Definition a_port.c:46
void base_port_read_data_buffer(base_port_struct *port_str, uint8_t *out_buf, uint32_t out_buf_size, uint32_t *read_bytes_size)
Definition a_port.c:51
void(* receive_to_another_device_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:297
void(* receive_to_current_device_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:296
void(* slave_answer_func_t)(void *protocol_str, uint8_t *buf, uint32_t size)
Definition a_protocol.h:292
Definition a_port.h:99
void * protocol
Definition a_port.h:142
uint32_t wait_rx_size
Definition a_port.h:150
wait_receive_time_t wait_receive_time
Definition a_port.h:126
uint16_t rx_buffer_offset
Definition a_port.h:148
uint8_t * rx_buffer
Definition a_port.h:146
read_data_buffer_t read_data_buffer
Definition a_port.h:118
uint32_t speed
Definition a_port.h:140
stop_receive_t stop_receive
Definition a_port.h:130
write_and_time_receive_t write_and_time_receive
Definition a_port.h:109
uint16_t rx_buffer_size
Definition a_port.h:147
GetTransmitTime_us_t GetTransmitTime_us
Definition a_port.h:133
base_port_receive_bridge_func_t receive_bridge_func
Definition a_port.h:112
wait_receive_t wait_receive
Definition a_port.h:123
bool(* check_dma)(void *port_str)
Definition a_port.h:137
close_port_callback_t close_port_callback
Definition a_port.h:135
start_receive_task_t start_receive_task
Definition a_port.h:119
processing_data_t processing_data
Definition a_port.h:121
port_receive_mode_enum receiver_mode
Definition a_port.h:144
get_rx_buffer_t get_rx_buffer
Definition a_port.h:106
wait_receive_time_blocked_t wait_receive_time_blocked
Definition a_port.h:128
write_direct_t write_direct
Definition a_port.h:107
void * init_struct
Definition a_port.h:103
set_receiver_mode_t set_receiver_mode
Definition a_port.h:131
uint8_t * tx_buffer
Definition a_port.h:152
get_tx_buffer_t get_tx_buffer
Definition a_port.h:105
uint16_t tx_buffer_size
Definition a_port.h:153
void(* abort_uart)()
Definition a_port.h:138
receive_to_current_device_func_t receive_to_current_device_func
Definition a_port.h:114
receive_to_another_device_func_t receive_to_another_device_func
Definition a_port.h:115
receive_data_t receive_data
Definition a_port.h:111
wait_tx_finish_t wait_tx_finish
Definition a_port.h:124
uint16_t rx_buffer_req_size
Definition a_port.h:149
ports_enum port_type
Definition a_port.h:100
slave_answer_func_t slave_answer_func
Definition a_port.h:113
port_type_enum port_direction
Definition a_port.h:101
get_receive_buffer_size_t get_receive_buffer_size
Definition a_port.h:117
Definition a_port.h:65
ports_enum port
Definition a_port.h:66