| | |
| | | */ |
| | | void data_transfer_stop(void); |
| | | |
| | | /** |
| | | * @brief Send data |
| | | * @param [in] data Data to be sent |
| | | * @param [in] length Data length |
| | | * @return status |
| | | */ |
| | | uint16_t data_transfer_send(uint8_t *data, uint16_t length); |
| | | |
| | | #if UWB_SERIAL_DATA_TRANSFER_EN |
| | | |
| | | /* The string will be be sent over UWB when the |
| | | * last character received was a 'new line' '\n' (hex 0x0A) |
| | | * or if thestring has reached the maximum data length */ |
| | | #define SERIAL_DATA_TRANSFER_MODE_0 0 |
| | | |
| | | /* UART input data format: Length(2B) + Data */ |
| | | #define SERIAL_DATA_TRANSFER_MODE_1 1 |
| | | |
| | | #define UCI_DATA_TRANSFER_MODE 2 |
| | | |
| | | #define DATA_TRANSFER_TEST_MODE 3 |
| | | |
| | | #define UWB_DATA_TRANSFER_MODE UCI_DATA_TRANSFER_MODE |
| | | |
| | | #define SERIAL_MESSAGE_MAX_LEN (1024) |
| | | |
| | | #define UWB_SERIAL_DATA_POOL_SIZE 3 |
| | | |
| | | struct UWB_TX_MSG_t |
| | | { |
| | | bool flag; |
| | | uint16_t length; |
| | | uint8_t msg[MDSDU_MTU_MAX]; |
| | | }; |
| | | #if ((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | |
| | | struct RING_BUFFER_T |
| | | typedef struct MemoryBlock |
| | | { |
| | | struct UWB_TX_MSG_t buffer[UWB_SERIAL_DATA_POOL_SIZE]; |
| | | int head; |
| | | int tail; |
| | | int check; |
| | | }; |
| | | uint8_t *start; |
| | | uint16_t size; |
| | | int is_free; |
| | | struct MemoryBlock *prev; |
| | | struct MemoryBlock *next; |
| | | struct MemoryBlock *tail; |
| | | } MemoryBlock; |
| | | |
| | | typedef struct |
| | | { |
| | | uint8_t *memoryPool; |
| | | MemoryBlock *allocated; |
| | | MemoryBlock *free; |
| | | } MemoryPool; |
| | | |
| | | void uwb_cb_init(uint8_t *tx_cb, uint8_t *rx_cb); |
| | | struct MemoryBlock *uwb_transmit_cb_read(void); |
| | | struct MemoryBlock *uwb_receive_cb_read(void); |
| | | void uwb_transmit_cb_write(uint16_t length); |
| | | void uwb_receive_cb_write(const uint8_t *value, uint16_t length); |
| | | void uwb_serial_tx_msg_check(void); |
| | | void uwb_serial_rx_msg_check(void); |
| | | void uwb_serial_rx_msg_update(struct DM_MDSDU_T *rx); |
| | | void uwb_serial_data_transfer_tx_done(void); |
| | | |
| | | #endif //#if ((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | |
| | | #else |
| | | |
| | | void uwb_data_transfer_send_test(void); |