nRF51 SDK - S120 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Application command request encoders and command response decoders

Application command request encoders and command response decoders. More...

Functions

uint32_t ble_tx_buffer_count_get_req_enc (uint8_t const *const p_count, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_tx_buffer_count_get command request. More...
 
uint32_t ble_tx_buffer_count_get_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, uint8_t **const pp_count, uint32_t *const p_result_code)
 Decodes response to sd_ble_tx_buffer_count_get command. More...
 
uint32_t ble_uuid_encode_req_enc (ble_uuid_t const *const p_uuid, uint8_t const *const p_uuid_le_len, uint8_t const *const p_uuid_le, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_uuid_encode command request. More...
 
uint32_t ble_uuid_encode_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, uint8_t *const p_uuid_le_len, uint8_t *const p_uuid_le, uint32_t *const p_result_code)
 Decodes response to sd_ble_uuid_encode command. More...
 
uint32_t ble_uuid_decode_req_enc (uint8_t uuid_le_len, uint8_t const *const p_uuid_le, ble_uuid_t *const p_uuid, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_uuid_decode command request. More...
 
uint32_t ble_uuid_decode_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, ble_uuid_t **const p_uuid, uint32_t *const p_result_code)
 Decodes response to sd_ble_uuid_decode command. More...
 
uint32_t ble_uuid_vs_add_req_enc (ble_uuid128_t const *const p_vs_uuid, uint8_t *const p_uuid_type, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_uuid_vs_add command request. More...
 
uint32_t ble_uuid_vs_add_rsp_dec (uint8_t const *const p_buf, uint32_t buf_len, uint8_t **const pp_uuid_type, uint32_t *const p_result_code)
 Decodes response to sd_ble_uuid_vs_add command. More...
 
uint32_t ble_version_get_req_enc (ble_version_t const *const p_version, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_version_get command request. More...
 
uint32_t ble_version_get_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, ble_version_t *p_version, uint32_t *const p_result_code)
 Decodes response to sd_ble_version_get command. More...
 
uint32_t ble_opt_set_req_enc (uint32_t const opt_id, ble_opt_t const *const p_opt, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_opt_set command request. More...
 
uint32_t ble_opt_set_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, uint32_t *const p_result_code)
 Decodes response to sd_ble_opt_set command. More...
 
uint32_t ble_opt_get_req_enc (uint32_t opt_id, ble_opt_t const *const p_opt, uint8_t *const p_buf, uint32_t *const p_buf_len)
 Encodes sd_ble_opt_get command request. More...
 
uint32_t ble_opt_get_rsp_dec (uint8_t const *const p_buf, uint32_t packet_len, uint32_t *const p_opt_id, ble_opt_t *const p_opt, uint32_t *const p_result_code)
 Decodes response to sd_ble_opt_get command. More...
 
uint32_t ble_event_dec (uint8_t const *const p_buf, uint32_t packet_len, ble_evt_t *const p_event, uint32_t *const p_event_len)
 Event decoding dispatcher. More...
 

Detailed Description

Application command request encoders and command response decoders.

Function Documentation

uint32_t ble_event_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
ble_evt_t *const  p_event,
uint32_t *const  p_event_len 
)

Event decoding dispatcher.

The event decoding dispatcher will route the event packet to the correct decoder which in turn decodes the contents of the event and updates the p_event struct.

If p_event is null, the required length of p_event is returned in p_event_len.

