Simulated product dispenser

Dependencies:   HTS221

Fork of mbed-cloud-workshop-connect-HTS221 by Jim Carver

Embed: (wiki syntax)

« Back to documentation index

sn_nsdl_lib.h File Reference

sn_nsdl_lib.h File Reference

NanoService Devices Library header file. More...

Go to the source code of this file.

Data Structures

struct  sn_nsdl_ep_parameters_
 Endpoint registration parameters. More...
struct  sn_nsdl_static_resource_parameters_
 Defines static parameters for the resource. More...
struct  sn_nsdl_resource_parameters_
 Defines dynamic parameters for the resource. More...

Typedefs

typedef enum omalw_server_security_ omalw_server_security_t
 Received device server security.
typedef enum
sn_nsdl_oma_binding_and_mode_ 
sn_nsdl_oma_binding_and_mode_t
 Endpoint binding and mode.
typedef enum
sn_nsdl_registration_mode_ 
sn_nsdl_registration_mode_t
 Endpoint registration mode.
typedef struct
sn_nsdl_ep_parameters_ 
sn_nsdl_ep_parameters_s
 Endpoint registration parameters.
typedef enum sn_grs_resource_acl_ sn_grs_resource_acl_e
 Resource access rights.
typedef enum sn_nsdl_resource_mode_ sn_nsdl_resource_mode_e
 Defines the resource mode.
typedef NotificationDeliveryStatus NoticationDeliveryStatus
 Dummy alias to maintain compatibility with older version which had a typo in the enum name.
typedef struct
sn_nsdl_static_resource_parameters_ 
sn_nsdl_static_resource_parameters_s
 Defines static parameters for the resource.
typedef struct
sn_nsdl_resource_parameters_ 
sn_nsdl_dynamic_resource_parameters_s
 Defines dynamic parameters for the resource.

Enumerations

enum  omalw_server_security_
 

Received device server security.

More...
enum  sn_nsdl_oma_binding_and_mode_
 

Endpoint binding and mode.

More...
enum  sn_nsdl_registration_mode_
 

Endpoint registration mode.

More...
enum  sn_grs_resource_acl_
 

Resource access rights.

More...
enum  sn_nsdl_resource_mode_ { SN_GRS_STATIC = 0, SN_GRS_DYNAMIC, SN_GRS_DIRECTORY }
 

Defines the resource mode.

More...
enum  NotificationDeliveryStatus
 

Enum defining an status codes that can happen when sending notification.

More...

Functions

uint16_t sn_nsdl_register_endpoint (struct nsdl_s *handle, sn_nsdl_ep_parameters_s *endpoint_info_ptr, const char *uri_query_parameters)
 Registers endpoint to mbed Device Server.
int32_t sn_nsdl_unregister_endpoint (struct nsdl_s *handle)
 Sends unregister-message to mbed Device Server.
int32_t sn_nsdl_update_registration (struct nsdl_s *handle, uint8_t *lt_ptr, uint8_t lt_len)
 Update the registration with mbed Device Server.
int8_t sn_nsdl_set_endpoint_location (struct nsdl_s *handle, uint8_t *location_ptr, uint8_t location_len)
 Sets the location receievd from Device Server.
int8_t sn_nsdl_is_ep_registered (struct nsdl_s *handle)
 Checks if endpoint is registered.
void sn_nsdl_nsp_lost (struct nsdl_s *handle)
 A function to inform mbed Device C client library if application detects a fault in mbed Device Server registration.
char * sn_nsdl_get_version (void)
 Version query function.
int8_t sn_nsdl_process_coap (struct nsdl_s *handle, uint8_t *packet, uint16_t packet_len, sn_nsdl_addr_s *src)
 To push CoAP packet to mbed Device C Client library.
int8_t sn_nsdl_exec (struct nsdl_s *handle, uint32_t time)
 CoAP retransmission function.
int8_t sn_nsdl_send_coap_message (struct nsdl_s *handle, sn_nsdl_addr_s *address_ptr, sn_coap_hdr_s *coap_hdr_ptr)
 Send an outgoing CoAP request.
int8_t set_NSP_address (struct nsdl_s *handle, uint8_t *NSP_address, uint8_t address_length, uint16_t port, sn_nsdl_addr_type_e address_type)
 This function is used to set the mbed Device Server address given by an application.
int8_t sn_nsdl_destroy (struct nsdl_s *handle)
 This function releases all allocated memory in mbed Device C Client library.
sn_coap_hdr_ssn_nsdl_build_response (struct nsdl_s *handle, sn_coap_hdr_s *coap_packet_ptr, uint8_t msg_code)
 Prepares generic response packet from a request packet.
