NSDL C library

Dependents:   NSDL_HelloWorld_WiFi UbloxModemNanoServiceClient IOT-NSDL_HelloWorld LWM2M_NanoService_Ethernet ... more

Fork of nsdl_lib by Tero Heinonen

Note that use of this software requires acceptance of the Sensinode EULA: http://mbed.org/teams/Sensinode/code/nsdl_lib/wiki/EULA

Committer:
sam_grove
Date:
Mon Jun 16 14:32:29 2014 -0500
Revision:
9:9db1daa49115
Parent:
6:1caf76131c9a
Update headers for version 1.12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 9:9db1daa49115 1 /**
sam_grove 9:9db1daa49115 2 * \file sn_nsdl.h
sam_grove 9:9db1daa49115 3 *
sam_grove 9:9db1daa49115 4 * \brief NanoService Devices Library generic header file
sam_grove 9:9db1daa49115 5 *
sam_grove 9:9db1daa49115 6 * Created on: Aug 23, 2011
sam_grove 9:9db1daa49115 7 * Author: tero
sam_grove 9:9db1daa49115 8 *
sam_grove 9:9db1daa49115 9 */
sam_grove 9:9db1daa49115 10
sam_grove 9:9db1daa49115 11 #ifdef __cplusplus
sam_grove 9:9db1daa49115 12 extern "C" {
sam_grove 9:9db1daa49115 13 #endif
sam_grove 9:9db1daa49115 14
sam_grove 9:9db1daa49115 15 #ifndef SN_NSDL_H_
sam_grove 9:9db1daa49115 16 #define SN_NSDL_H_
sam_grove 9:9db1daa49115 17
sam_grove 9:9db1daa49115 18 #include <stdint.h>
sam_grove 9:9db1daa49115 19
sam_grove 9:9db1daa49115 20 /* * * * * * * * * * * */
sam_grove 9:9db1daa49115 21 /* * * * DEFINES * * * */
sam_grove 9:9db1daa49115 22 /* * * * * * * * * * * */
sam_grove 9:9db1daa49115 23
sam_grove 9:9db1daa49115 24 #define SN_GRS_VERSION 0x0101
sam_grove 9:9db1daa49115 25
sam_grove 9:9db1daa49115 26 #ifndef SN_NSDL_HAVE_HTTP_CAPABILITY
sam_grove 9:9db1daa49115 27 #define SN_NSDL_HAVE_HTTP_CAPABILITY 0
sam_grove 9:9db1daa49115 28 #endif
sam_grove 9:9db1daa49115 29
sam_grove 9:9db1daa49115 30 #ifndef SN_NSDL_HAVE_HTTPS_CAPABILITY
sam_grove 9:9db1daa49115 31 #define SN_NSDL_HAVE_HTTPS_CAPABILITY 0
sam_grove 9:9db1daa49115 32 #endif
sam_grove 9:9db1daa49115 33
sam_grove 9:9db1daa49115 34 #ifndef SN_NSDL_HAVE_COAP_CAPABILITY
sam_grove 9:9db1daa49115 35 #define SN_NSDL_HAVE_COAP_CAPABILITY 1
sam_grove 9:9db1daa49115 36 #endif
sam_grove 9:9db1daa49115 37
sam_grove 9:9db1daa49115 38 /* * * Common * * */
sam_grove 9:9db1daa49115 39
sam_grove 9:9db1daa49115 40 #define SN_NSDL_SUCCESS 0
sam_grove 9:9db1daa49115 41 #define SN_NSDL_FAILURE (-1)
sam_grove 9:9db1daa49115 42
sam_grove 9:9db1daa49115 43 /* * * * * * * * * * * * * * */
sam_grove 9:9db1daa49115 44 /* * * * ENUMERATIONS * * * */
sam_grove 9:9db1daa49115 45 /* * * * * * * * * * * * * * */
sam_grove 9:9db1daa49115 46
sam_grove 9:9db1daa49115 47
sam_grove 9:9db1daa49115 48 /**
sam_grove 9:9db1daa49115 49 * \brief Used protocol
sam_grove 9:9db1daa49115 50 */
sam_grove 9:9db1daa49115 51 typedef enum sn_nsdl_capab_
sam_grove 9:9db1daa49115 52 {
sam_grove 9:9db1daa49115 53 SN_NSDL_PROTOCOL_HTTP = 0x01, /**< Unsupported */
sam_grove 9:9db1daa49115 54 SN_NSDL_PROTOCOL_HTTPS = 0x02, /**< Unsupported */
sam_grove 9:9db1daa49115 55 SN_NSDL_PROTOCOL_COAP = 0x04 /**< Supported */
sam_grove 9:9db1daa49115 56 } sn_nsdl_capab_e;
sam_grove 9:9db1daa49115 57
sam_grove 9:9db1daa49115 58 /**
sam_grove 9:9db1daa49115 59 * \brief Address type of given address
sam_grove 9:9db1daa49115 60 */
sam_grove 9:9db1daa49115 61 typedef enum sn_nsdl_addr_type_
sam_grove 9:9db1daa49115 62 {
sam_grove 9:9db1daa49115 63 SN_NSDL_ADDRESS_TYPE_IPV6 = 0x01, /**< Supported */
sam_grove 9:9db1daa49115 64 SN_NSDL_ADDRESS_TYPE_IPV4 = 0x02, /**< Supported */
sam_grove 9:9db1daa49115 65 SN_NSDL_ADDRESS_TYPE_HOSTNAME = 0x03, /**< Unsupported */
sam_grove 9:9db1daa49115 66 SN_NSDL_ADDRESS_TYPE_NONE = 0xFF
sam_grove 9:9db1daa49115 67 } sn_nsdl_addr_type_e;
sam_grove 9:9db1daa49115 68
sam_grove 9:9db1daa49115 69
sam_grove 9:9db1daa49115 70 #define SN_NDSL_RESOURCE_NOT_REGISTERED 0
sam_grove 9:9db1daa49115 71 #define SN_NDSL_RESOURCE_REGISTERING 1
sam_grove 9:9db1daa49115 72 #define SN_NDSL_RESOURCE_REGISTERED 2
sam_grove 9:9db1daa49115 73
sam_grove 9:9db1daa49115 74
sam_grove 9:9db1daa49115 75 /* * * * * * * * * * * * * */
sam_grove 9:9db1daa49115 76 /* * * * STRUCTURES * * * */
sam_grove 9:9db1daa49115 77 /* * * * * * * * * * * * * */
sam_grove 9:9db1daa49115 78
sam_grove 9:9db1daa49115 79 /**
sam_grove 9:9db1daa49115 80 * \brief Address structure of Packet data
sam_grove 9:9db1daa49115 81 */
sam_grove 9:9db1daa49115 82 typedef struct sn_nsdl_addr_
sam_grove 9:9db1daa49115 83 {
sam_grove 9:9db1daa49115 84 sn_nsdl_addr_type_e type;
sam_grove 9:9db1daa49115 85
sam_grove 9:9db1daa49115 86 uint8_t addr_len;
sam_grove 9:9db1daa49115 87 uint8_t *addr_ptr;
sam_grove 9:9db1daa49115 88
sam_grove 9:9db1daa49115 89 uint16_t port;
sam_grove 9:9db1daa49115 90
sam_grove 9:9db1daa49115 91 void *socket_information;
sam_grove 9:9db1daa49115 92
sam_grove 9:9db1daa49115 93 } sn_nsdl_addr_s;
sam_grove 9:9db1daa49115 94
sam_grove 9:9db1daa49115 95 /**
sam_grove 9:9db1daa49115 96 * \brief Used for creating manually nsdl registration message with sn_coap_register()
sam_grove 9:9db1daa49115 97 */
sam_grove 9:9db1daa49115 98 typedef struct registration_info_
sam_grove 9:9db1daa49115 99 {
sam_grove 9:9db1daa49115 100 uint8_t *endpoint_ptr; /**< Endpoint name */
sam_grove 9:9db1daa49115 101 uint8_t endpoint_len;
sam_grove 9:9db1daa49115 102
sam_grove 9:9db1daa49115 103 uint8_t *endpoint_type_ptr; /**< Endpoint type */
sam_grove 9:9db1daa49115 104 uint8_t endpoint_type_len;
sam_grove 9:9db1daa49115 105
sam_grove 9:9db1daa49115 106 uint8_t *links_ptr; /**< Resource registration string */
sam_grove 9:9db1daa49115 107 uint16_t links_len;
sam_grove 9:9db1daa49115 108
sam_grove 9:9db1daa49115 109 } registration_info_t;
sam_grove 9:9db1daa49115 110
sam_grove 9:9db1daa49115 111 #endif /* SN_NSDL_H_ */
sam_grove 9:9db1daa49115 112
sam_grove 9:9db1daa49115 113 #ifdef __cplusplus
sam_grove 9:9db1daa49115 114 }
sam_grove 9:9db1daa49115 115 #endif
sam_grove 9:9db1daa49115 116