Parameters
[in]p_bufPointer to beginning of event packet.
[in]packet_lenLength (in bytes) of event packet.
[in,out]p_eventPointer to a ble_evt_t buffer where the decoded event will be stored. If NULL, required length will be returned in p_event_len.
[in,out]p_event_lenin: Size (in bytes) of p_event buffer. out: Length of decoded contents of p_event.
Return values
NRF_SUCCESSDecoding success.
NRF_ERROR_NULLDecoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_DATA_SIZEDecoding failure. Length of p_event is too small to hold decoded event.
NRF_ERROR_NOT_FOUNDDecoding failure. No event decoder is available.
uint32_t ble_opt_get_req_enc ( uint32_t  opt_id,
ble_opt_t const *const  p_opt,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_opt_get command request.

See Also
0x68 - sd_ble_opt_get for packet format, ble_opt_get_rsp_dec for command response decoder.
Parameters
[in]opt_idIdentifies type of parameter in ble_opt_t union.
[in]p_optPointer to a ble_opt_t union to be filled by the response.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
NRF_ERROR_INVALID_PARAMInvalid opt id.
uint32_t ble_opt_get_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
uint32_t *const  p_opt_id,
ble_opt_t *const  p_opt,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_opt_get command.

See Also
0x68 - sd_ble_opt_get for packet format, ble_opt_get_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[out]p_opt_idPointer to a decoded opt_id
[out]p_optPointer to a decoded ble_opt_t union
[out]p_result_codeCommand result code.
Returns
NRF_SUCCESS Opt stored successfully.
Return values
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_DATA_SIZEDecoding failure. Length of p_event is too small to hold decoded event.
NRF_ERROR_INVALID_PARAMInvalid opt id.
uint32_t ble_opt_set_req_enc ( uint32_t const  opt_id,
ble_opt_t const *const  p_opt,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_opt_set command request.

See Also
0x67 - sd_ble_opt_set for packet format, ble_opt_set_rsp_dec for command response decoder.
Parameters
[in]opt_idIdentifies type of parameter in ble_opt_t union.
[in]p_optPointer to ble_opt_t union.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
NRF_ERROR_INVALID_PARAMInvalid opt id.
uint32_t ble_opt_set_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_opt_set command.

See Also
0x67 - sd_ble_opt_set for packet format, ble_opt_set_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[out]p_result_codeCommand result code.
Returns
NRF_SUCCESS Version information stored successfully.
Return values
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
uint32_t ble_tx_buffer_count_get_req_enc ( uint8_t const *const  p_count,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_tx_buffer_count_get command request.

See Also
0x61 - sd_ble_tx_buffer_count_get for packet format, ble_tx_buffer_count_get_rsp_dec for command response decoder.
Parameters
[in]p_countPointer to count value to be filled.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Note
p_count will not be updated by the command request encoder. Updated values are set by ble_tx_buffer_count_get_rsp_dec.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
uint32_t ble_tx_buffer_count_get_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
uint8_t **const  pp_count,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_tx_buffer_count_get command.

See Also
0x61 - sd_ble_tx_buffer_count_get for packet format, ble_tx_buffer_count_get_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[out]pp_countPointer to pointer to count value.
[out]p_result_codeCommand result code.
Return values
NRF_SUCCESSDecoding success.
NRF_ERROR_NULLDecoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_INVALID_DATADecoding failure. Decoded operation code does not match expected operation code.
uint32_t ble_uuid_decode_req_enc ( uint8_t  uuid_le_len,
uint8_t const *const  p_uuid_le,
ble_uuid_t *const  p_uuid,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_uuid_decode command request.

See Also
0x63 - sd_ble_uuid_decode for packet format, ble_uuid_decode_rsp_dec for command response decoder.
Parameters
[in]uuid_le_lenSize of p_uuid_le if p_uuid_le is not NULL
[in]p_uuid_lePointer to a buffer where the little endian raw UUID bytes(2 or 16) is stored.
[out]p_uuidPointer to a ble_uuid_t structure were raw UUID will be decoded.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Note
p_uuid will not be updated by the command request encoder. Updated values are set by ble_uuid_decode_rsp_dec.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
uint32_t ble_uuid_decode_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
ble_uuid_t **const  p_uuid,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_uuid_decode command.

See Also
0x63 - sd_ble_uuid_decode for packet format, ble_uuid_decode_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[out]p_uuidPointer to a buffer where the decoded UUID will be stored.
[out]p_result_codeCommand result code.
Return values
NRF_SUCCESSDecoding success.
NRF_ERROR_NULLDecoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_INVALID_DATADecoding failure. Decoded operation code does not match expected operation code.
uint32_t ble_uuid_encode_req_enc ( ble_uuid_t const *const  p_uuid,
uint8_t const *const  p_uuid_le_len,
uint8_t const *const  p_uuid_le,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_uuid_encode command request.

See Also
0x64 - sd_ble_uuid_encode for packet format, ble_uuid_encode_rsp_dec for command response decoder.
Parameters
[in]p_uuidPointer to a ble_uuid_t structure that will be encoded into bytes.
[in]p_uuid_le_lenSize of p_uuid_le if p_uuid_le is not NULL
[in]p_uuid_lePointer to a buffer where the little endian raw UUID bytes(2 or 16) will be stored. Can be NULL to calculate required size.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Note
p_uuid_le_len and p_uuid_le will not be updated by the command request encoder. Updated values are set by ble_uuid_encode_rsp_dec.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
uint32_t ble_uuid_encode_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
uint8_t *const  p_uuid_le_len,
uint8_t *const  p_uuid_le,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_uuid_encode command.

See Also
0x64 - sd_ble_uuid_encode for packet format, ble_uuid_encode_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[in,out]p_uuid_le_lenin: Size (in bytes) of p_uuid_le buffer. out: Length of decoded contents of p_uuid_le.
[out]p_uuid_lePointer to a buffer where the encoded UUID will be stored.
[out]p_result_codeCommand result code.
Return values
NRF_SUCCESSDecoding success.
NRF_ERROR_NULLDecoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_DATA_SIZELength of p_uuid_le is too small to hold decoded value from response.
NRF_ERROR_INVALID_DATADecoding failure. Decoded operation code does not match expected operation code.
uint32_t ble_uuid_vs_add_req_enc ( ble_uuid128_t const *const  p_vs_uuid,
uint8_t *const  p_uuid_type,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_uuid_vs_add command request.

See Also
0x62 - sd_ble_uuid_vs_add for packet format, ble_uuid_vs_add_rsp_dec for command response decoder.
Parameters
[in]p_vs_uuidPointer to a ble_uuid128_t structure.
[in]p_uuid_typePointer to uint8_t where UUID type will be returned.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Note
p_uuid_type will not be updated by the command request encoder. Updated values are set by ble_uuid_vs_add_rsp_dec.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
uint32_t ble_uuid_vs_add_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  buf_len,
uint8_t **const  pp_uuid_type,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_uuid_vs_add command.

See Also
0x62 - sd_ble_uuid_vs_add for packet format, ble_uuid_vs_add_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]buf_lenLength (in bytes) of response packet.
[out]pp_uuid_typePointer to a pointer to uint8_t where the decoded UUID type will be stored.
[out]p_result_codeCommand result code.
Return values
NRF_SUCCESSDecoding success.
NRF_ERROR_NULLDecoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_INVALID_DATADecoding failure. Decoded operation code does not match expected operation code.
uint32_t ble_version_get_req_enc ( ble_version_t const *const  p_version,
uint8_t *const  p_buf,
uint32_t *const  p_buf_len 
)

Encodes sd_ble_version_get command request.

See Also
0x65 - sd_ble_version_get for packet format, ble_version_get_rsp_dec for command response decoder.
Parameters
[in]p_versionPointer to a ble_version_t structure to be filled by the response.
[in]p_bufPointer to buffer where encoded data command will be returned.
[in,out]p_buf_lenin: Size of p_buf buffer. out: Length of encoded command packet.
Return values
NRF_SUCCESSEncoding success.
NRF_ERROR_NULLEncoding failure. NULL pointer supplied.
NRF_ERROR_INVALID_LENGTHEncoding failure. Incorrect buffer length.
uint32_t ble_version_get_rsp_dec ( uint8_t const *const  p_buf,
uint32_t  packet_len,
ble_version_t p_version,
uint32_t *const  p_result_code 
)

Decodes response to sd_ble_version_get command.

See Also
0x65 - sd_ble_version_get for packet format, ble_version_get_req_enc for command request encoder.
Parameters
[in]p_bufPointer to beginning of command response packet.
[in]packet_lenLength (in bytes) of response packet.
[out]p_versionPointer to a ble_version_t where decoded version will be stored.
[out]p_result_codeCommand result code.
Returns
NRF_SUCCESS Version information stored successfully.
Return values
NRF_ERROR_INVALID_LENGTHDecoding failure. Incorrect buffer length.
NRF_ERROR_DATA_SIZEDecoding failure. Length of p_event is too small to hold decoded event.