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.
mbed-os/features/nanostack/coap-service/coap-service/coap_service_api.h@0:8fdf9a60065b, 2018-10-10 (annotated)
- Committer:
- kadonotakashi
- Date:
- Wed Oct 10 00:33:53 2018 +0000
- Revision:
- 0:8fdf9a60065b
how to make mbed librry
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kadonotakashi | 0:8fdf9a60065b | 1 | /* |
| kadonotakashi | 0:8fdf9a60065b | 2 | * Copyright (c) 2015-2017, Arm Limited and affiliates. |
| kadonotakashi | 0:8fdf9a60065b | 3 | * SPDX-License-Identifier: Apache-2.0 |
| kadonotakashi | 0:8fdf9a60065b | 4 | * |
| kadonotakashi | 0:8fdf9a60065b | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| kadonotakashi | 0:8fdf9a60065b | 6 | * you may not use this file except in compliance with the License. |
| kadonotakashi | 0:8fdf9a60065b | 7 | * You may obtain a copy of the License at |
| kadonotakashi | 0:8fdf9a60065b | 8 | * |
| kadonotakashi | 0:8fdf9a60065b | 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
| kadonotakashi | 0:8fdf9a60065b | 10 | * |
| kadonotakashi | 0:8fdf9a60065b | 11 | * Unless required by applicable law or agreed to in writing, software |
| kadonotakashi | 0:8fdf9a60065b | 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| kadonotakashi | 0:8fdf9a60065b | 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| kadonotakashi | 0:8fdf9a60065b | 14 | * See the License for the specific language governing permissions and |
| kadonotakashi | 0:8fdf9a60065b | 15 | * limitations under the License. |
| kadonotakashi | 0:8fdf9a60065b | 16 | */ |
| kadonotakashi | 0:8fdf9a60065b | 17 | |
| kadonotakashi | 0:8fdf9a60065b | 18 | #ifndef COAP_SERVICE_API_H_ |
| kadonotakashi | 0:8fdf9a60065b | 19 | #define COAP_SERVICE_API_H_ |
| kadonotakashi | 0:8fdf9a60065b | 20 | |
| kadonotakashi | 0:8fdf9a60065b | 21 | #ifdef __cplusplus |
| kadonotakashi | 0:8fdf9a60065b | 22 | extern "C" { |
| kadonotakashi | 0:8fdf9a60065b | 23 | #endif |
| kadonotakashi | 0:8fdf9a60065b | 24 | |
| kadonotakashi | 0:8fdf9a60065b | 25 | #include <string.h> |
| kadonotakashi | 0:8fdf9a60065b | 26 | |
| kadonotakashi | 0:8fdf9a60065b | 27 | #include "ns_types.h" |
| kadonotakashi | 0:8fdf9a60065b | 28 | #include "mbed-coap/sn_coap_header.h" |
| kadonotakashi | 0:8fdf9a60065b | 29 | #include "ns_address.h" |
| kadonotakashi | 0:8fdf9a60065b | 30 | |
| kadonotakashi | 0:8fdf9a60065b | 31 | /** |
| kadonotakashi | 0:8fdf9a60065b | 32 | * This interface is used in sending and receiving of CoAP messages to multicast address and receive multiple responses. |
| kadonotakashi | 0:8fdf9a60065b | 33 | */ |
| kadonotakashi | 0:8fdf9a60065b | 34 | |
| kadonotakashi | 0:8fdf9a60065b | 35 | // Allowed_methods |
| kadonotakashi | 0:8fdf9a60065b | 36 | #define COAP_SERVICE_ACCESS_ALL_ALLOWED 0x0F |
| kadonotakashi | 0:8fdf9a60065b | 37 | #define COAP_SERVICE_ACCESS_GET_ALLOWED 0x01 |
| kadonotakashi | 0:8fdf9a60065b | 38 | #define COAP_SERVICE_ACCESS_PUT_ALLOWED 0x02 |
| kadonotakashi | 0:8fdf9a60065b | 39 | #define COAP_SERVICE_ACCESS_POST_ALLOWED 0x04 |
| kadonotakashi | 0:8fdf9a60065b | 40 | #define COAP_SERVICE_ACCESS_DELETE_ALLOWED 0x08 |
| kadonotakashi | 0:8fdf9a60065b | 41 | |
| kadonotakashi | 0:8fdf9a60065b | 42 | // Bits for service options |
| kadonotakashi | 0:8fdf9a60065b | 43 | #define COAP_SERVICE_OPTIONS_NONE 0x00 |
| kadonotakashi | 0:8fdf9a60065b | 44 | #define COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET 0x01 |
| kadonotakashi | 0:8fdf9a60065b | 45 | #define COAP_SERVICE_OPTIONS_SECURE 0x02 |
| kadonotakashi | 0:8fdf9a60065b | 46 | #define COAP_SERVICE_OPTIONS_EPHEMERAL_PORT 0x04 |
| kadonotakashi | 0:8fdf9a60065b | 47 | /** Coap interface selected as socket interface */ |
| kadonotakashi | 0:8fdf9a60065b | 48 | #define COAP_SERVICE_OPTIONS_SELECT_SOCKET_IF 0x08 |
| kadonotakashi | 0:8fdf9a60065b | 49 | /** Register to COAP multicast groups */ |
| kadonotakashi | 0:8fdf9a60065b | 50 | #define COAP_SERVICE_OPTIONS_MULTICAST_JOIN 0x10 |
| kadonotakashi | 0:8fdf9a60065b | 51 | /** Link-layer security bypass option is set*/ |
| kadonotakashi | 0:8fdf9a60065b | 52 | #define COAP_SERVICE_OPTIONS_SECURE_BYPASS 0x80 |
| kadonotakashi | 0:8fdf9a60065b | 53 | |
| kadonotakashi | 0:8fdf9a60065b | 54 | // Bits for request options |
| kadonotakashi | 0:8fdf9a60065b | 55 | #define COAP_REQUEST_OPTIONS_NONE 0x00 |
| kadonotakashi | 0:8fdf9a60065b | 56 | #define COAP_REQUEST_OPTIONS_ADDRESS_DEFAULT 0x00//!< default is not setting either short or long. |
| kadonotakashi | 0:8fdf9a60065b | 57 | #define COAP_REQUEST_OPTIONS_ADDRESS_LONG 0x01 |
| kadonotakashi | 0:8fdf9a60065b | 58 | #define COAP_REQUEST_OPTIONS_ADDRESS_SHORT 0x02 |
| kadonotakashi | 0:8fdf9a60065b | 59 | #define COAP_REQUEST_OPTIONS_MULTICAST 0x04 //!< indicates that CoAP library support multicasting |
| kadonotakashi | 0:8fdf9a60065b | 60 | #define COAP_REQUEST_OPTIONS_SECURE_BYPASS 0x08 |
| kadonotakashi | 0:8fdf9a60065b | 61 | |
| kadonotakashi | 0:8fdf9a60065b | 62 | extern const uint8_t COAP_MULTICAST_ADDR_LINK_LOCAL[16]; //!< ff02::fd, COAP link local multicast address |
| kadonotakashi | 0:8fdf9a60065b | 63 | extern const uint8_t COAP_MULTICAST_ADDR_ADMIN_LOCAL[16]; //!< ff03::fd, COAP admin-local multicast address |
| kadonotakashi | 0:8fdf9a60065b | 64 | extern const uint8_t COAP_MULTICAST_ADDR_SITE_LOCAL[16]; //!> ff05::fd, COAP site-local multicast address |
| kadonotakashi | 0:8fdf9a60065b | 65 | |
| kadonotakashi | 0:8fdf9a60065b | 66 | /** |
| kadonotakashi | 0:8fdf9a60065b | 67 | * \brief Service message response receive callback. |
| kadonotakashi | 0:8fdf9a60065b | 68 | * |
| kadonotakashi | 0:8fdf9a60065b | 69 | * Function that handles CoAP service message receiving and parsing |
| kadonotakashi | 0:8fdf9a60065b | 70 | * |
| kadonotakashi | 0:8fdf9a60065b | 71 | * \param service_id Service handle. |
| kadonotakashi | 0:8fdf9a60065b | 72 | * \param source_address IPv6 source address. |
| kadonotakashi | 0:8fdf9a60065b | 73 | * \param source_port Source port. |
| kadonotakashi | 0:8fdf9a60065b | 74 | * \param response_ptr Pointer to CoAP header structure. |
| kadonotakashi | 0:8fdf9a60065b | 75 | * |
| kadonotakashi | 0:8fdf9a60065b | 76 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 77 | */ |
| kadonotakashi | 0:8fdf9a60065b | 78 | typedef int coap_service_response_recv(int8_t service_id, uint8_t source_address[static 16], uint16_t source_port, sn_coap_hdr_s *response_ptr); |
| kadonotakashi | 0:8fdf9a60065b | 79 | |
| kadonotakashi | 0:8fdf9a60065b | 80 | /** |
| kadonotakashi | 0:8fdf9a60065b | 81 | * \brief CoAP service request callback |
| kadonotakashi | 0:8fdf9a60065b | 82 | * |
| kadonotakashi | 0:8fdf9a60065b | 83 | * CoAP service request message receiving and parsing function |
| kadonotakashi | 0:8fdf9a60065b | 84 | * |
| kadonotakashi | 0:8fdf9a60065b | 85 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 86 | * \param source_address IPv6 source address. |
| kadonotakashi | 0:8fdf9a60065b | 87 | * \param source_port Source port. |
| kadonotakashi | 0:8fdf9a60065b | 88 | * \param request_ptr Pointer to CoAP header structure. |
| kadonotakashi | 0:8fdf9a60065b | 89 | * |
| kadonotakashi | 0:8fdf9a60065b | 90 | * \return -1 = Message ignored, no response will be sent. Transaction will be deleted. |
| kadonotakashi | 0:8fdf9a60065b | 91 | * 0 = Response is either already sent or will be send. Transaction is not deleted. |
| kadonotakashi | 0:8fdf9a60065b | 92 | */ |
| kadonotakashi | 0:8fdf9a60065b | 93 | typedef int coap_service_request_recv_cb(int8_t service_id, uint8_t source_address[static 16], uint16_t source_port, sn_coap_hdr_s *request_ptr); |
| kadonotakashi | 0:8fdf9a60065b | 94 | |
| kadonotakashi | 0:8fdf9a60065b | 95 | /** |
| kadonotakashi | 0:8fdf9a60065b | 96 | * \brief Security service start callback |
| kadonotakashi | 0:8fdf9a60065b | 97 | * |
| kadonotakashi | 0:8fdf9a60065b | 98 | * Starts security service handling and fetches device password. |
| kadonotakashi | 0:8fdf9a60065b | 99 | * |
| kadonotakashi | 0:8fdf9a60065b | 100 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 101 | * \param address Address of sender. |
| kadonotakashi | 0:8fdf9a60065b | 102 | * \param port Port of the device. |
| kadonotakashi | 0:8fdf9a60065b | 103 | * \param pw Pointer where to write the ecjpake password. |
| kadonotakashi | 0:8fdf9a60065b | 104 | * \param pw_len Pointer where to write length of the ecjpake password. |
| kadonotakashi | 0:8fdf9a60065b | 105 | * |
| kadonotakashi | 0:8fdf9a60065b | 106 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 107 | */ |
| kadonotakashi | 0:8fdf9a60065b | 108 | typedef int coap_service_security_start_cb(int8_t service_id, uint8_t address[static 16], uint16_t port, uint8_t* pw, uint8_t *pw_len); |
| kadonotakashi | 0:8fdf9a60065b | 109 | |
| kadonotakashi | 0:8fdf9a60065b | 110 | /** |
| kadonotakashi | 0:8fdf9a60065b | 111 | * \brief CoAP service security done callback |
| kadonotakashi | 0:8fdf9a60065b | 112 | * |
| kadonotakashi | 0:8fdf9a60065b | 113 | * CoAP service security done callback function. |
| kadonotakashi | 0:8fdf9a60065b | 114 | * |
| kadonotakashi | 0:8fdf9a60065b | 115 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 116 | * \param address Address of sender. |
| kadonotakashi | 0:8fdf9a60065b | 117 | * \param keyblock Security key (40 bits). |
| kadonotakashi | 0:8fdf9a60065b | 118 | * |
| kadonotakashi | 0:8fdf9a60065b | 119 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 120 | */ |
| kadonotakashi | 0:8fdf9a60065b | 121 | typedef int coap_service_security_done_cb(int8_t service_id, uint8_t address[static 16], uint8_t keyblock[static 40]); |
| kadonotakashi | 0:8fdf9a60065b | 122 | |
| kadonotakashi | 0:8fdf9a60065b | 123 | /** |
| kadonotakashi | 0:8fdf9a60065b | 124 | * \brief Initialise server instance. |
| kadonotakashi | 0:8fdf9a60065b | 125 | * |
| kadonotakashi | 0:8fdf9a60065b | 126 | * Initialise Thread services for the registered application. |
| kadonotakashi | 0:8fdf9a60065b | 127 | * |
| kadonotakashi | 0:8fdf9a60065b | 128 | * \param interface_id Informs registered application interface id. This parameter is passed to socket implementation. |
| kadonotakashi | 0:8fdf9a60065b | 129 | * \param listen_port Port that Application wants to use for communicate with coap server. |
| kadonotakashi | 0:8fdf9a60065b | 130 | * \param service_options Options of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 131 | * \param *start_ptr Callback to inform security handling is started and to fetch device password. |
| kadonotakashi | 0:8fdf9a60065b | 132 | * \param *coap_security_done_cb Callback to inform security handling is done. |
| kadonotakashi | 0:8fdf9a60065b | 133 | * |
| kadonotakashi | 0:8fdf9a60065b | 134 | * \return service_id / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 135 | */ |
| kadonotakashi | 0:8fdf9a60065b | 136 | extern int8_t coap_service_initialize(int8_t interface_id, uint16_t listen_port, uint8_t service_options, coap_service_security_start_cb *start_ptr, coap_service_security_done_cb *coap_security_done_cb); |
| kadonotakashi | 0:8fdf9a60065b | 137 | |
| kadonotakashi | 0:8fdf9a60065b | 138 | /** |
| kadonotakashi | 0:8fdf9a60065b | 139 | * \brief Service delete |
| kadonotakashi | 0:8fdf9a60065b | 140 | * |
| kadonotakashi | 0:8fdf9a60065b | 141 | * Removes all data related to this instance |
| kadonotakashi | 0:8fdf9a60065b | 142 | * |
| kadonotakashi | 0:8fdf9a60065b | 143 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 144 | */ |
| kadonotakashi | 0:8fdf9a60065b | 145 | extern void coap_service_delete( int8_t service_id ); |
| kadonotakashi | 0:8fdf9a60065b | 146 | |
| kadonotakashi | 0:8fdf9a60065b | 147 | /** |
| kadonotakashi | 0:8fdf9a60065b | 148 | * \brief Close secure connection |
| kadonotakashi | 0:8fdf9a60065b | 149 | * |
| kadonotakashi | 0:8fdf9a60065b | 150 | * Closes secure connection (if present), but leaves socket open. |
| kadonotakashi | 0:8fdf9a60065b | 151 | * |
| kadonotakashi | 0:8fdf9a60065b | 152 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 153 | * \param destimation_addr_ptr Connection destination address. |
| kadonotakashi | 0:8fdf9a60065b | 154 | * \param port Connection destination port. |
| kadonotakashi | 0:8fdf9a60065b | 155 | */ |
| kadonotakashi | 0:8fdf9a60065b | 156 | extern void coap_service_close_secure_connection(int8_t service_id, uint8_t destination_addr_ptr[static 16], uint16_t port); |
| kadonotakashi | 0:8fdf9a60065b | 157 | |
| kadonotakashi | 0:8fdf9a60065b | 158 | /** |
| kadonotakashi | 0:8fdf9a60065b | 159 | * \brief Virtual socket sent callback. |
| kadonotakashi | 0:8fdf9a60065b | 160 | * |
| kadonotakashi | 0:8fdf9a60065b | 161 | * Sent data to virtual socket. |
| kadonotakashi | 0:8fdf9a60065b | 162 | * |
| kadonotakashi | 0:8fdf9a60065b | 163 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 164 | * \param destination_addr_ptr Receiver IPv6 address. |
| kadonotakashi | 0:8fdf9a60065b | 165 | * \param port Receiver port number. |
| kadonotakashi | 0:8fdf9a60065b | 166 | * \param *data_ptr Pointer to the data. |
| kadonotakashi | 0:8fdf9a60065b | 167 | * \param data_len Lenght of the data. |
| kadonotakashi | 0:8fdf9a60065b | 168 | * |
| kadonotakashi | 0:8fdf9a60065b | 169 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 170 | */ |
| kadonotakashi | 0:8fdf9a60065b | 171 | typedef int coap_service_virtual_socket_send_cb(int8_t service_id, uint8_t destination_addr_ptr[static 16], uint16_t port, const uint8_t *data_ptr, uint16_t data_len); |
| kadonotakashi | 0:8fdf9a60065b | 172 | |
| kadonotakashi | 0:8fdf9a60065b | 173 | /** |
| kadonotakashi | 0:8fdf9a60065b | 174 | * \brief Virtual socket read. |
| kadonotakashi | 0:8fdf9a60065b | 175 | * |
| kadonotakashi | 0:8fdf9a60065b | 176 | * Receive data from virtual socket. |
| kadonotakashi | 0:8fdf9a60065b | 177 | * |
| kadonotakashi | 0:8fdf9a60065b | 178 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 179 | * \param source_addr_ptr Receiver IPv6 address. |
| kadonotakashi | 0:8fdf9a60065b | 180 | * \param port Receiver port number. |
| kadonotakashi | 0:8fdf9a60065b | 181 | * \param *data_ptr Pointer to the data |
| kadonotakashi | 0:8fdf9a60065b | 182 | * \param data_len Lenght of the data |
| kadonotakashi | 0:8fdf9a60065b | 183 | * |
| kadonotakashi | 0:8fdf9a60065b | 184 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 185 | */ |
| kadonotakashi | 0:8fdf9a60065b | 186 | extern int16_t coap_service_virtual_socket_recv(int8_t service_id, uint8_t source_addr_ptr[static 16], uint16_t port, uint8_t *data_ptr, uint16_t data_len); |
| kadonotakashi | 0:8fdf9a60065b | 187 | |
| kadonotakashi | 0:8fdf9a60065b | 188 | /** |
| kadonotakashi | 0:8fdf9a60065b | 189 | * \brief Set virtual socket |
| kadonotakashi | 0:8fdf9a60065b | 190 | * |
| kadonotakashi | 0:8fdf9a60065b | 191 | * Sets virtual socket for CoAP services. |
| kadonotakashi | 0:8fdf9a60065b | 192 | * |
| kadonotakashi | 0:8fdf9a60065b | 193 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 194 | * \param *send_method_ptr Callback to coap virtual socket. |
| kadonotakashi | 0:8fdf9a60065b | 195 | * |
| kadonotakashi | 0:8fdf9a60065b | 196 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 197 | */ |
| kadonotakashi | 0:8fdf9a60065b | 198 | extern int16_t coap_service_virtual_socket_set_cb(int8_t service_id, coap_service_virtual_socket_send_cb *send_method_ptr); |
| kadonotakashi | 0:8fdf9a60065b | 199 | |
| kadonotakashi | 0:8fdf9a60065b | 200 | /** |
| kadonotakashi | 0:8fdf9a60065b | 201 | * \brief Register unsecure callback methods to CoAP server |
| kadonotakashi | 0:8fdf9a60065b | 202 | * |
| kadonotakashi | 0:8fdf9a60065b | 203 | * Register application and informs CoAP services unsecure registery callback function. |
| kadonotakashi | 0:8fdf9a60065b | 204 | * |
| kadonotakashi | 0:8fdf9a60065b | 205 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 206 | * \param *uri Uri address. |
| kadonotakashi | 0:8fdf9a60065b | 207 | * \param allowed_method Informs method that is allowed to use (used defines described above). |
| kadonotakashi | 0:8fdf9a60065b | 208 | * \param *request_recv_cb CoAP service request receive callback function pointer. |
| kadonotakashi | 0:8fdf9a60065b | 209 | * |
| kadonotakashi | 0:8fdf9a60065b | 210 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 211 | */ |
| kadonotakashi | 0:8fdf9a60065b | 212 | extern int8_t coap_service_register_uri(int8_t service_id, const char *uri, uint8_t allowed_method, coap_service_request_recv_cb *request_recv_cb); |
| kadonotakashi | 0:8fdf9a60065b | 213 | |
| kadonotakashi | 0:8fdf9a60065b | 214 | /** |
| kadonotakashi | 0:8fdf9a60065b | 215 | * \brief Unregister unsecure callback methods to CoAP server |
| kadonotakashi | 0:8fdf9a60065b | 216 | * |
| kadonotakashi | 0:8fdf9a60065b | 217 | * Register application and informs CoAP services unsecure registery callback function. |
| kadonotakashi | 0:8fdf9a60065b | 218 | * |
| kadonotakashi | 0:8fdf9a60065b | 219 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 220 | * \param *uri Uri address. |
| kadonotakashi | 0:8fdf9a60065b | 221 | * |
| kadonotakashi | 0:8fdf9a60065b | 222 | * \return 0 for success / -1 for failure |
| kadonotakashi | 0:8fdf9a60065b | 223 | */ |
| kadonotakashi | 0:8fdf9a60065b | 224 | extern int8_t coap_service_unregister_uri(int8_t service_id, const char *uri); |
| kadonotakashi | 0:8fdf9a60065b | 225 | |
| kadonotakashi | 0:8fdf9a60065b | 226 | /** |
| kadonotakashi | 0:8fdf9a60065b | 227 | * \brief Sends CoAP service request |
| kadonotakashi | 0:8fdf9a60065b | 228 | * |
| kadonotakashi | 0:8fdf9a60065b | 229 | * Build and sends CoAP service request message. |
| kadonotakashi | 0:8fdf9a60065b | 230 | * |
| kadonotakashi | 0:8fdf9a60065b | 231 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 232 | * \param options Options defined above. |
| kadonotakashi | 0:8fdf9a60065b | 233 | * \param destination_addr IPv6 address. |
| kadonotakashi | 0:8fdf9a60065b | 234 | * \param destination_port Destination port |
| kadonotakashi | 0:8fdf9a60065b | 235 | * \param msg_type Message type can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 236 | * \param msg_code Message code can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 237 | * \param *uri Uri address. |
| kadonotakashi | 0:8fdf9a60065b | 238 | * \param cont_type Content type can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 239 | * \param payload_ptr Pointer to message content. |
| kadonotakashi | 0:8fdf9a60065b | 240 | * \param payload_len Lenght of the message. |
| kadonotakashi | 0:8fdf9a60065b | 241 | * \param *request_response_cb Callback to inform result of the request. |
| kadonotakashi | 0:8fdf9a60065b | 242 | * |
| kadonotakashi | 0:8fdf9a60065b | 243 | * \return msg_id Id number of the current message. |
| kadonotakashi | 0:8fdf9a60065b | 244 | */ |
| kadonotakashi | 0:8fdf9a60065b | 245 | extern uint16_t coap_service_request_send(int8_t service_id, uint8_t options, const uint8_t destination_addr[static 16], uint16_t destination_port, sn_coap_msg_type_e msg_type, sn_coap_msg_code_e msg_code, const char *uri, |
| kadonotakashi | 0:8fdf9a60065b | 246 | sn_coap_content_format_e cont_type, const uint8_t *payload_ptr, uint16_t payload_len, coap_service_response_recv *request_response_cb); |
| kadonotakashi | 0:8fdf9a60065b | 247 | |
| kadonotakashi | 0:8fdf9a60065b | 248 | /** |
| kadonotakashi | 0:8fdf9a60065b | 249 | * \brief Sends CoAP service response |
| kadonotakashi | 0:8fdf9a60065b | 250 | * |
| kadonotakashi | 0:8fdf9a60065b | 251 | * Build and sends CoAP service response message. |
| kadonotakashi | 0:8fdf9a60065b | 252 | * |
| kadonotakashi | 0:8fdf9a60065b | 253 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 254 | * \param options Options defined above. |
| kadonotakashi | 0:8fdf9a60065b | 255 | * \param request_ptr Pointer to CoAP request message header structure. |
| kadonotakashi | 0:8fdf9a60065b | 256 | * \param message_code Message code can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 257 | * \param content_type Content type can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 258 | * \param payload_ptr Pointer to message content. |
| kadonotakashi | 0:8fdf9a60065b | 259 | * \param payload_len Lenght of the message. |
| kadonotakashi | 0:8fdf9a60065b | 260 | * |
| kadonotakashi | 0:8fdf9a60065b | 261 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 262 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 263 | */ |
| kadonotakashi | 0:8fdf9a60065b | 264 | extern int8_t coap_service_response_send(int8_t service_id, uint8_t options, sn_coap_hdr_s *request_ptr, sn_coap_msg_code_e message_code, sn_coap_content_format_e content_type, const uint8_t *payload_ptr,uint16_t payload_len); |
| kadonotakashi | 0:8fdf9a60065b | 265 | |
| kadonotakashi | 0:8fdf9a60065b | 266 | /** |
| kadonotakashi | 0:8fdf9a60065b | 267 | * \brief Sends CoAP service response |
| kadonotakashi | 0:8fdf9a60065b | 268 | * |
| kadonotakashi | 0:8fdf9a60065b | 269 | * Build and sends CoAP service response message based on CoAP request message id. |
| kadonotakashi | 0:8fdf9a60065b | 270 | * |
| kadonotakashi | 0:8fdf9a60065b | 271 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 272 | * \param options Options defined above. |
| kadonotakashi | 0:8fdf9a60065b | 273 | * \param msg_id Request messages ID. |
| kadonotakashi | 0:8fdf9a60065b | 274 | * \param msg_type Message type can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 275 | * \param message_code Message code can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 276 | * \param content_type Content type can be found from sn_coap_header. |
| kadonotakashi | 0:8fdf9a60065b | 277 | * \param payload_ptr Pointer to message content. |
| kadonotakashi | 0:8fdf9a60065b | 278 | * \param payload_len Lenght of the message. |
| kadonotakashi | 0:8fdf9a60065b | 279 | * |
| kadonotakashi | 0:8fdf9a60065b | 280 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 281 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 282 | */ |
| kadonotakashi | 0:8fdf9a60065b | 283 | extern int8_t coap_service_response_send_by_msg_id(int8_t service_id, uint8_t options, uint16_t msg_id, sn_coap_msg_code_e message_code, sn_coap_content_format_e content_type, const uint8_t *payload_ptr,uint16_t payload_len); |
| kadonotakashi | 0:8fdf9a60065b | 284 | |
| kadonotakashi | 0:8fdf9a60065b | 285 | |
| kadonotakashi | 0:8fdf9a60065b | 286 | |
| kadonotakashi | 0:8fdf9a60065b | 287 | /** |
| kadonotakashi | 0:8fdf9a60065b | 288 | * \brief Delete CoAP request transaction |
| kadonotakashi | 0:8fdf9a60065b | 289 | * |
| kadonotakashi | 0:8fdf9a60065b | 290 | * Removes pending CoAP transaction from service. |
| kadonotakashi | 0:8fdf9a60065b | 291 | * |
| kadonotakashi | 0:8fdf9a60065b | 292 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 293 | * \param msg_id Message ID number. |
| kadonotakashi | 0:8fdf9a60065b | 294 | * |
| kadonotakashi | 0:8fdf9a60065b | 295 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 296 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 297 | */ |
| kadonotakashi | 0:8fdf9a60065b | 298 | extern int8_t coap_service_request_delete(int8_t service_id, uint16_t msg_id); |
| kadonotakashi | 0:8fdf9a60065b | 299 | |
| kadonotakashi | 0:8fdf9a60065b | 300 | /** |
| kadonotakashi | 0:8fdf9a60065b | 301 | * \brief Set DTLS handshake timeout values |
| kadonotakashi | 0:8fdf9a60065b | 302 | * |
| kadonotakashi | 0:8fdf9a60065b | 303 | * Configures the DTLS handshake timeout values. |
| kadonotakashi | 0:8fdf9a60065b | 304 | * |
| kadonotakashi | 0:8fdf9a60065b | 305 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 306 | * \param min Initial timeout value. |
| kadonotakashi | 0:8fdf9a60065b | 307 | * \param max Maximum value of timeout. |
| kadonotakashi | 0:8fdf9a60065b | 308 | * |
| kadonotakashi | 0:8fdf9a60065b | 309 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 310 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 311 | */ |
| kadonotakashi | 0:8fdf9a60065b | 312 | extern int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint32_t max); |
| kadonotakashi | 0:8fdf9a60065b | 313 | |
| kadonotakashi | 0:8fdf9a60065b | 314 | /** |
| kadonotakashi | 0:8fdf9a60065b | 315 | * \brief Set DTLS handshake limit values |
| kadonotakashi | 0:8fdf9a60065b | 316 | * |
| kadonotakashi | 0:8fdf9a60065b | 317 | * Configures the limits for DTLS sessions. Values must be > 0. |
| kadonotakashi | 0:8fdf9a60065b | 318 | * |
| kadonotakashi | 0:8fdf9a60065b | 319 | * \param handshakes_max Maximum amount of simultaneous handshakes. |
| kadonotakashi | 0:8fdf9a60065b | 320 | * \param connections_max Maximum amount of sessions. |
| kadonotakashi | 0:8fdf9a60065b | 321 | * |
| kadonotakashi | 0:8fdf9a60065b | 322 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 323 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 324 | */ |
| kadonotakashi | 0:8fdf9a60065b | 325 | extern int8_t coap_service_handshake_limits_set(uint8_t handshakes_max, uint8_t connections_max); |
| kadonotakashi | 0:8fdf9a60065b | 326 | |
| kadonotakashi | 0:8fdf9a60065b | 327 | /** |
| kadonotakashi | 0:8fdf9a60065b | 328 | * \brief Set CoAP duplication message buffer size |
| kadonotakashi | 0:8fdf9a60065b | 329 | * |
| kadonotakashi | 0:8fdf9a60065b | 330 | * Configures the CoAP duplication message buffer size. |
| kadonotakashi | 0:8fdf9a60065b | 331 | * |
| kadonotakashi | 0:8fdf9a60065b | 332 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 333 | * \param size Buffer size (messages). |
| kadonotakashi | 0:8fdf9a60065b | 334 | * |
| kadonotakashi | 0:8fdf9a60065b | 335 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 336 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 337 | */ |
| kadonotakashi | 0:8fdf9a60065b | 338 | extern int8_t coap_service_set_duplicate_message_buffer(int8_t service_id, uint8_t size); |
| kadonotakashi | 0:8fdf9a60065b | 339 | |
| kadonotakashi | 0:8fdf9a60065b | 340 | /** |
| kadonotakashi | 0:8fdf9a60065b | 341 | * \brief Set DTLS certificates |
| kadonotakashi | 0:8fdf9a60065b | 342 | * |
| kadonotakashi | 0:8fdf9a60065b | 343 | * Set DTLS certificates. |
| kadonotakashi | 0:8fdf9a60065b | 344 | * |
| kadonotakashi | 0:8fdf9a60065b | 345 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 346 | * \param cert Pointer to certificate chain. |
| kadonotakashi | 0:8fdf9a60065b | 347 | * \param cert_len Certificate length. |
| kadonotakashi | 0:8fdf9a60065b | 348 | * \param priv_key pointer to private key. |
| kadonotakashi | 0:8fdf9a60065b | 349 | * \param priv_key_len length of private key. |
| kadonotakashi | 0:8fdf9a60065b | 350 | * |
| kadonotakashi | 0:8fdf9a60065b | 351 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 352 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 353 | */ |
| kadonotakashi | 0:8fdf9a60065b | 354 | |
| kadonotakashi | 0:8fdf9a60065b | 355 | extern int8_t coap_service_certificate_set(int8_t service_id, const unsigned char *cert, uint16_t cert_len, const unsigned char *priv_key, uint8_t priv_key_len); |
| kadonotakashi | 0:8fdf9a60065b | 356 | |
| kadonotakashi | 0:8fdf9a60065b | 357 | /** |
| kadonotakashi | 0:8fdf9a60065b | 358 | * \brief Set CoAP blockwise payload size |
| kadonotakashi | 0:8fdf9a60065b | 359 | * |
| kadonotakashi | 0:8fdf9a60065b | 360 | * Set CoAP blockwise payload limit. If payload is bigger than configured limit, CoAP message will use blockwise option when sending. |
| kadonotakashi | 0:8fdf9a60065b | 361 | * |
| kadonotakashi | 0:8fdf9a60065b | 362 | * \param service_id Id number of the current service. |
| kadonotakashi | 0:8fdf9a60065b | 363 | * \param size Blockwise size. Valid sizes are 16, 32, 64, 128, 256, 512 and 1024 bytes |
| kadonotakashi | 0:8fdf9a60065b | 364 | * |
| kadonotakashi | 0:8fdf9a60065b | 365 | * \return -1 For failure |
| kadonotakashi | 0:8fdf9a60065b | 366 | *- 0 For success |
| kadonotakashi | 0:8fdf9a60065b | 367 | */ |
| kadonotakashi | 0:8fdf9a60065b | 368 | extern int8_t coap_service_blockwise_size_set(int8_t service_id, uint16_t size); |
| kadonotakashi | 0:8fdf9a60065b | 369 | #ifdef __cplusplus |
| kadonotakashi | 0:8fdf9a60065b | 370 | } |
| kadonotakashi | 0:8fdf9a60065b | 371 | #endif |
| kadonotakashi | 0:8fdf9a60065b | 372 | |
| kadonotakashi | 0:8fdf9a60065b | 373 | #endif /* COAP_SERVICE_API_H_ */ |