sn_coap_options_list_ssn_nsdl_alloc_options_list (struct nsdl_s *handle, sn_coap_hdr_s *coap_msg_ptr)
 Allocates and initializes options list structure.
void sn_nsdl_release_allocated_coap_msg_mem (struct nsdl_s *handle, sn_coap_hdr_s *freed_coap_msg_ptr)
 Releases memory of given CoAP message.
int8_t sn_nsdl_set_retransmission_parameters (struct nsdl_s *handle, uint8_t resending_count, uint8_t resending_interval)
 If re-transmissions are enabled, this function changes resending count and interval.
int8_t sn_nsdl_set_retransmission_buffer (struct nsdl_s *handle, uint8_t buffer_size_messages, uint16_t buffer_size_bytes)
 If re-transmissions are enabled, this function changes message retransmission queue size.
int8_t sn_nsdl_set_block_size (struct nsdl_s *handle, uint16_t block_size)
 If block transfer is enabled, this function changes the block size.
int8_t sn_nsdl_set_duplicate_buffer_size (struct nsdl_s *handle, uint8_t message_count)
 If dublicate message detection is enabled, this function changes buffer size.
void * sn_nsdl_get_context (const struct nsdl_s *const handle)
 Get the application defined context parameter for given handle.
int8_t sn_nsdl_clear_coap_resending_queue (struct nsdl_s *handle)
 Clean confirmable message list.
int8_t sn_nsdl_clear_coap_sent_blockwise_messages (struct nsdl_s *handle)
 Clears the sent blockwise messages from the linked list.
int8_t sn_nsdl_handle_block2_response_internally (struct nsdl_s *handle, uint8_t handle_response)
 This function change the state whether CoAP library sends the block 2 response automatically or not.
void sn_nsdl_print_coap_data (sn_coap_hdr_s *coap_header_ptr, bool outgoing)
 Utility function to print all the CoAP header parameters.
uint8_t sn_nsdl_get_retransmission_count (struct nsdl_s *handle)
 Returns retransmission coint.

Detailed Description

NanoService Devices Library header file.

Definition in file sn_nsdl_lib.h.


Typedef Documentation

Dummy alias to maintain compatibility with older version which had a typo in the enum name.

Definition at line 165 of file sn_nsdl_lib.h.

Received device server security.

Resource access rights.

Defines dynamic parameters for the resource.

Endpoint registration parameters.

Endpoint binding and mode.

Endpoint registration mode.

If REGISTER_WITH_RESOURCES, endpoint sends list of all resources during registration. If REGISTER_WITH_TEMPLATE, endpoint sends registration without resource list. Device server must have correctly configured template.

Defines the resource mode.

Defines static parameters for the resource.


Enumeration Type Documentation

Enum defining an status codes that can happen when sending notification.

Definition at line 153 of file sn_nsdl_lib.h.

Received device server security.

Definition at line 59 of file sn_nsdl_lib.h.

Resource access rights.

Definition at line 133 of file sn_nsdl_lib.h.

Endpoint binding and mode.

Definition at line 70 of file sn_nsdl_lib.h.

Endpoint registration mode.

If REGISTER_WITH_RESOURCES, endpoint sends list of all resources during registration. If REGISTER_WITH_TEMPLATE, endpoint sends registration without resource list. Device server must have correctly configured template.

Definition at line 105 of file sn_nsdl_lib.h.

Defines the resource mode.

Enumerator:
SN_GRS_STATIC 

Static resources have some value that doesn't change.

SN_GRS_DYNAMIC 

Dynamic resources are handled in application.

Therefore one must give function callback pointer to them

SN_GRS_DIRECTORY 

Directory resources are unused and unsupported.

Definition at line 143 of file sn_nsdl_lib.h.


Function Documentation

int8_t set_NSP_address ( struct nsdl_s *  handle,
uint8_t *  NSP_address,
uint8_t  address_length,
uint16_t  port,
sn_nsdl_addr_type_e  address_type 
)

This function is used to set the mbed Device Server address given by an application.

Parameters:
*handlePointer to nsdl-library handle
Returns:
0 Success
-1 Failed to indicate that internal address pointer is not allocated (call nsdl_init() first).

Definition at line 1780 of file sn_nsdl.c.

sn_coap_options_list_s* sn_nsdl_alloc_options_list ( struct nsdl_s *  handle,
sn_coap_hdr_s coap_msg_ptr 
)

Allocates and initializes options list structure.

Parameters:
*handlePointer to library handle
*coap_msg_ptris pointer to CoAP message that will contain the options

If the message already has a pointer to an option structure, that pointer is returned, rather than a new structure being allocated.

Returns:
Return value is pointer to the CoAP options structure.
In following failure cases NULL is returned:
-Failure in given pointer (= NULL)
-Failure in memory allocation (malloc() returns NULL)

