Rtos API example
sn_coap_protocol.c File Reference
CoAP Protocol implementation. More...
Go to the source code of this file.
Functions | |
static void | sn_coap_protocol_linked_list_duplication_info_remove (struct coap_s *handle, uint8_t *scr_addr_ptr, uint16_t port, uint16_t msg_id) |
Removes stored Duplication info from Linked list. | |
static void | sn_coap_protocol_linked_list_duplication_info_remove_old_ones (struct coap_s *handle) |
Removes old stored Duplication detection infos from Linked list. | |
static void | sn_coap_protocol_linked_list_blockwise_msg_remove (struct coap_s *handle, coap_blockwise_msg_s *removed_msg_ptr) |
Removes stored blockwise message from Linked list. | |
static void | sn_coap_protocol_linked_list_blockwise_payload_remove_oldest (struct coap_s *handle) |
Removes current stored blockwise paylod from Linked list. | |
static void | sn_coap_protocol_linked_list_blockwise_remove_old_data (struct coap_s *handle) |
Removes old stored Blockwise messages and payloads from Linked list. | |
static void | sn_coap_protocol_release_allocated_send_msg_mem (struct coap_s *handle, coap_send_msg_s *freed_send_msg_ptr) |
Releases memory of given Sending message (coap_send_msg_s) | |
static uint16_t | sn_coap_count_linked_list_size (const coap_send_msg_list_t *linked_list_ptr) |
Counts total message size of all messages in linked list. | |
void | sn_coap_protocol_clear_retransmission_buffer (struct coap_s *handle) |
If re-transmissions are enabled, this function removes all messages from the retransmission queue. | |
int16_t | sn_coap_protocol_build (struct coap_s *handle, sn_nsdl_addr_s *dst_addr_ptr, uint8_t *dst_packet_data_ptr, sn_coap_hdr_s *src_coap_msg_ptr, void *param) |
Builds Packet data from given CoAP header structure to be sent. | |
int8_t | sn_coap_protocol_exec (struct coap_s *handle, uint32_t current_time) |
Sends CoAP messages from re-sending queue, if there is any. |
Detailed Description
CoAP Protocol implementation.
Functionality: CoAP Protocol
Definition in file sn_coap_protocol.c.
Function Documentation
static uint16_t sn_coap_count_linked_list_size | ( | const coap_send_msg_list_t * | linked_list_ptr ) | [static] |
Counts total message size of all messages in linked list.
- Parameters:
-
const coap_send_msg_list_t *linked_list_ptr pointer to linked list
Definition at line 1530 of file sn_coap_protocol.c.
int16_t sn_coap_protocol_build | ( | struct coap_s * | handle, |
sn_nsdl_addr_s * | dst_addr_ptr, | ||
uint8_t * | dst_packet_data_ptr, | ||
sn_coap_hdr_s * | src_coap_msg_ptr, | ||
void * | param | ||
) |
Builds Packet data from given CoAP header structure to be sent.
- Parameters:
-
*dst_addr_ptr is pointer to destination address where CoAP message will be sent (CoAP builder needs that information for message resending purposes) *dst_packet_data_ptr is pointer to destination of built Packet data *src_coap_msg_ptr is pointer to source of built Packet data param void pointer that will be passed to tx/rx function callback when those are called.
- Returns:
- Return value is byte count of built Packet data.
Note: If message is blockwised, all payload is not sent at the same time
In failure cases:
-1 = Failure in CoAP header structure
-2 = Failure in given pointer (= NULL)
-3 = Failure in Reset message
-4 = Failure in Resending message store
If there is not enough memory (or User given limit exceeded) for storing resending messages, situation is ignored.
Definition at line 380 of file sn_coap_protocol.c.
void sn_coap_protocol_clear_retransmission_buffer | ( | struct coap_s * | handle ) |
If re-transmissions are enabled, this function removes all messages from the retransmission queue.
- Parameters:
-
*handle Pointer to CoAP library handle
Definition at line 307 of file sn_coap_protocol.c.
int8_t sn_coap_protocol_exec | ( | struct coap_s * | handle, |
uint32_t | current_time | ||
) |
Sends CoAP messages from re-sending queue, if there is any.
Cleans also old messages from the duplication list and from block receiving list
This function can be called e.g. once in a second but also more frequently.
- Parameters:
-
*handle Pointer to CoAP library handle current_time is System time in seconds. This time is used for message re-sending timing and to identify old saved data.
- Returns:
- 0 if success -1 if failed
Definition at line 756 of file sn_coap_protocol.c.
static void sn_coap_protocol_linked_list_blockwise_msg_remove | ( | struct coap_s * | handle, |
coap_blockwise_msg_s * | removed_msg_ptr | ||
) | [static] |
Removes stored blockwise message from Linked list.
- Parameters:
-
removed_msg_ptr is message to be removed
Definition at line 1198 of file sn_coap_protocol.c.
static void sn_coap_protocol_linked_list_blockwise_payload_remove_oldest | ( | struct coap_s * | handle ) | [static] |
Removes current stored blockwise paylod from Linked list.
Definition at line 1347 of file sn_coap_protocol.c.
static void sn_coap_protocol_linked_list_blockwise_remove_old_data | ( | struct coap_s * | handle ) | [static] |
Removes old stored Blockwise messages and payloads from Linked list.
Definition at line 1421 of file sn_coap_protocol.c.
static void sn_coap_protocol_linked_list_duplication_info_remove | ( | struct coap_s * | handle, |
uint8_t * | addr_ptr, | ||
uint16_t | port, | ||
uint16_t | msg_id | ||
) | [static] |
Removes stored Duplication info from Linked list.
- Parameters:
-
*addr_ptr is pointer to Address key to be removed port is Port key to be removed msg_id is Message ID key to be removed
Definition at line 1127 of file sn_coap_protocol.c.
static void sn_coap_protocol_linked_list_duplication_info_remove_old_ones | ( | struct coap_s * | handle ) | [static] |
Removes old stored Duplication detection infos from Linked list.
Definition at line 1165 of file sn_coap_protocol.c.
static void sn_coap_protocol_release_allocated_send_msg_mem | ( | struct coap_s * | handle, |
coap_send_msg_s * | freed_send_msg_ptr | ||
) | [static] |
Releases memory of given Sending message (coap_send_msg_s)
- Parameters:
-
*freed_send_msg_ptr is pointer to released Sending message
Definition at line 1513 of file sn_coap_protocol.c.
Generated on Sun Jul 17 2022 08:25:36 by 1.7.2