nRF51 SDK - S120 SoftDevice
|
PHY layer layer for serialization. More...
Data Structures | |
struct | ser_phy_evt_rx_buf_request_params_t |
A struct containing parameters of the event of type SER_PHY_EVT_RX_BUF_REQUEST. More... | |
struct | ser_phy_evt_rx_pkt_received_params_t |
A struct containing parameters of the event of type SER_PHY_EVT_RX_PKT_RECEIVED. More... | |
struct | ser_phy_evt_hw_error_params_t |
A struct containing parameters of the event of type SER_PHY_EVT_HW_ERROR. More... | |
struct | ser_phy_evt_t |
A struct containing events from a Serialization PHY module. More... | |
Typedefs | |
typedef void(* | ser_phy_events_handler_t )(ser_phy_evt_t event) |
A type of generic callback function handler to be used by all PHY module events. More... | |
Enumerations | |
enum | ser_phy_evt_type_t { SER_PHY_EVT_TX_PKT_SENT = 0, SER_PHY_EVT_RX_BUF_REQUEST, SER_PHY_EVT_RX_PKT_RECEIVED, SER_PHY_EVT_RX_PKT_DROPPED, SER_PHY_EVT_RX_OVERFLOW_ERROR, SER_PHY_EVT_TX_OVERREAD_ERROR, SER_PHY_EVT_HW_ERROR, SER_PHY_EVT_TYPE_MAX } |
Serialization PHY module events types. More... | |
Functions | |
uint32_t | ser_phy_open (ser_phy_events_handler_t events_handler) |
A function for opening and initializing a PHY module. More... | |
uint32_t | ser_phy_tx_pkt_send (const uint8_t *p_buffer, uint16_t num_of_bytes) |
A function for transmitting a packet. More... | |
uint32_t | ser_phy_rx_buf_set (uint8_t *p_buffer) |
A function for setting an RX buffer and enabling reception of data (the PHY flow). More... | |
void | ser_phy_close (void) |
A function for closing a PHY module. More... | |
void | ser_phy_interrupts_enable (void) |
A function for enabling a PHY module interrupts. More... | |
void | ser_phy_interrupts_disable (void) |
A function for disabling a PHY module interrupts. More... | |
PHY layer layer for serialization.
This file contains declarations of functions and definitions of data structures and identifiers (typedef enum) used as API of the serialization PHY layer.
When ser_phy_rx_buf_set function parameter is equal to NULL it means that there is not enough memory to store the packet, however the packet shall be received to dummy location to ensure continuous communication. After receiving has finished an event of type SER_PHY_EVT_RX_PKT_DROPPED shall be generated.
When ser_phy_rx_buf_set function parameter is different from NULL the packet should be received to a buffer pointed by it. After receiving has finished an event of type SER_PHY_EVT_RX_PKT_RECEIVED shall be generated with event parameters defined in ser_phy_evt_rx_pkt_received_params_t.
typedef void(* ser_phy_events_handler_t)(ser_phy_evt_t event) |
A type of generic callback function handler to be used by all PHY module events.
[in] | event | Serialization PHY module event. |
enum ser_phy_evt_type_t |
Serialization PHY module events types.
Enumerator | |
---|---|
SER_PHY_EVT_TX_PKT_SENT |
Obligatory to implement. An event indicating that TX packet has been transmitted. |
SER_PHY_EVT_RX_BUF_REQUEST |
Obligatory to implement. An event indicating that phy layer needs a buffer for RX packet. A PHY flow should be blocked until ser_phy_rx_buf_set function is called. |
SER_PHY_EVT_RX_PKT_RECEIVED |
Obligatory to implement. An event indicating that RX packet has been successfully received. |
SER_PHY_EVT_RX_PKT_DROPPED |
Obligatory to implement. An event indicating that RX packet receiving has been finished but packet was discarded because it was longer than available buffer. |
SER_PHY_EVT_RX_OVERFLOW_ERROR |
Optional to implement. An event indicating that more information has been transmitted than phy module could handle. |
SER_PHY_EVT_TX_OVERREAD_ERROR |
Optional to implement. An event indicating that phy module was forced to transmit more information than possessed. |
SER_PHY_EVT_HW_ERROR |
Optional to implement. An event indicating a hardware error in phy module. |
SER_PHY_EVT_TYPE_MAX |
Enumeration upper bound. |
void ser_phy_close | ( | void | ) |
A function for closing a PHY module.
void ser_phy_interrupts_disable | ( | void | ) |
A function for disabling a PHY module interrupts.
void ser_phy_interrupts_enable | ( | void | ) |
A function for enabling a PHY module interrupts.
uint32_t ser_phy_open | ( | ser_phy_events_handler_t | events_handler | ) |
A function for opening and initializing a PHY module.
[in] | events_handler | Generic callback function handler to be used by all PHY module events. |
NRF_SUCCESS | Operation success. |
NRF_ERROR_INVALID_STATE | Operation failure. The function has been already called. To call it again the function ser_phy_close has to be called previously. |
NRF_ERROR_NULL | Operation failure. NULL pointer supplied. |
NRF_ERROR_INVALID_PARAM | Operation failure. Hardware initialization parameters are not supported. |
uint32_t ser_phy_rx_buf_set | ( | uint8_t * | p_buffer | ) |
A function for setting an RX buffer and enabling reception of data (the PHY flow).
[in] | p_buffer | Pointer to an RX buffer where to receive. |
NRF_SUCCESS | Operation success. |
NRF_ERROR_INVALID_STATE | Operation failure. A buffer was set without request. |
uint32_t ser_phy_tx_pkt_send | ( | const uint8_t * | p_buffer, |
uint16_t | num_of_bytes | ||
) |
A function for transmitting a packet.
[in] | p_buffer | Pointer to a buffer to transmit. |
[in] | num_of_bytes | Number of octets to transmit. Must be more than 0. |
NRF_SUCCESS | Operation success. Packet was added to the transmission queue and event will be send upon transmission completion. |
NRF_ERROR_NULL | Operation failure. NULL pointer supplied. |
NRF_ERROR_INVALID_PARAM | Operation failure. The num_of_bytes parameter equal to 0. |
NRF_ERROR_BUSY | Operation failure. Transmitting of a packet in progress. |