Modules#
CoAP#
The Wi-SUN CoAP component provides an application layer implementation on top of the Wi-SUN stack and its socket API. The CoAP protocol is designed as a specialized Internet Application Protocol for constrained devices in lossy networks (see RFC 7252 for additional information). Wi-SUN FAN networks fit this definition. The CoAP implementation relies on the UDP transport layer to send and receive packets.
A number of helper functions are part of the component to help build CoAP payloads, parse CoAP packets, free CoAP packets, and more.
CoAP Resource Handler service handles registered resources. Resource Discovery request provides an interface to get information about available resources. Resource has more attributes over URI (Uniform Resource Identifier) path, which can be filtered by particular Resource Discovery request.
To use the CoAP component in your application, add it to your project and initialize it with sl_wisun_coap_init().
Functions#
Initialize Wi-SUN CoAP.
Initialize Wi-SUN CoAP default.
Get lib state.
Implement malloc.
Free Wi-SUN CoAP.
CoAP parser wrapper function.
CoAP packet calc size wrapper.
CoAP message builder Wi-SUN.
Build generic response for request wrapper function.
Print CoAP packets and all of attached buffer, payload, token, uri_path.
Prepare URI path string.
Destroy URI path string.
Get the library handler pointer from the internal handler structure.
Destroy packet.
Prepare payload string.
Destroy payload string.
Macros#
CoAP Service loop.
Function Documentation#
sl_wisun_coap_init#
bool sl_wisun_coap_init (const sl_wisun_coap_tx_callback tx_callback, const sl_wisun_coap_rx_callback rx_callback, const sl_wisun_coap_version_t version)
Initialize Wi-SUN CoAP.
[in] | tx_callback | TX callback, if it's NULL, the default callback is applied |
[in] | rx_callback | RX callback, if it's NULL, the default callback is applied |
[in] | version | CoAP version |
Set the Wi-SUN CoAP internal descriptor. Returns
true Proper initialization
false Error
143
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_init_default#
static bool sl_wisun_coap_init_default (void )
Initialize Wi-SUN CoAP default.
N/A |
Initializes the internal descriptor with default values. Returns
true Proper initialization
false Error
153
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_is_initialized#
bool sl_wisun_coap_is_initialized (void )
Get lib state.
N/A |
Gets the initialized state of the CoAP library to decide whether the init is needed. Returns
true Initialized
false Not initialized
164
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_malloc#
void* sl_wisun_coap_malloc (uint16_t size)
Implement malloc.
N/A | size | size for malloc |
OS-dependent thread-safe implementation. Returns
void* the memory pointer
172
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_free#
void sl_wisun_coap_free (void * addr)
Free Wi-SUN CoAP.
N/A | addr | address ptr |
OS-dependent thread-safe implementation.
179
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_parser#
sl_wisun_coap_packet_t* sl_wisun_coap_parser (uint16_t packet_data_len, uint8_t * packet_data)
CoAP parser wrapper function.
[in] | packet_data_len | packet data size |
[in] | packet_data | packet data ptr |
Used sn_coap_parser Returns
sl_wisun_coap_packet_t* Parsed packet pointer
188
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_builder_calc_size#
uint16_t sl_wisun_coap_builder_calc_size (const sl_wisun_coap_packet_t * message)
CoAP packet calc size wrapper.
[in] | message | message ptr |
Used sn_coap_builder_calc_needed_packet_data_size. Returns
uint16_t size
197
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_builder#
int16_t sl_wisun_coap_builder (uint8_t * dest_buff, const sl_wisun_coap_packet_t * message)
CoAP message builder Wi-SUN.
[out] | dest_buff | destination buffer for raw message |
[in] | message | message structure |
Used sl_wisun_coap_builder. Returns
int16_t On success bytes of built message, on failure -1 if CoAP header structure is wrong -2 if NULL ptr set as argument
208
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_build_response#
sl_wisun_coap_packet_t* sl_wisun_coap_build_response (const sl_wisun_coap_packet_t * req, sl_wisun_coap_message_code_t msg_code)
Build generic response for request wrapper function.
[in] | req | request |
[in] | msg_code | message code to build |
Used sn_coap_build_response. Returns
sl_wisun_coap_header_t* built packet ptr on the heap
218
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_print_packet#
void sl_wisun_coap_print_packet (const sl_wisun_coap_packet_t * packet, const bool hex_format)
Print CoAP packets and all of attached buffer, payload, token, uri_path.
[in] | packet | packet to print |
[in] | hex_format | hex format bool to decide buffer print format |
Pretty printer function, with hex format option for buffers
227
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_get_uri_path_str#
char* sl_wisun_coap_get_uri_path_str (const sl_wisun_coap_packet_t *const packet)
Prepare URI path string.
[in] | packet | Packet |
'\0' terminated string in the heap, it must be freed Returns
char* URI path string, NULL on error
236
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_destroy_uri_path_str#
static void sl_wisun_coap_destroy_uri_path_str (char * uri_str)
Destroy URI path string.
[in] | uri_str | URI string ptr |
Call free on allocated pointer
243
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_get_lib_handler#
const sl_wisun_coap_handle_t* sl_wisun_coap_get_lib_handler (void )
Get the library handler pointer from the internal handler structure.
N/A |
Not thread safe! It is needed only to use Pelion mbed-coap library functions Returns
const sl_wisun_coap_handle_t* pointer to the lib handler
253
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_destroy_packet#
void sl_wisun_coap_destroy_packet (sl_wisun_coap_packet_t * packet)
Destroy packet.
N/A | packet | packet |
It must be used to avoid memory leaks! Free the all of allocated buffer for packet
261
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_get_payload_str#
char* sl_wisun_coap_get_payload_str (const sl_wisun_coap_packet_t *const packet)
Prepare payload string.
[in] | packet | Packet |
'\0' terminated string in the heap, it must be freed Returns
char* payload string, NULL on error
269
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h
sl_wisun_coap_destroy_payload_str#
static void sl_wisun_coap_destroy_payload_str (char * str)
Destroy payload string.
[in] | str | String |
'\0' terminated string in the heap, it must be freed
276
of file /mnt/raid/workspaces/ws.VedEDj2Fn/overlay/gsdk/app/wisun/component/coap/sl_wisun_coap.h