11#ifndef __COMM_INTERFACE__
12#define __COMM_INTERFACE__
30#define RECEIVE_BUFFER_SIZE 32
36#define TRANSMIT_BUFFER_SIZE 180
76typedef struct __attribute__((packed))
87typedef struct __attribute__((packed))
103typedef struct __attribute__((packed))
117typedef struct __attribute__((packed))
#define TRANSMIT_BUFFER_SIZE
Transmit buffer size.
Definition cli_uart_interface.h:36
struct _transport_t transport_t
Transport.
comm_interface_command_t * comm_interface_get_command(void)
Get the received command.
comm_interface_parse_result_t
Parsing result enum.
Definition comm_interface.h:43
comm_interface_parse_result_t comm_interface_parse_data(void)
Parse the incomming data.
void(* transmit_done_cb_t)(transport_handle_t transport)
Transmit done callback type.
Definition comm_interface.h:71
void comm_interface_transmit_beam_stop(uint16_t timestamp, int8_t rssi, uint16_t counter, transmit_done_cb_t cb)
Transmit a beam stop frame to the host.
void comm_interface_init(zpal_uart_id_t uart, void(*uart_rx_event_handler)())
Initialize the communication interface.
void comm_interface_transmit_beam_start(uint16_t timestamp, uint8_t ch_and_speed, uint8_t region, int8_t rssi, const uint8_t *payload, uint8_t length, transmit_done_cb_t cb)
Transmit a beam start frame to the host.
void * transport_handle_t
Transport handle type.
Definition comm_interface.h:56
void comm_interface_wait_transmit_done(void)
void comm_interface_transmit_frame(uint16_t timestamp, uint8_t ch_and_speed, uint8_t region, int8_t rssi, const uint8_t *payload, uint8_t length, transmit_done_cb_t cb)
Transmit a frame to the host.
void comm_interface_transmit_command(uint8_t cmd, const uint8_t *payload, uint8_t len, transmit_done_cb_t cb)
Transmit a command to the host.
@ PARSE_IDLE
returned if nothing special has happened
Definition comm_interface.h:44
@ PARSE_FRAME_SENT
returned if frame was ACKed by the other end
Definition comm_interface.h:46
@ PARSE_TX_TIMEOUT
returned if Tx timeout (waiting for ACK) ahs happened
Definition comm_interface.h:49
@ PARSE_RX_TIMEOUT
returned if Rx timeout has happened
Definition comm_interface.h:48
@ PARSE_FRAME_RECEIVED
returned when a valid frame has been received
Definition comm_interface.h:45
@ PARSE_FRAME_ERROR
returned if frame has error in Checksum
Definition comm_interface.h:47
zpal_uart_id_t
IDs for each of the UARTs.
Definition zpal_uart.h:68
Transport.
Definition comm_interface.h:63
transport_handle_t handle
Transport handle.
Definition comm_interface.h:64
Beam start frame type.
Definition comm_interface.h:104
uint8_t type
Type of frame.
Definition comm_interface.h:106
uint8_t region
Region.
Definition comm_interface.h:109
uint8_t channel_and_speed
Channel and Speed.
Definition comm_interface.h:108
uint16_t timestamp
Timestamp.
Definition comm_interface.h:107
uint8_t rssi
RSSI value.
Definition comm_interface.h:110
uint8_t sof
Start of frame.
Definition comm_interface.h:105
Beam stop frame type.
Definition comm_interface.h:118
uint8_t type
Type of frame.
Definition comm_interface.h:120
uint16_t counter
Counter value.
Definition comm_interface.h:123
uint16_t timestamp
Timestamp.
Definition comm_interface.h:121
uint8_t rssi
RSSI value.
Definition comm_interface.h:122
uint8_t sof
Start of frame.
Definition comm_interface.h:119
Definition comm_interface.h:77
uint8_t sof
Start of frame.
Definition comm_interface.h:78
uint8_t cmd
Command.
Definition comm_interface.h:79
uint8_t len
Length.
Definition comm_interface.h:80
Definition comm_interface.h:88
uint8_t sof_frame
Start of frame.
Definition comm_interface.h:89
uint8_t channel_and_speed
Channel and speed.
Definition comm_interface.h:92
uint8_t region
Region.
Definition comm_interface.h:93
uint8_t type
Type of frame.
Definition comm_interface.h:90
uint16_t start_of_data
Start of data.
Definition comm_interface.h:95
uint8_t rssi
RSSI value.
Definition comm_interface.h:94
uint8_t len
Length.
Definition comm_interface.h:96
uint16_t timestamp
Timestamp.
Definition comm_interface.h:91