Definition at line 2045 of file sn_nsdl.c.

sn_coap_hdr_s * sn_nsdl_build_response ( struct nsdl_s *  handle,
sn_coap_hdr_s coap_packet_ptr,
uint8_t  msg_code 
)

Prepares generic response packet from a request packet.

This function allocates memory for the resulting sn_coap_hdr_s

Parameters:
*handlePointer to library handle
*coap_packet_ptrThe request packet pointer
msg_coderesponse messages code
Returns:
*coap_packet_ptr The allocated and pre-filled response packet pointer NULL Error in parsing the request

Definition at line 2036 of file sn_nsdl.c.

int8_t sn_nsdl_clear_coap_resending_queue ( struct nsdl_s *  handle )

Clean confirmable message list.

Parameters:
*handlePointer to library handle
Returns:
0 = success, -1 = failure

Definition at line 2131 of file sn_nsdl.c.

int8_t sn_nsdl_clear_coap_sent_blockwise_messages ( struct nsdl_s *  handle )

Clears the sent blockwise messages from the linked list.

Parameters:
*handlePointer to library handle
Returns:
0 = success, -1 = failure

Definition at line 1922 of file sn_nsdl.c.

int8_t sn_nsdl_destroy ( struct nsdl_s *  handle )

This function releases all allocated memory in mbed Device C Client library.

Parameters:
*handlePointer to nsdl-library handle

Definition at line 133 of file sn_nsdl.c.

int8_t sn_nsdl_exec ( struct nsdl_s *  handle,
uint32_t  time 
)

CoAP retransmission function.

Used to give execution time for the mbed Device C Client library for retransmissions.

Parameters:
*handlePointer to nsdl-library handle
timeTime in seconds.
Returns:
0 Success
-1 Failure

Definition at line 873 of file sn_nsdl.c.

void * sn_nsdl_get_context ( const struct nsdl_s *const  handle )

Get the application defined context parameter for given handle.

This is useful for example when interfacing with c++ objects where a pointer to object is set as the context, and in the callback functions the context pointer can be used to call methods for the correct instance of the c++ object.

Parameters:
*handlePointer to library handle
Returns:
Pointer to the application defined context

Definition at line 2122 of file sn_nsdl.c.

uint8_t sn_nsdl_get_retransmission_count ( struct nsdl_s *  handle )

Returns retransmission coint.

Parameters:
*handlePointer to library handle
Returns:
Retransmission count

Definition at line 2554 of file sn_nsdl.c.

uint32_t sn_nsdl_get_version ( void   )

Version query function.

Used to retrieve the version information from the mbed Device C Client library.

Returns:
Pointer to library version string

Definition at line 684 of file sn_nsdl.c.

int8_t sn_nsdl_handle_block2_response_internally ( struct nsdl_s *  handle,
uint8_t  handle_response 
)

This function change the state whether CoAP library sends the block 2 response automatically or not.

Parameters:
*handlePointer to NSDL library handle
handle_response1 if CoAP library handles the response sending otherwise 0.
Returns:
0 = success, -1 = failure

Definition at line 1912 of file sn_nsdl.c.

int8_t sn_nsdl_is_ep_registered ( struct nsdl_s *  handle )

Checks if endpoint is registered.

Parameters:
*handlePointer to nsdl-library handle
Returns:
1 Endpoint registration is done successfully
0 Endpoint is not registered

Definition at line 518 of file sn_nsdl.c.

void sn_nsdl_nsp_lost ( struct nsdl_s *  handle )

A function to inform mbed Device C client library if application detects a fault in mbed Device Server registration.

Parameters:
*handlePointer to nsdl-library handle

After calling this function sn_nsdl_is_ep_registered() will return "not registered".

Definition at line 508 of file sn_nsdl.c.

bool sn_nsdl_print_coap_data ( sn_coap_hdr_s coap_header_ptr,
bool  outgoing 
)

Utility function to print all the CoAP header parameters.

Parameters:
*coap_header_ptrCoAP header
outgoingIf True, package is going to be sent to server otherwise receiving

Definition at line 2274 of file sn_nsdl.c.

int8_t sn_nsdl_process_coap ( struct nsdl_s *  handle,
uint8_t *  packet,
uint16_t  packet_len,
sn_nsdl_addr_s src 
)

To push CoAP packet to mbed Device C Client library.

Used to push an CoAP packet to mbed Device C Client library for processing.

Parameters:
*handlePointer to nsdl-library handle
*packetPointer to a uint8_t array containing the packet (including the CoAP headers). After successful execution this array may contain the response packet.
*packet_lenPointer to length of the packet. After successful execution this array may contain the length of the response packet.
*srcPointer to packet source address information. After successful execution this array may contain the destination address of the response packet.
Returns:
0 Success
-1 Failure

