Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-client-c by
nsdl-c/sn_nsdl_lib.h@4:5d91b0f5038c, 2016-04-02 (annotated)
- Committer:
- Yogesh Pande
- Date:
- Sat Apr 02 00:39:03 2016 +0300
- Revision:
- 4:5d91b0f5038c
- Parent:
- 1:43f5c94c6771
Latest mbed-client-c sources from Github.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Yogesh Pande |
4:5d91b0f5038c | 1 | /* |
Yogesh Pande |
4:5d91b0f5038c | 2 | * Copyright (c) 2011-2015 ARM Limited. All rights reserved. |
Yogesh Pande |
4:5d91b0f5038c | 3 | * SPDX-License-Identifier: Apache-2.0 |
Yogesh Pande |
4:5d91b0f5038c | 4 | * Licensed under the Apache License, Version 2.0 (the License); you may |
Yogesh Pande |
4:5d91b0f5038c | 5 | * not use this file except in compliance with the License. |
Yogesh Pande |
4:5d91b0f5038c | 6 | * You may obtain a copy of the License at |
Yogesh Pande |
4:5d91b0f5038c | 7 | * |
Yogesh Pande |
4:5d91b0f5038c | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Yogesh Pande |
4:5d91b0f5038c | 9 | * |
Yogesh Pande |
4:5d91b0f5038c | 10 | * Unless required by applicable law or agreed to in writing, software |
Yogesh Pande |
4:5d91b0f5038c | 11 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT |
Yogesh Pande |
4:5d91b0f5038c | 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
Yogesh Pande |
4:5d91b0f5038c | 13 | * See the License for the specific language governing permissions and |
Yogesh Pande |
4:5d91b0f5038c | 14 | * limitations under the License. |
Yogesh Pande |
4:5d91b0f5038c | 15 | */ |
Yogesh Pande |
4:5d91b0f5038c | 16 | |
Yogesh Pande |
4:5d91b0f5038c | 17 | /** |
Yogesh Pande |
4:5d91b0f5038c | 18 | * \file sn_nsdl_lib.h |
Yogesh Pande |
4:5d91b0f5038c | 19 | * |
Yogesh Pande |
4:5d91b0f5038c | 20 | * \brief NanoService Devices Library header file |
Yogesh Pande |
4:5d91b0f5038c | 21 | * |
Yogesh Pande |
4:5d91b0f5038c | 22 | * |
Yogesh Pande |
4:5d91b0f5038c | 23 | */ |
Yogesh Pande |
4:5d91b0f5038c | 24 | |
Yogesh Pande |
4:5d91b0f5038c | 25 | #ifndef SN_NSDL_LIB_H_ |
Yogesh Pande |
4:5d91b0f5038c | 26 | #define SN_NSDL_LIB_H_ |
Yogesh Pande |
4:5d91b0f5038c | 27 | |
Yogesh Pande |
4:5d91b0f5038c | 28 | #include "ns_list.h" |
Yogesh Pande |
4:5d91b0f5038c | 29 | |
Yogesh Pande |
4:5d91b0f5038c | 30 | #ifdef __cplusplus |
Yogesh Pande |
4:5d91b0f5038c | 31 | extern "C" { |
Yogesh Pande |
4:5d91b0f5038c | 32 | #endif |
Yogesh Pande |
4:5d91b0f5038c | 33 | |
Yogesh Pande |
4:5d91b0f5038c | 34 | #define SN_NSDL_ENDPOINT_NOT_REGISTERED 0 |
Yogesh Pande |
4:5d91b0f5038c | 35 | #define SN_NSDL_ENDPOINT_IS_REGISTERED 1 |
Yogesh Pande |
4:5d91b0f5038c | 36 | |
Yogesh Pande |
4:5d91b0f5038c | 37 | /* Handle structure */ |
Yogesh Pande |
4:5d91b0f5038c | 38 | struct nsdl_s; |
Yogesh Pande |
4:5d91b0f5038c | 39 | |
Yogesh Pande |
4:5d91b0f5038c | 40 | /** |
Yogesh Pande |
4:5d91b0f5038c | 41 | * \brief Received device server security |
Yogesh Pande |
4:5d91b0f5038c | 42 | */ |
Yogesh Pande |
4:5d91b0f5038c | 43 | typedef enum omalw_server_security_ { |
Yogesh Pande |
4:5d91b0f5038c | 44 | SEC_NOT_SET = -1, |
Yogesh Pande |
4:5d91b0f5038c | 45 | PSK = 0, |
Yogesh Pande |
4:5d91b0f5038c | 46 | RPK = 1, |
Yogesh Pande |
4:5d91b0f5038c | 47 | CERTIFICATE = 2, |
Yogesh Pande |
4:5d91b0f5038c | 48 | NO_SEC = 3 |
Yogesh Pande |
4:5d91b0f5038c | 49 | } omalw_server_security_t; |
Yogesh Pande |
4:5d91b0f5038c | 50 | |
Yogesh Pande |
4:5d91b0f5038c | 51 | /** |
Yogesh Pande |
4:5d91b0f5038c | 52 | * \brief Endpoint binding and mode |
Yogesh Pande |
4:5d91b0f5038c | 53 | */ |
Yogesh Pande |
4:5d91b0f5038c | 54 | typedef enum sn_nsdl_oma_binding_and_mode_ { |
Yogesh Pande |
4:5d91b0f5038c | 55 | BINDING_MODE_NOT_SET = 0, |
Yogesh Pande |
4:5d91b0f5038c | 56 | BINDING_MODE_U = 0x01, |
Yogesh Pande |
4:5d91b0f5038c | 57 | BINDING_MODE_Q = 0x02, |
Yogesh Pande |
4:5d91b0f5038c | 58 | BINDING_MODE_S = 0x04 |
Yogesh Pande |
4:5d91b0f5038c | 59 | } sn_nsdl_oma_binding_and_mode_t; |
Yogesh Pande |
4:5d91b0f5038c | 60 | |
Yogesh Pande |
4:5d91b0f5038c | 61 | /** |
Yogesh Pande |
4:5d91b0f5038c | 62 | * \brief Endpoint registration mode. |
Yogesh Pande |
4:5d91b0f5038c | 63 | * If REGISTER_WITH_RESOURCES, endpoint sends list of all resources during registration. |
Yogesh Pande |
4:5d91b0f5038c | 64 | * If REGISTER_WITH_TEMPLATE, endpoint sends registration without resource list. Device server must have |
Yogesh Pande |
4:5d91b0f5038c | 65 | * correctly configured template. |
Yogesh Pande |
4:5d91b0f5038c | 66 | */ |
Yogesh Pande |
4:5d91b0f5038c | 67 | typedef enum sn_nsdl_registration_mode_ { |
Yogesh Pande |
4:5d91b0f5038c | 68 | REGISTER_WITH_RESOURCES = 0, |
Yogesh Pande |
4:5d91b0f5038c | 69 | REGISTER_WITH_TEMPLATE |
Yogesh Pande |
4:5d91b0f5038c | 70 | } sn_nsdl_registration_mode_t; |
Yogesh Pande |
4:5d91b0f5038c | 71 | |
Yogesh Pande |
4:5d91b0f5038c | 72 | |
Yogesh Pande |
4:5d91b0f5038c | 73 | typedef struct omalw_certificate_list_ { |
Yogesh Pande |
4:5d91b0f5038c | 74 | uint8_t certificate_chain_len; |
Yogesh Pande |
4:5d91b0f5038c | 75 | uint8_t *certificate_ptr[2]; |
Yogesh Pande |
4:5d91b0f5038c | 76 | uint16_t certificate_len[2]; |
Yogesh Pande |
4:5d91b0f5038c | 77 | uint8_t *own_private_key_ptr; |
Yogesh Pande |
4:5d91b0f5038c | 78 | uint16_t own_private_key_len; |
Yogesh Pande |
4:5d91b0f5038c | 79 | } omalw_certificate_list_t; |
Yogesh Pande |
4:5d91b0f5038c | 80 | |
Yogesh Pande |
4:5d91b0f5038c | 81 | /** |
Yogesh Pande |
4:5d91b0f5038c | 82 | * \brief Endpoint registration parameters |
Yogesh Pande |
4:5d91b0f5038c | 83 | */ |
Yogesh Pande |
4:5d91b0f5038c | 84 | typedef struct sn_nsdl_ep_parameters_ { |
Yogesh Pande |
4:5d91b0f5038c | 85 | uint8_t *endpoint_name_ptr; /**< Endpoint name */ |
Yogesh Pande |
4:5d91b0f5038c | 86 | uint8_t endpoint_name_len; |
Yogesh Pande |
4:5d91b0f5038c | 87 | |
Yogesh Pande |
4:5d91b0f5038c | 88 | uint8_t *domain_name_ptr; /**< Domain to register. If null, NSP uses default domain */ |
Yogesh Pande |
4:5d91b0f5038c | 89 | uint8_t domain_name_len; |
Yogesh Pande |
4:5d91b0f5038c | 90 | |
Yogesh Pande |
4:5d91b0f5038c | 91 | uint8_t *type_ptr; /**< Endpoint type */ |
Yogesh Pande |
4:5d91b0f5038c | 92 | uint8_t type_len; |
Yogesh Pande |
4:5d91b0f5038c | 93 | |
Yogesh Pande |
4:5d91b0f5038c | 94 | uint8_t *lifetime_ptr; /**< Endpoint lifetime in seconds. eg. "1200" = 1200 seconds */ |
Yogesh Pande |
4:5d91b0f5038c | 95 | uint8_t lifetime_len; |
Yogesh Pande |
4:5d91b0f5038c | 96 | |
Yogesh Pande |
4:5d91b0f5038c | 97 | sn_nsdl_registration_mode_t ds_register_mode; /**< Defines registration mode */ |
Yogesh Pande |
4:5d91b0f5038c | 98 | sn_nsdl_oma_binding_and_mode_t binding_and_mode; /**< Defines endpoints binding and mode */ |
Yogesh Pande |
4:5d91b0f5038c | 99 | |
Yogesh Pande |
4:5d91b0f5038c | 100 | uint8_t *location_ptr; /**< Endpoint location in server, optional parameter,default is NULL */ |
Yogesh Pande |
4:5d91b0f5038c | 101 | uint8_t location_len; |
Yogesh Pande |
4:5d91b0f5038c | 102 | |
Yogesh Pande |
4:5d91b0f5038c | 103 | } sn_nsdl_ep_parameters_s; |
Yogesh Pande |
4:5d91b0f5038c | 104 | |
Yogesh Pande |
4:5d91b0f5038c | 105 | /** |
Yogesh Pande |
4:5d91b0f5038c | 106 | * \brief For internal use |
Yogesh Pande |
4:5d91b0f5038c | 107 | */ |
Yogesh Pande |
4:5d91b0f5038c | 108 | typedef struct sn_nsdl_sent_messages_ { |
Yogesh Pande |
4:5d91b0f5038c | 109 | uint16_t msg_id_number; |
Yogesh Pande |
4:5d91b0f5038c | 110 | uint8_t message_type; |
Yogesh Pande |
4:5d91b0f5038c | 111 | ns_list_link_t link; |
Yogesh Pande |
4:5d91b0f5038c | 112 | } sn_nsdl_sent_messages_s; |
Yogesh Pande |
4:5d91b0f5038c | 113 | |
Yogesh Pande |
4:5d91b0f5038c | 114 | /** |
Yogesh Pande |
4:5d91b0f5038c | 115 | * \brief Includes resource path |
Yogesh Pande |
4:5d91b0f5038c | 116 | */ |
Yogesh Pande |
4:5d91b0f5038c | 117 | typedef struct sn_grs_resource_ { |
Yogesh Pande |
4:5d91b0f5038c | 118 | uint8_t pathlen; |
Yogesh Pande |
4:5d91b0f5038c | 119 | uint8_t *path; |
Yogesh Pande |
4:5d91b0f5038c | 120 | } sn_grs_resource_s; |
Yogesh Pande |
4:5d91b0f5038c | 121 | |
Yogesh Pande |
4:5d91b0f5038c | 122 | /** |
Yogesh Pande |
4:5d91b0f5038c | 123 | * \brief Table of created resources |
Yogesh Pande |
4:5d91b0f5038c | 124 | */ |
Yogesh Pande |
4:5d91b0f5038c | 125 | typedef struct sn_grs_resource_list_ { |
Yogesh Pande |
4:5d91b0f5038c | 126 | uint8_t res_count; /**< Number of resources */ |
Yogesh Pande |
4:5d91b0f5038c | 127 | sn_grs_resource_s *res; |
Yogesh Pande |
4:5d91b0f5038c | 128 | } sn_grs_resource_list_s; |
Yogesh Pande |
4:5d91b0f5038c | 129 | |
Yogesh Pande |
4:5d91b0f5038c | 130 | /** |
Yogesh Pande |
4:5d91b0f5038c | 131 | * \brief Resource access rights |
Yogesh Pande |
4:5d91b0f5038c | 132 | */ |
Yogesh Pande |
4:5d91b0f5038c | 133 | typedef enum sn_grs_resource_acl_ { |
Yogesh Pande |
4:5d91b0f5038c | 134 | SN_GRS_GET_ALLOWED = 0x01 , |
Yogesh Pande |
4:5d91b0f5038c | 135 | SN_GRS_PUT_ALLOWED = 0x02, |
Yogesh Pande |
4:5d91b0f5038c | 136 | SN_GRS_POST_ALLOWED = 0x04, |
Yogesh Pande |
4:5d91b0f5038c | 137 | SN_GRS_DELETE_ALLOWED = 0x08 |
Yogesh Pande |
4:5d91b0f5038c | 138 | } sn_grs_resource_acl_e; |
Yogesh Pande |
4:5d91b0f5038c | 139 | |
Yogesh Pande |
4:5d91b0f5038c | 140 | |
Yogesh Pande |
4:5d91b0f5038c | 141 | typedef enum sn_nsdl_oma_device_error_ { |
Yogesh Pande |
4:5d91b0f5038c | 142 | NO_ERROR = 0, |
Yogesh Pande |
4:5d91b0f5038c | 143 | LOW_BATTERY_POWER = 1, |
Yogesh Pande |
4:5d91b0f5038c | 144 | EXTERNAL_POWER_SUPPLY_OFF = 2, |
Yogesh Pande |
4:5d91b0f5038c | 145 | GPS_MODULE_FAILURE = 3, |
Yogesh Pande |
4:5d91b0f5038c | 146 | LOW_RECEIVED_SIGNAL_STRENGTH = 4, |
Yogesh Pande |
4:5d91b0f5038c | 147 | OUT_OF_MEMORY = 5, |
Yogesh Pande |
4:5d91b0f5038c | 148 | SMS_FAILURE = 6, |
Yogesh Pande |
4:5d91b0f5038c | 149 | IP_CONN_FAILURE = 7, |
Yogesh Pande |
4:5d91b0f5038c | 150 | PERIPHERAL_MALFUNCTION = 8 |
Yogesh Pande |
4:5d91b0f5038c | 151 | } sn_nsdl_oma_device_error_t; |
Yogesh Pande |
4:5d91b0f5038c | 152 | |
Yogesh Pande |
4:5d91b0f5038c | 153 | /** |
Yogesh Pande |
4:5d91b0f5038c | 154 | * \brief Defines the resource mode |
Yogesh Pande |
4:5d91b0f5038c | 155 | */ |
Yogesh Pande |
4:5d91b0f5038c | 156 | typedef enum sn_nsdl_resource_mode_ { |
Yogesh Pande |
4:5d91b0f5038c | 157 | SN_GRS_STATIC, /**< Static resources have some value that doesn't change */ |
Yogesh Pande |
4:5d91b0f5038c | 158 | SN_GRS_DYNAMIC, /**< Dynamic resources are handled in application. Therefore one must give function callback pointer to them */ |
Yogesh Pande |
4:5d91b0f5038c | 159 | SN_GRS_DIRECTORY /**< Directory resources are unused and unsupported */ |
Yogesh Pande |
4:5d91b0f5038c | 160 | } sn_nsdl_resource_mode_e; |
Yogesh Pande |
4:5d91b0f5038c | 161 | |
Yogesh Pande |
4:5d91b0f5038c | 162 | /** |
Yogesh Pande |
4:5d91b0f5038c | 163 | * \brief Resource registration parameters |
Yogesh Pande |
4:5d91b0f5038c | 164 | */ |
Yogesh Pande |
4:5d91b0f5038c | 165 | typedef struct sn_nsdl_resource_parameters_ { |
Yogesh Pande |
4:5d91b0f5038c | 166 | uint8_t *resource_type_ptr; |
Yogesh Pande |
4:5d91b0f5038c | 167 | uint16_t resource_type_len; |
Yogesh Pande |
4:5d91b0f5038c | 168 | |
Yogesh Pande |
4:5d91b0f5038c | 169 | uint8_t *interface_description_ptr; |
Yogesh Pande |
4:5d91b0f5038c | 170 | uint16_t interface_description_len; |
Yogesh Pande |
4:5d91b0f5038c | 171 | |
Yogesh Pande |
4:5d91b0f5038c | 172 | uint8_t coap_content_type; |
Yogesh Pande |
4:5d91b0f5038c | 173 | |
Yogesh Pande |
4:5d91b0f5038c | 174 | uint8_t mime_content_type; |
Yogesh Pande |
4:5d91b0f5038c | 175 | |
Yogesh Pande |
4:5d91b0f5038c | 176 | uint8_t observable; |
Yogesh Pande |
4:5d91b0f5038c | 177 | |
Yogesh Pande |
4:5d91b0f5038c | 178 | uint8_t registered; |
Yogesh Pande |
4:5d91b0f5038c | 179 | |
Yogesh Pande |
4:5d91b0f5038c | 180 | } sn_nsdl_resource_parameters_s; |
Yogesh Pande |
4:5d91b0f5038c | 181 | |
Yogesh Pande |
4:5d91b0f5038c | 182 | /** |
Yogesh Pande |
4:5d91b0f5038c | 183 | * \brief Defines parameters for the resource. |
Yogesh Pande |
4:5d91b0f5038c | 184 | */ |
Yogesh Pande |
4:5d91b0f5038c | 185 | typedef struct sn_nsdl_resource_info_ { |
Yogesh Pande |
4:5d91b0f5038c | 186 | sn_nsdl_resource_parameters_s *resource_parameters_ptr; |
Yogesh Pande |
4:5d91b0f5038c | 187 | |
Yogesh Pande |
4:5d91b0f5038c | 188 | sn_nsdl_resource_mode_e mode; /**< STATIC etc.. */ |
Yogesh Pande |
4:5d91b0f5038c | 189 | |
Yogesh Pande |
4:5d91b0f5038c | 190 | uint16_t pathlen; /**< Address */ |
Yogesh Pande |
4:5d91b0f5038c | 191 | uint8_t *path; |
Yogesh Pande |
4:5d91b0f5038c | 192 | |
Yogesh Pande |
4:5d91b0f5038c | 193 | uint16_t resourcelen; /**< 0 if dynamic resource, resource information in static resource */ |
Yogesh Pande |
4:5d91b0f5038c | 194 | uint8_t *resource; /**< NULL if dynamic resource */ |
Yogesh Pande |
4:5d91b0f5038c | 195 | |
Yogesh Pande |
4:5d91b0f5038c | 196 | sn_grs_resource_acl_e access; |
Yogesh Pande |
4:5d91b0f5038c | 197 | |
Yogesh Pande |
4:5d91b0f5038c | 198 | uint8_t (*sn_grs_dyn_res_callback)(struct nsdl_s *, sn_coap_hdr_s *, sn_nsdl_addr_s *, sn_nsdl_capab_e); |
Yogesh Pande |
4:5d91b0f5038c | 199 | |
Yogesh Pande |
4:5d91b0f5038c | 200 | ns_list_link_t link; |
Yogesh Pande |
4:5d91b0f5038c | 201 | |
Yogesh Pande |
4:5d91b0f5038c | 202 | uint8_t publish_uri; |
Yogesh Pande |
4:5d91b0f5038c | 203 | |
Yogesh Pande |
4:5d91b0f5038c | 204 | } sn_nsdl_resource_info_s; |
Yogesh Pande |
4:5d91b0f5038c | 205 | |
Yogesh Pande |
4:5d91b0f5038c | 206 | /** |
Yogesh Pande |
4:5d91b0f5038c | 207 | * \brief Defines OMA device object parameters. |
Yogesh Pande |
4:5d91b0f5038c | 208 | */ |
Yogesh Pande |
4:5d91b0f5038c | 209 | typedef struct sn_nsdl_oma_device_ { |
Yogesh Pande |
4:5d91b0f5038c | 210 | sn_nsdl_oma_device_error_t error_code; /**< Error code. Mandatory. Can be more than one */ |
Yogesh Pande |
4:5d91b0f5038c | 211 | uint8_t (*sn_oma_device_boot_callback)(struct nsdl_s *, sn_coap_hdr_s *, sn_nsdl_addr_s *, sn_nsdl_capab_e); /**< Device boot callback function. If defined, this is called when reset request is received */ |
Yogesh Pande |
4:5d91b0f5038c | 212 | |
Yogesh Pande |
4:5d91b0f5038c | 213 | } sn_nsdl_oma_device_t; |
Yogesh Pande |
4:5d91b0f5038c | 214 | |
Yogesh Pande |
4:5d91b0f5038c | 215 | /** |
Yogesh Pande |
4:5d91b0f5038c | 216 | * \brief Defines OMAlw server information |
Yogesh Pande |
4:5d91b0f5038c | 217 | */ |
Yogesh Pande |
4:5d91b0f5038c | 218 | typedef struct sn_nsdl_oma_server_info_ { |
Yogesh Pande |
4:5d91b0f5038c | 219 | sn_nsdl_addr_s *omalw_address_ptr; |
Yogesh Pande |
4:5d91b0f5038c | 220 | omalw_server_security_t omalw_server_security; |
Yogesh Pande |
4:5d91b0f5038c | 221 | |
Yogesh Pande |
4:5d91b0f5038c | 222 | } sn_nsdl_oma_server_info_t; |
Yogesh Pande |
4:5d91b0f5038c | 223 | |
Yogesh Pande |
4:5d91b0f5038c | 224 | /** |
Yogesh Pande |
4:5d91b0f5038c | 225 | * \brief Defines endpoint parameters to OMA bootstrap. |
Yogesh Pande |
4:5d91b0f5038c | 226 | */ |
Yogesh Pande |
4:5d91b0f5038c | 227 | typedef struct sn_nsdl_bs_ep_info_ { |
Yogesh Pande |
4:5d91b0f5038c | 228 | void (*oma_bs_status_cb)(sn_nsdl_oma_server_info_t *); /**< Callback for OMA bootstrap status */ |
Yogesh Pande |
4:5d91b0f5038c | 229 | sn_nsdl_oma_device_t *device_object; /**< OMA LWM2M mandatory device resources */ |
Yogesh Pande |
4:5d91b0f5038c | 230 | } sn_nsdl_bs_ep_info_t; |
Yogesh Pande |
4:5d91b0f5038c | 231 | |
Yogesh Pande |
4:5d91b0f5038c | 232 | |
Yogesh Pande |
4:5d91b0f5038c | 233 | |
Yogesh Pande |
4:5d91b0f5038c | 234 | |
Yogesh Pande |
4:5d91b0f5038c | 235 | /** |
Yogesh Pande |
4:5d91b0f5038c | 236 | * \fn struct nsdl_s *sn_nsdl_init (uint8_t (*sn_nsdl_tx_cb)(sn_nsdl_capab_e , uint8_t *, uint16_t, sn_nsdl_addr_s *), |
Yogesh Pande |
4:5d91b0f5038c | 237 | * uint8_t (*sn_nsdl_rx_cb)(sn_coap_hdr_s *, sn_nsdl_addr_s *), |
Yogesh Pande |
4:5d91b0f5038c | 238 | * sn_nsdl_mem_s *sn_memory) |
Yogesh Pande |
4:5d91b0f5038c | 239 | * |
Yogesh Pande |
4:5d91b0f5038c | 240 | * \brief Initialization function for NSDL library. Initializes NSDL, GRS, HTTP and CoAP. |
Yogesh Pande |
4:5d91b0f5038c | 241 | * |
Yogesh Pande |
4:5d91b0f5038c | 242 | * \param *sn_nsdl_tx_callback A callback function for sending messages. |
Yogesh Pande |
4:5d91b0f5038c | 243 | * |
Yogesh Pande |
4:5d91b0f5038c | 244 | * \param *sn_nsdl_rx_callback A callback function for parsed messages. If received message is not CoAP protocol message (eg. ACK), message for GRS (GET, PUT, POST, DELETE) or |
Yogesh Pande |
4:5d91b0f5038c | 245 | * reply for some DS messages (register message etc.), rx callback will be called. |
Yogesh Pande |
4:5d91b0f5038c | 246 | * |
Yogesh Pande |
4:5d91b0f5038c | 247 | * \param *sn_memory Memory structure which includes function pointers to the allocation and free functions. |
Yogesh Pande |
4:5d91b0f5038c | 248 | * |
Yogesh Pande |
4:5d91b0f5038c | 249 | * \return pointer to created handle structure. NULL if failed |
Yogesh Pande |
4:5d91b0f5038c | 250 | */ |
Yogesh Pande |
4:5d91b0f5038c | 251 | struct nsdl_s *sn_nsdl_init(uint8_t (*sn_nsdl_tx_cb)(struct nsdl_s *, sn_nsdl_capab_e , uint8_t *, uint16_t, sn_nsdl_addr_s *), |
Yogesh Pande |
4:5d91b0f5038c | 252 | uint8_t (*sn_nsdl_rx_cb)(struct nsdl_s *, sn_coap_hdr_s *, sn_nsdl_addr_s *), |
Yogesh Pande |
4:5d91b0f5038c | 253 | void *(*sn_nsdl_alloc)(uint16_t), void (*sn_nsdl_free)(void *)); |
Yogesh Pande |
4:5d91b0f5038c | 254 | |
Yogesh Pande |
4:5d91b0f5038c | 255 | /** |
Yogesh Pande |
4:5d91b0f5038c | 256 | * \fn extern uint16_t sn_nsdl_register_endpoint(struct nsdl_s *handle, sn_nsdl_ep_parameters_s *endpoint_info_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 257 | * |
Yogesh Pande |
4:5d91b0f5038c | 258 | * \brief Registers endpoint to mbed Device Server. |
Yogesh Pande |
4:5d91b0f5038c | 259 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 260 | * \param *endpoint_info_ptr Contains endpoint information. |
Yogesh Pande |
4:5d91b0f5038c | 261 | * |
Yogesh Pande |
4:5d91b0f5038c | 262 | * \return registration message ID, 0 if failed |
Yogesh Pande |
4:5d91b0f5038c | 263 | */ |
Yogesh Pande |
4:5d91b0f5038c | 264 | extern uint16_t sn_nsdl_register_endpoint(struct nsdl_s *handle, sn_nsdl_ep_parameters_s *endpoint_info_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 265 | |
Yogesh Pande |
4:5d91b0f5038c | 266 | /** |
Yogesh Pande |
4:5d91b0f5038c | 267 | * \fn extern uint16_t sn_nsdl_unregister_endpoint(struct nsdl_s *handle) |
Yogesh Pande |
4:5d91b0f5038c | 268 | * |
Yogesh Pande |
4:5d91b0f5038c | 269 | * \brief Sends unregister-message to mbed Device Server. |
Yogesh Pande |
4:5d91b0f5038c | 270 | * |
Yogesh Pande |
4:5d91b0f5038c | 271 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 272 | * |
Yogesh Pande |
4:5d91b0f5038c | 273 | * \return unregistration message ID, 0 if failed |
Yogesh Pande |
4:5d91b0f5038c | 274 | */ |
Yogesh Pande |
4:5d91b0f5038c | 275 | extern uint16_t sn_nsdl_unregister_endpoint(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 276 | |
Yogesh Pande |
4:5d91b0f5038c | 277 | /** |
Yogesh Pande |
4:5d91b0f5038c | 278 | * \fn extern uint16_t sn_nsdl_update_registration(struct nsdl_s *handle, uint8_t *lt_ptr, uint8_t lt_len); |
Yogesh Pande |
4:5d91b0f5038c | 279 | * |
Yogesh Pande |
4:5d91b0f5038c | 280 | * \brief Update the registration with mbed Device Server. |
Yogesh Pande |
4:5d91b0f5038c | 281 | * |
Yogesh Pande |
4:5d91b0f5038c | 282 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 283 | * \param *lt_ptr Pointer to lifetime value string in ascii form, eg. "1200" |
Yogesh Pande |
4:5d91b0f5038c | 284 | * \param lt_len Length of the lifetime string |
Yogesh Pande |
4:5d91b0f5038c | 285 | * |
Yogesh Pande |
4:5d91b0f5038c | 286 | * \return registration update message ID, 0 if failed |
Yogesh Pande |
4:5d91b0f5038c | 287 | */ |
Yogesh Pande |
4:5d91b0f5038c | 288 | extern uint16_t sn_nsdl_update_registration(struct nsdl_s *handle, uint8_t *lt_ptr, uint8_t lt_len); |
Yogesh Pande |
4:5d91b0f5038c | 289 | |
Yogesh Pande |
4:5d91b0f5038c | 290 | /** |
Yogesh Pande |
4:5d91b0f5038c | 291 | * \fn extern int8_t sn_nsdl_set_endpoint_location(struct nsdl_s *handle, uint8_t *location_ptr, uint8_t location_len); |
Yogesh Pande |
4:5d91b0f5038c | 292 | * |
Yogesh Pande |
4:5d91b0f5038c | 293 | * \brief Sets the location receievd from Device Server. |
Yogesh Pande |
4:5d91b0f5038c | 294 | * |
Yogesh Pande |
4:5d91b0f5038c | 295 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 296 | * \param *lt_ptr Pointer to location value string , eg. "s322j4k" |
Yogesh Pande |
4:5d91b0f5038c | 297 | * \param lt_len Length of the location string |
Yogesh Pande |
4:5d91b0f5038c | 298 | * |
Yogesh Pande |
4:5d91b0f5038c | 299 | * \return success, 0 if failed -1 |
Yogesh Pande |
4:5d91b0f5038c | 300 | */ |
Yogesh Pande |
4:5d91b0f5038c | 301 | extern int8_t sn_nsdl_set_endpoint_location(struct nsdl_s *handle, uint8_t *location_ptr, uint8_t location_len); |
Yogesh Pande |
4:5d91b0f5038c | 302 | |
Yogesh Pande |
4:5d91b0f5038c | 303 | |
Yogesh Pande |
4:5d91b0f5038c | 304 | /** |
Yogesh Pande |
4:5d91b0f5038c | 305 | * \fn extern int8_t sn_nsdl_is_ep_registered(struct nsdl_s *handle) |
Yogesh Pande |
4:5d91b0f5038c | 306 | * |
Yogesh Pande |
4:5d91b0f5038c | 307 | * \brief Checks if endpoint is registered. |
Yogesh Pande |
4:5d91b0f5038c | 308 | * |
Yogesh Pande |
4:5d91b0f5038c | 309 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 310 | * |
Yogesh Pande |
4:5d91b0f5038c | 311 | * \return 1 Endpoint registration is done successfully |
Yogesh Pande |
4:5d91b0f5038c | 312 | * \return 0 Endpoint is not registered |
Yogesh Pande |
4:5d91b0f5038c | 313 | */ |
Yogesh Pande |
4:5d91b0f5038c | 314 | extern int8_t sn_nsdl_is_ep_registered(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 315 | |
Yogesh Pande |
4:5d91b0f5038c | 316 | /** |
Yogesh Pande |
4:5d91b0f5038c | 317 | * \fn extern void sn_nsdl_nsp_lost(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 318 | * |
Yogesh Pande |
4:5d91b0f5038c | 319 | * \brief A function to inform mbed Device C client library if application detects a fault in mbed Device Server registration. |
Yogesh Pande |
4:5d91b0f5038c | 320 | * |
Yogesh Pande |
4:5d91b0f5038c | 321 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 322 | * |
Yogesh Pande |
4:5d91b0f5038c | 323 | * After calling this function sn_nsdl_is_ep_registered() will return "not registered". |
Yogesh Pande |
4:5d91b0f5038c | 324 | */ |
Yogesh Pande |
4:5d91b0f5038c | 325 | extern void sn_nsdl_nsp_lost(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 326 | |
Yogesh Pande |
4:5d91b0f5038c | 327 | /** |
Yogesh Pande |
4:5d91b0f5038c | 328 | * \fn extern uint16_t sn_nsdl_send_observation_notification(struct nsdl_s *handle, uint8_t *token_ptr, uint8_t token_len, |
Yogesh Pande |
4:5d91b0f5038c | 329 | * uint8_t *payload_ptr, uint16_t payload_len, |
Yogesh Pande |
4:5d91b0f5038c | 330 | * uint8_t *observe_ptr, uint8_t observe_len, |
Yogesh Pande |
4:5d91b0f5038c | 331 | * sn_coap_msg_type_e message_type, uint8_t content_type) |
Yogesh Pande |
4:5d91b0f5038c | 332 | * |
Yogesh Pande |
4:5d91b0f5038c | 333 | * |
Yogesh Pande |
4:5d91b0f5038c | 334 | * \brief Sends observation message to mbed Device Server |
Yogesh Pande |
4:5d91b0f5038c | 335 | * |
Yogesh Pande |
4:5d91b0f5038c | 336 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 337 | * \param *token_ptr Pointer to token to be used |
Yogesh Pande |
4:5d91b0f5038c | 338 | * \param token_len Token length |
Yogesh Pande |
4:5d91b0f5038c | 339 | * \param *payload_ptr Pointer to payload to be sent |
Yogesh Pande |
4:5d91b0f5038c | 340 | * \param payload_len Payload length |
Yogesh Pande |
4:5d91b0f5038c | 341 | * \param *observe_ptr Pointer to observe number to be sent |
Yogesh Pande |
4:5d91b0f5038c | 342 | * \param observe_len Observe number len |
Yogesh Pande |
4:5d91b0f5038c | 343 | * \param message_type Observation message type (confirmable or non-confirmable) |
Yogesh Pande |
4:5d91b0f5038c | 344 | * \param content_type Observation message payload contetnt type |
Yogesh Pande |
4:5d91b0f5038c | 345 | * |
Yogesh Pande |
4:5d91b0f5038c | 346 | * \return !0 Success, observation messages message ID |
Yogesh Pande |
4:5d91b0f5038c | 347 | * \return 0 Failure |
Yogesh Pande |
4:5d91b0f5038c | 348 | */ |
Yogesh Pande |
4:5d91b0f5038c | 349 | extern uint16_t sn_nsdl_send_observation_notification(struct nsdl_s *handle, uint8_t *token_ptr, uint8_t token_len, |
Yogesh Pande |
4:5d91b0f5038c | 350 | uint8_t *payload_ptr, uint16_t payload_len, |
Yogesh Pande |
4:5d91b0f5038c | 351 | uint8_t *observe_ptr, uint8_t observe_len, |
Yogesh Pande |
4:5d91b0f5038c | 352 | sn_coap_msg_type_e message_type, |
Yogesh Pande |
4:5d91b0f5038c | 353 | uint8_t content_type); |
Yogesh Pande |
4:5d91b0f5038c | 354 | |
Yogesh Pande |
4:5d91b0f5038c | 355 | /** |
Yogesh Pande |
4:5d91b0f5038c | 356 | * \fn extern uint16_t sn_nsdl_send_observation_notification_with_uri_path(struct nsdl_s *handle, uint8_t *token_ptr, uint8_t token_len, |
Yogesh Pande |
4:5d91b0f5038c | 357 | * uint8_t *payload_ptr, uint16_t payload_len, |
Yogesh Pande |
4:5d91b0f5038c | 358 | * uint8_t *observe_ptr, uint8_t observe_len, |
Yogesh Pande |
4:5d91b0f5038c | 359 | * sn_coap_msg_type_e message_type, uint8_t content_type, |
Yogesh Pande |
4:5d91b0f5038c | 360 | * uint8_t *uri_path_ptr, |
Yogesh Pande |
4:5d91b0f5038c | 361 | * uint16_t uri_path_len) |
Yogesh Pande |
4:5d91b0f5038c | 362 | * |
Yogesh Pande |
4:5d91b0f5038c | 363 | * |
Yogesh Pande |
4:5d91b0f5038c | 364 | * \brief Sends observation message to mbed Device Server with uri path |
Yogesh Pande |
4:5d91b0f5038c | 365 | * |
Yogesh Pande |
4:5d91b0f5038c | 366 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 367 | * \param *token_ptr Pointer to token to be used |
Yogesh Pande |
4:5d91b0f5038c | 368 | * \param token_len Token length |
Yogesh Pande |
4:5d91b0f5038c | 369 | * \param *payload_ptr Pointer to payload to be sent |
Yogesh Pande |
4:5d91b0f5038c | 370 | * \param payload_len Payload length |
Yogesh Pande |
4:5d91b0f5038c | 371 | * \param *observe_ptr Pointer to observe number to be sent |
Yogesh Pande |
4:5d91b0f5038c | 372 | * \param observe_len Observe number len |
Yogesh Pande |
4:5d91b0f5038c | 373 | * \param message_type Observation message type (confirmable or non-confirmable) |
Yogesh Pande |
4:5d91b0f5038c | 374 | * \param content_type Observation message payload contetnt type |
Yogesh Pande |
4:5d91b0f5038c | 375 | * \param uri_path_ptr Pointer to uri path to be sent |
Yogesh Pande |
4:5d91b0f5038c | 376 | * \param uri_path_len Uri path len |
Yogesh Pande |
4:5d91b0f5038c | 377 | * |
Yogesh Pande |
4:5d91b0f5038c | 378 | * \return !0 Success, observation messages message ID |
Yogesh Pande |
4:5d91b0f5038c | 379 | * \return 0 Failure |
Yogesh Pande |
4:5d91b0f5038c | 380 | */ |
Yogesh Pande |
4:5d91b0f5038c | 381 | extern uint16_t sn_nsdl_send_observation_notification_with_uri_path(struct nsdl_s *handle, uint8_t *token_ptr, uint8_t token_len, |
Yogesh Pande |
4:5d91b0f5038c | 382 | uint8_t *payload_ptr, uint16_t payload_len, |
Yogesh Pande |
4:5d91b0f5038c | 383 | uint8_t *observe_ptr, uint8_t observe_len, |
Yogesh Pande |
4:5d91b0f5038c | 384 | sn_coap_msg_type_e message_type, |
Yogesh Pande |
4:5d91b0f5038c | 385 | uint8_t content_type, |
Yogesh Pande |
4:5d91b0f5038c | 386 | uint8_t *uri_path_ptr, |
Yogesh Pande |
4:5d91b0f5038c | 387 | uint16_t uri_path_len); |
Yogesh Pande |
4:5d91b0f5038c | 388 | |
Yogesh Pande |
4:5d91b0f5038c | 389 | /** |
Yogesh Pande |
4:5d91b0f5038c | 390 | * \fn extern uint32_t sn_nsdl_get_version(void) |
Yogesh Pande |
4:5d91b0f5038c | 391 | * |
Yogesh Pande |
4:5d91b0f5038c | 392 | * \brief Version query function. |
Yogesh Pande |
4:5d91b0f5038c | 393 | * |
Yogesh Pande |
4:5d91b0f5038c | 394 | * Used to retrieve the version information from the mbed Device C Client library. |
Yogesh Pande |
4:5d91b0f5038c | 395 | * |
Yogesh Pande |
4:5d91b0f5038c | 396 | * \return Pointer to library version string |
Yogesh Pande |
4:5d91b0f5038c | 397 | */ |
Yogesh Pande |
4:5d91b0f5038c | 398 | extern char *sn_nsdl_get_version(void); |
Yogesh Pande |
4:5d91b0f5038c | 399 | |
Yogesh Pande |
4:5d91b0f5038c | 400 | /** |
Yogesh Pande |
4:5d91b0f5038c | 401 | * \fn extern int8_t sn_nsdl_process_coap(struct nsdl_s *handle, uint8_t *packet, uint16_t packet_len, sn_nsdl_addr_s *src) |
Yogesh Pande |
4:5d91b0f5038c | 402 | * |
Yogesh Pande |
4:5d91b0f5038c | 403 | * \brief To push CoAP packet to mbed Device C Client library |
Yogesh Pande |
4:5d91b0f5038c | 404 | * |
Yogesh Pande |
4:5d91b0f5038c | 405 | * Used to push an CoAP packet to mbed Device C Client library for processing. |
Yogesh Pande |
4:5d91b0f5038c | 406 | * |
Yogesh Pande |
4:5d91b0f5038c | 407 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 408 | * |
Yogesh Pande |
4:5d91b0f5038c | 409 | * \param *packet Pointer to a uint8_t array containing the packet (including the CoAP headers). |
Yogesh Pande |
4:5d91b0f5038c | 410 | * After successful execution this array may contain the response packet. |
Yogesh Pande |
4:5d91b0f5038c | 411 | * |
Yogesh Pande |
4:5d91b0f5038c | 412 | * \param *packet_len Pointer to length of the packet. After successful execution this array may contain the length |
Yogesh Pande |
4:5d91b0f5038c | 413 | * of the response packet. |
Yogesh Pande |
4:5d91b0f5038c | 414 | * |
Yogesh Pande |
4:5d91b0f5038c | 415 | * \param *src Pointer to packet source address information. After successful execution this array may contain |
Yogesh Pande |
4:5d91b0f5038c | 416 | * the destination address of the response packet. |
Yogesh Pande |
4:5d91b0f5038c | 417 | * |
Yogesh Pande |
4:5d91b0f5038c | 418 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 419 | * \return -1 Failure |
Yogesh Pande |
4:5d91b0f5038c | 420 | */ |
Yogesh Pande |
4:5d91b0f5038c | 421 | extern int8_t sn_nsdl_process_coap(struct nsdl_s *handle, uint8_t *packet, uint16_t packet_len, sn_nsdl_addr_s *src); |
Yogesh Pande |
4:5d91b0f5038c | 422 | |
Yogesh Pande |
4:5d91b0f5038c | 423 | /** |
Yogesh Pande |
4:5d91b0f5038c | 424 | * \fn extern int8_t sn_nsdl_exec(struct nsdl_s *handle, uint32_t time); |
Yogesh Pande |
4:5d91b0f5038c | 425 | * |
Yogesh Pande |
4:5d91b0f5038c | 426 | * \brief CoAP retransmission function. |
Yogesh Pande |
4:5d91b0f5038c | 427 | * |
Yogesh Pande |
4:5d91b0f5038c | 428 | * Used to give execution time for the mbed Device C Client library for retransmissions. |
Yogesh Pande |
4:5d91b0f5038c | 429 | * |
Yogesh Pande |
4:5d91b0f5038c | 430 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 431 | * |
Yogesh Pande |
4:5d91b0f5038c | 432 | * \param time Time in seconds. |
Yogesh Pande |
4:5d91b0f5038c | 433 | * |
Yogesh Pande |
4:5d91b0f5038c | 434 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 435 | * \return -1 Failure |
Yogesh Pande |
4:5d91b0f5038c | 436 | */ |
Yogesh Pande |
4:5d91b0f5038c | 437 | extern int8_t sn_nsdl_exec(struct nsdl_s *handle, uint32_t time); |
Yogesh Pande |
4:5d91b0f5038c | 438 | |
Yogesh Pande |
4:5d91b0f5038c | 439 | /** |
Yogesh Pande |
4:5d91b0f5038c | 440 | * \fn extern int8_t sn_nsdl_create_resource(struct nsdl_s *handle, sn_nsdl_resource_info_s *res); |
Yogesh Pande |
4:5d91b0f5038c | 441 | * |
Yogesh Pande |
4:5d91b0f5038c | 442 | * \brief Resource creating function. |
Yogesh Pande |
4:5d91b0f5038c | 443 | * |
Yogesh Pande |
4:5d91b0f5038c | 444 | * Used to create a static or dynamic CoAP resource. |
Yogesh Pande |
4:5d91b0f5038c | 445 | * |
Yogesh Pande |
4:5d91b0f5038c | 446 | * \param *res Pointer to a structure of type sn_nsdl_resource_info_t that contains the information |
Yogesh Pande |
4:5d91b0f5038c | 447 | * about the resource. |
Yogesh Pande |
4:5d91b0f5038c | 448 | * |
Yogesh Pande |
4:5d91b0f5038c | 449 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 450 | * \return -1 Failure |
Yogesh Pande |
4:5d91b0f5038c | 451 | * \return -2 Resource already exists |
Yogesh Pande |
4:5d91b0f5038c | 452 | * \return -3 Invalid path |
Yogesh Pande |
4:5d91b0f5038c | 453 | * \return -4 List adding failure |
Yogesh Pande |
4:5d91b0f5038c | 454 | */ |
Yogesh Pande |
4:5d91b0f5038c | 455 | extern int8_t sn_nsdl_create_resource(struct nsdl_s *handle, sn_nsdl_resource_info_s *res); |
Yogesh Pande |
4:5d91b0f5038c | 456 | |
Yogesh Pande |
4:5d91b0f5038c | 457 | /** |
Yogesh Pande |
4:5d91b0f5038c | 458 | * \fn extern int8_t sn_nsdl_update_resource(sn_nsdl_resource_info_s *res) |
Yogesh Pande |
4:5d91b0f5038c | 459 | * |
Yogesh Pande |
4:5d91b0f5038c | 460 | * \brief Resource updating function. |
Yogesh Pande |
4:5d91b0f5038c | 461 | * |
Yogesh Pande |
4:5d91b0f5038c | 462 | * Used to update the direct value of a static resource, the callback function pointer of a dynamic resource |
Yogesh Pande |
4:5d91b0f5038c | 463 | * and access rights of the recource. |
Yogesh Pande |
4:5d91b0f5038c | 464 | * |
Yogesh Pande |
4:5d91b0f5038c | 465 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 466 | * \param *res Pointer to a structure of type sn_nsdl_resource_info_t that contains the information |
Yogesh Pande |
4:5d91b0f5038c | 467 | * about the resource. Only the pathlen and path elements are evaluated along with |
Yogesh Pande |
4:5d91b0f5038c | 468 | * either resourcelen and resource or the function pointer. |
Yogesh Pande |
4:5d91b0f5038c | 469 | * |
Yogesh Pande |
4:5d91b0f5038c | 470 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 471 | * \return -1 Failure |
Yogesh Pande |
4:5d91b0f5038c | 472 | */ |
Yogesh Pande |
4:5d91b0f5038c | 473 | extern int8_t sn_nsdl_update_resource(struct nsdl_s *handle, sn_nsdl_resource_info_s *res); |
Yogesh Pande |
4:5d91b0f5038c | 474 | |
Yogesh Pande |
4:5d91b0f5038c | 475 | /** |
Yogesh Pande |
4:5d91b0f5038c | 476 | * \fn extern int8_t sn_nsdl_delete_resource(struct nsdl_s *handle, uint8_t pathlen, uint8_t *path) |
Yogesh Pande |
4:5d91b0f5038c | 477 | * |
Yogesh Pande |
4:5d91b0f5038c | 478 | * \brief Resource delete function. |
Yogesh Pande |
4:5d91b0f5038c | 479 | * |
Yogesh Pande |
4:5d91b0f5038c | 480 | * Used to delete a resource. If resource has a subresources, these all must also be removed. |
Yogesh Pande |
4:5d91b0f5038c | 481 | * |
Yogesh Pande |
4:5d91b0f5038c | 482 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 483 | * \param pathlen Contains the length of the path that is to be deleted (excluding possible trailing "\0"). |
Yogesh Pande |
4:5d91b0f5038c | 484 | * \param *path_ptr A pointer to an array containing the path. |
Yogesh Pande |
4:5d91b0f5038c | 485 | * |
Yogesh Pande |
4:5d91b0f5038c | 486 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 487 | * \return -1 Failure (No such resource) |
Yogesh Pande |
4:5d91b0f5038c | 488 | */ |
Yogesh Pande |
4:5d91b0f5038c | 489 | extern int8_t sn_nsdl_delete_resource(struct nsdl_s *handle, uint16_t pathlen, uint8_t *path); |
Yogesh Pande |
4:5d91b0f5038c | 490 | |
Yogesh Pande |
4:5d91b0f5038c | 491 | /** |
Yogesh Pande |
4:5d91b0f5038c | 492 | * \fn extern sn_nsdl_resource_info_s *sn_nsdl_get_resource(struct nsdl_s *handle, uint16_t pathlen, uint8_t *path) |
Yogesh Pande |
4:5d91b0f5038c | 493 | * |
Yogesh Pande |
4:5d91b0f5038c | 494 | * \brief Resource get function. |
Yogesh Pande |
4:5d91b0f5038c | 495 | * |
Yogesh Pande |
4:5d91b0f5038c | 496 | * Used to get a resource. |
Yogesh Pande |
4:5d91b0f5038c | 497 | * |
Yogesh Pande |
4:5d91b0f5038c | 498 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 499 | * \param pathlen Contains the length of the path that is to be returned (excluding possible trailing '\0'). |
Yogesh Pande |
4:5d91b0f5038c | 500 | * \param *path A pointer to an array containing the path. |
Yogesh Pande |
4:5d91b0f5038c | 501 | * |
Yogesh Pande |
4:5d91b0f5038c | 502 | * \return !NULL Success, pointer to a sn_nsdl_resource_info_s that contains the resource information\n |
Yogesh Pande |
4:5d91b0f5038c | 503 | * \return NULL Failure |
Yogesh Pande |
4:5d91b0f5038c | 504 | */ |
Yogesh Pande |
4:5d91b0f5038c | 505 | extern sn_nsdl_resource_info_s *sn_nsdl_get_resource(struct nsdl_s *handle, uint16_t pathlen, uint8_t *path); |
Yogesh Pande |
4:5d91b0f5038c | 506 | |
Yogesh Pande |
4:5d91b0f5038c | 507 | /** |
Yogesh Pande |
4:5d91b0f5038c | 508 | * \fn extern sn_grs_resource_list_s *sn_nsdl_list_resource(struct nsdl_s *handle, uint16_t pathlen, uint8_t *path) |
Yogesh Pande |
4:5d91b0f5038c | 509 | * |
Yogesh Pande |
4:5d91b0f5038c | 510 | * \brief Resource list function. |
Yogesh Pande |
4:5d91b0f5038c | 511 | * |
Yogesh Pande |
4:5d91b0f5038c | 512 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 513 | * \param pathlen Contains the length of the target path (excluding possible trailing '\0'). |
Yogesh Pande |
4:5d91b0f5038c | 514 | * The length value is not examined if the path itself is a NULL pointer. |
Yogesh Pande |
4:5d91b0f5038c | 515 | * \param *path A pointer to an array containing the path or a NULL pointer. |
Yogesh Pande |
4:5d91b0f5038c | 516 | * |
Yogesh Pande |
4:5d91b0f5038c | 517 | * \return !NULL A pointer to a sn_grs_resource_list_s structure containing the resource listing. |
Yogesh Pande |
4:5d91b0f5038c | 518 | * \return NULL Failure with an unspecified error |
Yogesh Pande |
4:5d91b0f5038c | 519 | */ |
Yogesh Pande |
4:5d91b0f5038c | 520 | sn_grs_resource_list_s *sn_nsdl_list_resource(struct nsdl_s *handle, uint16_t pathlen, uint8_t *path); |
Yogesh Pande |
4:5d91b0f5038c | 521 | |
Yogesh Pande |
4:5d91b0f5038c | 522 | /** |
Yogesh Pande |
4:5d91b0f5038c | 523 | * \fn extern void sn_nsdl_free_resource_list(struct nsdl_s *handle, sn_grs_resource_list_s *list) |
Yogesh Pande |
4:5d91b0f5038c | 524 | * |
Yogesh Pande |
4:5d91b0f5038c | 525 | * \brief Free a resource list obtained from sn_nsdl_list_resource() |
Yogesh Pande |
4:5d91b0f5038c | 526 | * |
Yogesh Pande |
4:5d91b0f5038c | 527 | * \param list The list to free, or NULL. |
Yogesh Pande |
4:5d91b0f5038c | 528 | */ |
Yogesh Pande |
4:5d91b0f5038c | 529 | void sn_nsdl_free_resource_list(struct nsdl_s *handle, sn_grs_resource_list_s *list); |
Yogesh Pande |
4:5d91b0f5038c | 530 | |
Yogesh Pande |
4:5d91b0f5038c | 531 | /** |
Yogesh Pande |
4:5d91b0f5038c | 532 | * \fn extern int8_t sn_nsdl_send_coap_message(struct nsdl_s *handle, sn_nsdl_addr_s *address_ptr, sn_coap_hdr_s *coap_hdr_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 533 | * |
Yogesh Pande |
4:5d91b0f5038c | 534 | * \brief Send an outgoing CoAP request. |
Yogesh Pande |
4:5d91b0f5038c | 535 | * |
Yogesh Pande |
4:5d91b0f5038c | 536 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 537 | * \param *address_ptr Pointer to source address struct |
Yogesh Pande |
4:5d91b0f5038c | 538 | * \param *coap_hdr_ptr Pointer to CoAP message to be sent |
Yogesh Pande |
4:5d91b0f5038c | 539 | * |
Yogesh Pande |
4:5d91b0f5038c | 540 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 541 | * \return -1 Failure |
Yogesh Pande |
4:5d91b0f5038c | 542 | */ |
Yogesh Pande |
4:5d91b0f5038c | 543 | extern int8_t sn_nsdl_send_coap_message(struct nsdl_s *handle, sn_nsdl_addr_s *address_ptr, sn_coap_hdr_s *coap_hdr_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 544 | |
Yogesh Pande |
4:5d91b0f5038c | 545 | /** |
Yogesh Pande |
4:5d91b0f5038c | 546 | * \fn extern int8_t set_NSP_address(struct nsdl_s *handle, uint8_t *NSP_address, uint16_t port, sn_nsdl_addr_type_e address_type); |
Yogesh Pande |
4:5d91b0f5038c | 547 | * |
Yogesh Pande |
4:5d91b0f5038c | 548 | * \brief This function is used to set the mbed Device Server address given by an application. |
Yogesh Pande |
4:5d91b0f5038c | 549 | * |
Yogesh Pande |
4:5d91b0f5038c | 550 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 551 | * \return 0 Success |
Yogesh Pande |
4:5d91b0f5038c | 552 | * \return -1 Failed to indicate that internal address pointer is not allocated (call nsdl_init() first). |
Yogesh Pande |
4:5d91b0f5038c | 553 | */ |
Yogesh Pande |
4:5d91b0f5038c | 554 | extern int8_t set_NSP_address(struct nsdl_s *handle, uint8_t *NSP_address, uint16_t port, sn_nsdl_addr_type_e address_type); |
Yogesh Pande |
4:5d91b0f5038c | 555 | |
Yogesh Pande |
4:5d91b0f5038c | 556 | /** |
Yogesh Pande |
4:5d91b0f5038c | 557 | * \fn extern int8_t sn_nsdl_destroy(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 558 | * |
Yogesh Pande |
4:5d91b0f5038c | 559 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 560 | * \brief This function releases all allocated memory in mbed Device C Client library. |
Yogesh Pande |
4:5d91b0f5038c | 561 | */ |
Yogesh Pande |
4:5d91b0f5038c | 562 | extern int8_t sn_nsdl_destroy(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 563 | |
Yogesh Pande |
4:5d91b0f5038c | 564 | /** |
Yogesh Pande |
4:5d91b0f5038c | 565 | * \fn extern uint16_t sn_nsdl_oma_bootstrap(struct nsdl_s *handle, sn_nsdl_addr_s *bootstrap_address_ptr, sn_nsdl_ep_parameters_s *endpoint_info_ptr, sn_nsdl_bs_ep_info_t *bootstrap_endpoint_info_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 566 | * |
Yogesh Pande |
4:5d91b0f5038c | 567 | * \brief Starts OMA bootstrap process |
Yogesh Pande |
4:5d91b0f5038c | 568 | * |
Yogesh Pande |
4:5d91b0f5038c | 569 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 570 | * |
Yogesh Pande |
4:5d91b0f5038c | 571 | * \return bootstrap message ID, 0 if failed |
Yogesh Pande |
4:5d91b0f5038c | 572 | */ |
Yogesh Pande |
4:5d91b0f5038c | 573 | extern uint16_t sn_nsdl_oma_bootstrap(struct nsdl_s *handle, sn_nsdl_addr_s *bootstrap_address_ptr, sn_nsdl_ep_parameters_s *endpoint_info_ptr, sn_nsdl_bs_ep_info_t *bootstrap_endpoint_info_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 574 | |
Yogesh Pande |
4:5d91b0f5038c | 575 | /** |
Yogesh Pande |
4:5d91b0f5038c | 576 | * \fn extern omalw_certificate_list_t *sn_nsdl_get_certificates(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 577 | * |
Yogesh Pande |
4:5d91b0f5038c | 578 | * \brief Get pointer to received device server certificates |
Yogesh Pande |
4:5d91b0f5038c | 579 | * |
Yogesh Pande |
4:5d91b0f5038c | 580 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 581 | */ |
Yogesh Pande |
4:5d91b0f5038c | 582 | extern omalw_certificate_list_t *sn_nsdl_get_certificates(struct nsdl_s *handle); |
Yogesh Pande |
4:5d91b0f5038c | 583 | |
Yogesh Pande |
4:5d91b0f5038c | 584 | /** |
Yogesh Pande |
4:5d91b0f5038c | 585 | * \fn extern int8_t sn_nsdl_update_certificates(struct nsdl_s *handle, omalw_certificate_list_t* certificate_ptr, uint8_t certificate_chain); |
Yogesh Pande |
4:5d91b0f5038c | 586 | * |
Yogesh Pande |
4:5d91b0f5038c | 587 | * \brief Updates certificate pointers to resource server. |
Yogesh Pande |
4:5d91b0f5038c | 588 | * |
Yogesh Pande |
4:5d91b0f5038c | 589 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 590 | */ |
Yogesh Pande |
4:5d91b0f5038c | 591 | extern int8_t sn_nsdl_update_certificates(struct nsdl_s *handle, omalw_certificate_list_t *certificate_ptr, uint8_t certificate_chain); |
Yogesh Pande |
4:5d91b0f5038c | 592 | |
Yogesh Pande |
4:5d91b0f5038c | 593 | /** |
Yogesh Pande |
4:5d91b0f5038c | 594 | * \fn extern int8_t sn_nsdl_create_oma_device_object(struct nsdl_s *handle, sn_nsdl_oma_device_t *device_object_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 595 | * |
Yogesh Pande |
4:5d91b0f5038c | 596 | * \brief Creates new device object resource |
Yogesh Pande |
4:5d91b0f5038c | 597 | * |
Yogesh Pande |
4:5d91b0f5038c | 598 | * \param *handle Pointer to nsdl-library handle |
Yogesh Pande |
4:5d91b0f5038c | 599 | */ |
Yogesh Pande |
4:5d91b0f5038c | 600 | extern int8_t sn_nsdl_create_oma_device_object(struct nsdl_s *handle, sn_nsdl_oma_device_t *device_object_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 601 | |
Yogesh Pande |
4:5d91b0f5038c | 602 | /** |
Yogesh Pande |
4:5d91b0f5038c | 603 | * \fn sn_coap_hdr_s *sn_nsdl_build_response(struct nsdl_s *handle, sn_coap_hdr_s *coap_packet_ptr, uint8_t msg_code) |
Yogesh Pande |
4:5d91b0f5038c | 604 | * |
Yogesh Pande |
4:5d91b0f5038c | 605 | * \brief Prepares generic response packet from a request packet. This function allocates memory for the resulting sn_coap_hdr_s |
Yogesh Pande |
4:5d91b0f5038c | 606 | * |
Yogesh Pande |
4:5d91b0f5038c | 607 | * \param *handle Pointer to library handle |
Yogesh Pande |
4:5d91b0f5038c | 608 | * \param *coap_packet_ptr The request packet pointer |
Yogesh Pande |
4:5d91b0f5038c | 609 | * \param msg_code response messages code |
Yogesh Pande |
4:5d91b0f5038c | 610 | * |
Yogesh Pande |
4:5d91b0f5038c | 611 | * \return *coap_packet_ptr The allocated and pre-filled response packet pointer |
Yogesh Pande |
4:5d91b0f5038c | 612 | * NULL Error in parsing the request |
Yogesh Pande |
4:5d91b0f5038c | 613 | * |
Yogesh Pande |
4:5d91b0f5038c | 614 | */ |
Yogesh Pande |
4:5d91b0f5038c | 615 | extern sn_coap_hdr_s *sn_nsdl_build_response(struct nsdl_s *handle, sn_coap_hdr_s *coap_packet_ptr, uint8_t msg_code); |
Yogesh Pande |
4:5d91b0f5038c | 616 | |
Yogesh Pande |
4:5d91b0f5038c | 617 | /** |
Yogesh Pande |
4:5d91b0f5038c | 618 | * \fn void sn_nsdl_release_allocated_coap_msg_mem(struct nsdl_s *handle, sn_coap_hdr_s *freed_coap_msg_ptr) |
Yogesh Pande |
4:5d91b0f5038c | 619 | * |
Yogesh Pande |
4:5d91b0f5038c | 620 | * \brief Releases memory of given CoAP message |
Yogesh Pande |
4:5d91b0f5038c | 621 | * |
Yogesh Pande |
4:5d91b0f5038c | 622 | * Note!!! Does not release Payload part |
Yogesh Pande |
4:5d91b0f5038c | 623 | * |
Yogesh Pande |
4:5d91b0f5038c | 624 | * \param *handle Pointer to CoAP library handle |
Yogesh Pande |
4:5d91b0f5038c | 625 | * |
Yogesh Pande |
4:5d91b0f5038c | 626 | * \param *freed_coap_msg_ptr is pointer to released CoAP message |
Yogesh Pande |
4:5d91b0f5038c | 627 | */ |
Yogesh Pande |
4:5d91b0f5038c | 628 | extern void sn_nsdl_release_allocated_coap_msg_mem(struct nsdl_s *handle, sn_coap_hdr_s *freed_coap_msg_ptr); |
Yogesh Pande |
4:5d91b0f5038c | 629 | |
Yogesh Pande |
4:5d91b0f5038c | 630 | /** |
Yogesh Pande |
4:5d91b0f5038c | 631 | * \fn int8_t sn_nsdl_set_retransmission_parameters(struct nsdl_s *handle, uint8_t resending_count, uint8_t resending_intervall) |
Yogesh Pande |
4:5d91b0f5038c | 632 | * |
Yogesh Pande |
4:5d91b0f5038c | 633 | * \brief If re-transmissions are enabled, this function changes resending count and interval. |
Yogesh Pande |
4:5d91b0f5038c | 634 | * |
Yogesh Pande |
4:5d91b0f5038c | 635 | * \param *handle Pointer to library handle |
Yogesh Pande |
4:5d91b0f5038c | 636 | * \param uint8_t resending_count max number of resendings for message |
Yogesh Pande |
4:5d91b0f5038c | 637 | * \param uint8_t resending_intervall message resending intervall in seconds |
Yogesh Pande |
4:5d91b0f5038c | 638 | * \return 0 = success, -1 = failure |
Yogesh Pande |
4:5d91b0f5038c | 639 | */ |
Yogesh Pande |
4:5d91b0f5038c | 640 | extern int8_t sn_nsdl_set_retransmission_parameters(struct nsdl_s *handle, uint8_t resending_count, uint8_t resending_interval); |
Yogesh Pande |
4:5d91b0f5038c | 641 | |
Yogesh Pande |
4:5d91b0f5038c | 642 | /** |
Yogesh Pande |
4:5d91b0f5038c | 643 | * \fn int8_t sn_nsdl_set_retransmission_buffer(struct nsdl_s *handle, uint8_t buffer_size_messages, uint16_t buffer_size_bytes) |
Yogesh Pande |
4:5d91b0f5038c | 644 | * |
Yogesh Pande |
4:5d91b0f5038c | 645 | * \brief If re-transmissions are enabled, this function changes message retransmission queue size. |
Yogesh Pande |
4:5d91b0f5038c | 646 | * Set size to '0' to disable feature. If both are set to '0', then re-sendings are disabled. |
Yogesh Pande |
4:5d91b0f5038c | 647 | * |
Yogesh Pande |
4:5d91b0f5038c | 648 | * \param *handle Pointer to library handle |
Yogesh Pande |
4:5d91b0f5038c | 649 | * \param uint8_t buffer_size_messages queue size - maximum number of messages to be saved to queue |
Yogesh Pande |
4:5d91b0f5038c | 650 | * \param uint8_t buffer_size_bytes queue size - maximum size of messages saved to queue |
Yogesh Pande |
4:5d91b0f5038c | 651 | * \return 0 = success, -1 = failure |
Yogesh Pande |
4:5d91b0f5038c | 652 | */ |
Yogesh Pande |
4:5d91b0f5038c | 653 | extern int8_t sn_nsdl_set_retransmission_buffer(struct nsdl_s *handle, |
Yogesh Pande |
4:5d91b0f5038c | 654 | uint8_t buffer_size_messages, uint16_t buffer_size_bytes); |
Yogesh Pande |
4:5d91b0f5038c | 655 | |
Yogesh Pande |
4:5d91b0f5038c | 656 | /** |
Yogesh Pande |
4:5d91b0f5038c | 657 | * \fn int8_t sn_nsdl_set_block_size(struct nsdl_s *handle, uint16_t block_size) |
Yogesh Pande |
4:5d91b0f5038c | 658 | * |
Yogesh Pande |
4:5d91b0f5038c | 659 | * \brief If block transfer is enabled, this function changes the block size. |
Yogesh Pande |
4:5d91b0f5038c | 660 | * |
Yogesh Pande |
4:5d91b0f5038c | 661 | * \param *handle Pointer to library handle |
Yogesh Pande |
4:5d91b0f5038c | 662 | * \param uint16_t block_size maximum size of CoAP payload. Valid sizes are 16, 32, 64, 128, 256, 512 and 1024 bytes |
Yogesh Pande |
4:5d91b0f5038c | 663 | * \return 0 = success, -1 = failure |
Yogesh Pande |
4:5d91b0f5038c | 664 | */ |
Yogesh Pande |
4:5d91b0f5038c | 665 | extern int8_t sn_nsdl_set_block_size(struct nsdl_s *handle, uint16_t block_size); |
Yogesh Pande |
4:5d91b0f5038c | 666 | |
Yogesh Pande |
4:5d91b0f5038c | 667 | /** |
Yogesh Pande |
4:5d91b0f5038c | 668 | * \fn int8_t sn_nsdl_set_duplicate_buffer_size(struct nsdl_s *handle,uint8_t message_count) |
Yogesh Pande |
4:5d91b0f5038c | 669 | * |
Yogesh Pande |
4:5d91b0f5038c | 670 | * \brief If dublicate message detection is enabled, this function changes buffer size. |
Yogesh Pande |
4:5d91b0f5038c | 671 | * |
Yogesh Pande |
4:5d91b0f5038c | 672 | * \param *handle Pointer to library handle |
Yogesh Pande |
4:5d91b0f5038c | 673 | * \param uint8_t message_count max number of messages saved for duplicate control |
Yogesh Pande |
4:5d91b0f5038c | 674 | * \return 0 = success, -1 = failure |
Yogesh Pande |
4:5d91b0f5038c | 675 | */ |
Yogesh Pande |
4:5d91b0f5038c | 676 | extern int8_t sn_nsdl_set_duplicate_buffer_size(struct nsdl_s *handle, uint8_t message_count); |
Yogesh Pande |
4:5d91b0f5038c | 677 | |
Yogesh Pande |
4:5d91b0f5038c | 678 | #ifdef __cplusplus |
Yogesh Pande |
4:5d91b0f5038c | 679 | } |
Yogesh Pande |
4:5d91b0f5038c | 680 | #endif |
Yogesh Pande |
4:5d91b0f5038c | 681 | |
Yogesh Pande |
4:5d91b0f5038c | 682 | #endif /* SN_NSDL_LIB_H_ */ |