Serialization SoftDevice Transport on application side. More...
Functions |
|
| uint32_t | ser_sd_transport_open (ser_sd_transport_evt_handler_t evt_handler, ser_sd_transport_rsp_wait_handler_t os_rsp_wait_handler, ser_sd_transport_rsp_set_handler_t os_rsp_set_handler, ser_sd_transport_rx_notification_handler_t rx_not_handler) |
|
Function for opening the module.
More...
|
|
| uint32_t | ser_sd_transport_ot_rsp_wait_handler_set (ser_sd_transport_rsp_wait_handler_t wait_handler) |
|
Function setting a 'One Time' handler to be called between sending the next request packet and receiving the response packet.
More...
|
|
| uint32_t | ser_sd_transport_close (void) |
|
Function for closing the module.
More...
|
|
| uint32_t | ser_sd_transport_tx_alloc (uint8_t **pp_data, uint16_t *p_len) |
|
Function for allocating a TX packet to be used for request command.
More...
|
|
| uint32_t | ser_sd_transport_tx_free (uint8_t *p_data) |
|
Function for freeing a TX packet.
More...
|
|
| uint32_t | ser_sd_transport_rx_free (uint8_t *p_data) |
|
Function for freeing an RX event packet.
More...
|
|
| bool | ser_sd_transport_is_busy (void) |
|
Function for checking if module is busy waiting for response from connectivity side.
More...
|
|
| uint32_t | ser_sd_transport_cmd_write (const uint8_t *p_buffer, uint16_t length, ser_sd_transport_rsp_handler_t cmd_resp_decode_callback) |
|
Function for handling a SoftDevice command.
More...
|
|
Detailed Description
Serialization SoftDevice Transport on application side.
This file contains declarations of functions and definitions of data structures and identifiers (typedef enum) used as API of the serialization of SoftDevice. This layer ensures atomic nature of SoftDevice calls (command and waiting for response). Packet type field of incoming packets is handled in this layer - responses are handled by ser_sd_transport (using response decoder handler provided for each SoftDevice call), but events are forwarded to the user so it is up to the user to free the RX buffer.
Function Documentation
| uint32_t ser_sd_transport_close | ( | void | ) |
Function for closing the module.
- Return values
-
NRF_SUCCESS Operation success.
| uint32_t ser_sd_transport_cmd_write | ( | const uint8_t * | p_buffer , |
| uint16_t | length , | ||
| ser_sd_transport_rsp_handler_t | cmd_resp_decode_callback | ||
| ) |
Function for handling a SoftDevice command.
- Note
- Function blocks task context until response is received and processed.
- Non-blocking functionality can be achieved using OS handlers or a 'One Time' handler
- Warning
- Function should not be called from interrupt context, which would block switching to serial port interrupt.
- Parameters
-
[in] p_buffer Pointer to command. [in] length Pointer to allocated buffer length. [in] cmd_resp_decode_callback Pointer to a function for decoding the response packet.
- Return values
-
NRF_SUCCESS Operation success.
| bool ser_sd_transport_is_busy | ( | void | ) |
Function for checking if module is busy waiting for response from connectivity side.
- Return values
-
true Module busy. Cannot accept the next command. false Module not busy. Can accept next the command.
| uint32_t ser_sd_transport_open | ( | ser_sd_transport_evt_handler_t | evt_handler , |
| ser_sd_transport_rsp_wait_handler_t | os_rsp_wait_handler , | ||
| ser_sd_transport_rsp_set_handler_t | os_rsp_set_handler , | ||
| ser_sd_transport_rx_notification_handler_t | rx_not_handler | ||
| ) |
Function for opening the module.
- Note
- 'Wait for response' and 'Response set' callbacks can be set in RTOS environment. It enables rescheduling while waiting for the Connectivity Chip response. In a nonOS environment, usually 'Wait for response' will only be used for handling incoming events or forcing the application to low power mode.
- Parameters
-
[in] evt_handler Handler to be called when event packet is received. [in] os_rsp_wait_handler Handler to be called after the request is send. It should implement a 'Wait for signal' functionality in an OS environment. [in] os_rsp_set_handler Handler to be called after response reception. It should implement a 'Signal Set' functionality in an OS environment. [in] rx_not_handler Handler to be called after the transport layer notifies that an incoming RX packet is detected.
- Return values
-
NRF_SUCCESS Operation success. NRF_ERROR_NULL Operation failure. NULL pointer supplied. NRF_ERROR_INVALID_PARAM Operation failure. Parameter propagated from ser_hal_transport opening or timer creation. NRF_ERROR_INVALID_STATE Operation failure. Parameter propagated from ser_hal_transport opening or timer creation. NRF_ERROR_INTERNAL Operation failure. Parameter propagated from ser_hal_transport opening or timer creation. NRF_ERROR_NO_MEM Operation failure. Parameter propagated from timer creation.
| uint32_t ser_sd_transport_ot_rsp_wait_handler_set | ( | ser_sd_transport_rsp_wait_handler_t | wait_handler | ) |
Function setting a 'One Time' handler to be called between sending the next request packet and receiving the response packet.
- Note
- It is intended to be used in a nonOS environment to implement concurrency.
- It is a 'One Time' handler meaning that it is valid only for the next SoftDevice call processing.
- Parameters
-
[in] wait_handler Handler to be called after the request packet is sent.
- Return values
-
NRF_SUCCESS Operation success.
| uint32_t ser_sd_transport_rx_free | ( | uint8_t * | p_data | ) |
Function for freeing an RX event packet.
- Note
- Function should be called once the SoftDevice event buffer is processed.
- Parameters
-
[out] p_data Pointer to the allocated RX buffer.
- Return values
-
NRF_SUCCESS Operation success.
| uint32_t ser_sd_transport_tx_alloc | ( | uint8_t ** | pp_data , |
| uint16_t * | p_len | ||
| ) |
Function for allocating a TX packet to be used for request command.
- Parameters
-
[out] pp_data Pointer to the data pointer to be set to point to allocated buffer. [out] p_len Pointer to allocated buffer length.
- Return values
-
NRF_SUCCESS Operation success.
| uint32_t ser_sd_transport_tx_free | ( | uint8_t * | p_data | ) |
Function for freeing a TX packet.
- Note
- Function should be called once the command is processed.
- Parameters
-
[out] p_data Pointer to the allocated TX buffer.
- Return values
-
NRF_SUCCESS Operation success.