SerialAPI#

Modules#

cmd_handler_map_t

_transport_t

comm_interface_frame_ptr

Enumerations#

enum
TRANSPORT_TYPE_UART
TRANSPORT_TYPE_SPI
TRANSPORT_TYPE_ETHERNET
TRANSPORT_TYPE_UART
TRANSPORT_TYPE_SPI
TRANSPORT_TYPE_ETHERNET
}
enum
PARSE_IDLE
PARSE_FRAME_RECEIVED
PARSE_FRAME_SENT
PARSE_FRAME_ERROR
PARSE_RX_TIMEOUT
PARSE_TX_TIMEOUT
PARSE_IDLE
PARSE_FRAME_RECEIVED
PARSE_FRAME_SENT
PARSE_FRAME_ERROR
PARSE_RX_TIMEOUT
PARSE_TX_TIMEOUT
}

Typedefs#

typedef void(*
cmd_handler_t)(const comm_interface_frame_ptr)
typedef void *
typedef bool(*
cmd_foreach_callback_t)(cmd_handler_map_t const *const p_cmd_entry, cmd_context_t context)
typedef void *
typedef void(*
transmit_done_cb_t)(transport_handle_t transport)

Functions#

bool
invoke_cmd_handler(const comm_interface_frame_ptr frame)

Invoke command handler.

void
cmd_foreach(cmd_foreach_callback_t callback, cmd_context_t context)

Invokes callback for each registered command.

uint8_t
frame_payload_len(const comm_interface_frame_ptr frame)
void
comm_interface_transmit_frame(uint8_t cmd, uint8_t type, const uint8_t *payload, uint8_t len, transmit_done_cb_t cb)

Macros#

#define
CMD_HANDLER_SECTION "_cmd_handlers"
#define
ZW_ADD_CMD (cmd)
#define
RECEIVE_BUFFER_SIZE 180
#define
FRAME_LENGTH_MIN 3
#define
FRAME_LENGTH_MAX RECEIVE_BUFFER_SIZE

Enumeration Documentation#

transport_type_t#

transport_type_t
Enumerator
TRANSPORT_TYPE_UART
TRANSPORT_TYPE_SPI
TRANSPORT_TYPE_ETHERNET
TRANSPORT_TYPE_UART
TRANSPORT_TYPE_SPI
TRANSPORT_TYPE_ETHERNET

comm_interface_parse_result_t#

comm_interface_parse_result_t
Enumerator
PARSE_IDLE
PARSE_FRAME_RECEIVED
PARSE_FRAME_SENT
PARSE_FRAME_ERROR
PARSE_RX_TIMEOUT
PARSE_TX_TIMEOUT
PARSE_IDLE
PARSE_FRAME_RECEIVED
PARSE_FRAME_SENT
PARSE_FRAME_ERROR
PARSE_RX_TIMEOUT
PARSE_TX_TIMEOUT

Typedef Documentation#

cmd_handler_t#

typedef void(* cmd_handler_t) (const comm_interface_frame_ptr) )(const comm_interface_frame_ptr)

cmd_context_t#

typedef void* cmd_context_t

cmd_foreach_callback_t#

typedef bool(* cmd_foreach_callback_t) (cmd_handler_map_t const *const p_cmd_entry, cmd_context_t context) )(cmd_handler_map_t const *const p_cmd_entry, cmd_context_t context)

transport_handle_t#

typedef void* transport_handle_t

transmit_done_cb_t#

typedef void(* transmit_done_cb_t) (transport_handle_t transport) )(transport_handle_t transport)

transport_t#

typedef struct _transport_t transport_t

Variable Documentation#

serial_frame#

comm_interface_frame_ptr const serial_frame

Function Documentation#

invoke_cmd_handler#

bool invoke_cmd_handler (const comm_interface_frame_ptr frame)

Invoke command handler.

Parameters
TypeDirectionArgument NameDescription
const comm_interface_frame_ptr[in]frame

Frame

Returns

  • true if handler for given frame was invoked, false if no handler was found


cmd_foreach#

void cmd_foreach (cmd_foreach_callback_t callback, cmd_context_t context)

Invokes callback for each registered command.

Parameters
TypeDirectionArgument NameDescription
cmd_foreach_callback_tN/Acallback

Callback function to invoke.

cmd_context_tN/Acontext

Context to pass on to the callback function.

Will stop if the callback returns true.


frame_payload_len#

static uint8_t frame_payload_len (const comm_interface_frame_ptr frame)
Parameters
TypeDirectionArgument NameDescription
const comm_interface_frame_ptrN/Aframe

comm_interface_transmit_frame#

void comm_interface_transmit_frame (uint8_t cmd, uint8_t type, const uint8_t * payload, uint8_t len, transmit_done_cb_t cb)
Parameters
TypeDirectionArgument NameDescription
uint8_tN/Acmd
uint8_tN/Atype
const uint8_t *N/Apayload
uint8_tN/Alen
transmit_done_cb_tN/Acb

comm_interface_wait_transmit_done#

void comm_interface_wait_transmit_done (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

comm_interface_init#

void comm_interface_init (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

comm_interface_get_ack_timeout_ms#

uint32_t comm_interface_get_ack_timeout_ms (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

comm_interface_set_ack_timeout_ms#

void comm_interface_set_ack_timeout_ms (uint32_t t)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/At

comm_interface_get_byte_timeout_ms#

uint32_t comm_interface_get_byte_timeout_ms (void )
Parameters
TypeDirectionArgument NameDescription
voidN/A

comm_interface_set_byte_timeout_ms#

void comm_interface_set_byte_timeout_ms (uint32_t t)
Parameters
TypeDirectionArgument NameDescription
uint32_tN/At

comm_interface_parse_data#

comm_interface_parse_result_t comm_interface_parse_data (bool ack)
Parameters
TypeDirectionArgument NameDescription
boolN/Aack