Definition at line 695 of file sn_nsdl.c.

uint16_t sn_nsdl_register_endpoint ( struct nsdl_s *  handle,
sn_nsdl_ep_parameters_s endpoint_info_ptr,
const char *  uri_query_parameters 
)

Registers endpoint to mbed Device Server.

Parameters:
*handlePointer to nsdl-library handle
*endpoint_info_ptrContains endpoint information.
*uri_query_parametersUri query parameters.
Returns:
registration message ID, 0 if failed

Definition at line 222 of file sn_nsdl.c.

void sn_nsdl_release_allocated_coap_msg_mem ( struct nsdl_s *  handle,
sn_coap_hdr_s freed_coap_msg_ptr 
)

Releases memory of given CoAP message.

Note!!! Does not release Payload part

Parameters:
*handlePointer to library handle
*freed_coap_msg_ptris pointer to released CoAP message

Definition at line 2053 of file sn_nsdl.c.

int8_t sn_nsdl_send_coap_message ( struct nsdl_s *  handle,
sn_nsdl_addr_s address_ptr,
sn_coap_hdr_s coap_hdr_ptr 
)

Send an outgoing CoAP request.

Parameters:
*handlePointer to nsdl-library handle
*address_ptrPointer to source address struct
*coap_hdr_ptrPointer to CoAP message to be sent
Returns:
0 Success
-1 Failure

Definition at line 1900 of file sn_nsdl.c.

int8_t sn_nsdl_set_block_size ( struct nsdl_s *  handle,
uint16_t  block_size 
)

If block transfer is enabled, this function changes the block size.

Parameters:
*handlePointer to library handle
uint16_tblock_size maximum size of CoAP payload. Valid sizes are 16, 32, 64, 128, 256, 512 and 1024 bytes
Returns:
0 = success, -1 = failure

Definition at line 2082 of file sn_nsdl.c.

int8_t sn_nsdl_set_duplicate_buffer_size ( struct nsdl_s *  handle,
uint8_t  message_count 
)

If dublicate message detection is enabled, this function changes buffer size.

Parameters:
*handlePointer to library handle
uint8_tmessage_count max number of messages saved for duplicate control
Returns:
0 = success, -1 = failure

Definition at line 2090 of file sn_nsdl.c.

int8_t sn_nsdl_set_endpoint_location ( struct nsdl_s *  handle,
uint8_t *  location_ptr,
uint8_t  location_len 
)

Sets the location receievd from Device Server.

Parameters:
*handlePointer to nsdl-library handle
*lt_ptrPointer to location value string , eg. "s322j4k"
lt_lenLength of the location string
Returns:
success, <0 if failed

Definition at line 494 of file sn_nsdl.c.

int8_t sn_nsdl_set_retransmission_buffer ( struct nsdl_s *  handle,
uint8_t  buffer_size_messages,
uint16_t  buffer_size_bytes 
)

If re-transmissions are enabled, this function changes message retransmission queue size.

Set size to '0' to disable feature. If both are set to '0', then re-sendings are disabled.

Parameters:
*handlePointer to library handle
uint8_tbuffer_size_messages queue size - maximum number of messages to be saved to queue
uint8_tbuffer_size_bytes queue size - maximum size of messages saved to queue
Returns:
0 = success, -1 = failure

Definition at line 2072 of file sn_nsdl.c.

int8_t sn_nsdl_set_retransmission_parameters ( struct nsdl_s *  handle,
uint8_t  resending_count,
uint8_t  resending_intervall 
)

If re-transmissions are enabled, this function changes resending count and interval.

Parameters:
*handlePointer to library handle
uint8_tresending_count max number of resendings for message
uint8_tresending_intervall message resending intervall in seconds
Returns:
0 = success, -1 = failure

Definition at line 2062 of file sn_nsdl.c.

int32_t sn_nsdl_unregister_endpoint ( struct nsdl_s *  handle )

Sends unregister-message to mbed Device Server.

Parameters:
*handlePointer to nsdl-library handle
Returns:
unregistration message ID, 0 if failed

Definition at line 310 of file sn_nsdl.c.

int32_t sn_nsdl_update_registration ( struct nsdl_s *  handle,
uint8_t *  lt_ptr,
uint8_t  lt_len 
)

Update the registration with mbed Device Server.

Parameters:
*handlePointer to nsdl-library handle
*lt_ptrPointer to lifetime value string in ascii form, eg. "1200"
lt_lenLength of the lifetime string
Returns:
registration update message ID, <0 if failed

Definition at line 385 of file sn_nsdl.c.