ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:54:45 2017 +0800
Revision:
47:9e361da97763
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 47:9e361da97763 1 // Copyright 2017 Baidu Inc. All Rights Reserved.
TMBOY 47:9e361da97763 2 // Author: Su Hao (suhao@baidu.com)
TMBOY 47:9e361da97763 3 //
TMBOY 47:9e361da97763 4 // Description: The CoAP adapter.
TMBOY 47:9e361da97763 5
TMBOY 47:9e361da97763 6 #ifndef BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_COAP_H
TMBOY 47:9e361da97763 7 #define BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_COAP_H
TMBOY 47:9e361da97763 8
TMBOY 47:9e361da97763 9 #include "baidu_ca_coap_ep.h"
TMBOY 47:9e361da97763 10
TMBOY 47:9e361da97763 11 typedef void* bca_coap_handler;
TMBOY 47:9e361da97763 12
TMBOY 47:9e361da97763 13 typedef bca_status_t (*bca_coap_result_f)(bca_context ctx,
TMBOY 47:9e361da97763 14 bca_coap_handler hdlr,
TMBOY 47:9e361da97763 15 const bca_msg_t* msg,
TMBOY 47:9e361da97763 16 const bca_addr_t* addr);
TMBOY 47:9e361da97763 17
TMBOY 47:9e361da97763 18 #define BCA_COAP_MESSAGE_ID_INVALID (0)
TMBOY 47:9e361da97763 19
TMBOY 47:9e361da97763 20 #ifdef __cplusplus
TMBOY 47:9e361da97763 21 extern "C" {
TMBOY 47:9e361da97763 22 #endif
TMBOY 47:9e361da97763 23
TMBOY 47:9e361da97763 24 /*
TMBOY 47:9e361da97763 25 * Acquire the coap handler.
TMBOY 47:9e361da97763 26 *
TMBOY 47:9e361da97763 27 * @Param f_result, in, the callback for user handling events
TMBOY 47:9e361da97763 28 * @Param context, in, the user context for f_result callback
TMBOY 47:9e361da97763 29 * @Param ctx_context, in, the user socket context
TMBOY 47:9e361da97763 30 * @Return bca_coap_handler, the coap context
TMBOY 47:9e361da97763 31 */
TMBOY 47:9e361da97763 32 BCA_INT bca_coap_handler bca_coap_acquire(bca_coap_result_f f_result,
TMBOY 47:9e361da97763 33 bca_context context,
TMBOY 47:9e361da97763 34 bca_context ctx_context);
TMBOY 47:9e361da97763 35
TMBOY 47:9e361da97763 36 /*
TMBOY 47:9e361da97763 37 * Connect to remote CoAP server
TMBOY 47:9e361da97763 38 *
TMBOY 47:9e361da97763 39 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 40 * @Param addr, in, the remote server address
TMBOY 47:9e361da97763 41 * @Param data, in, the security suite data
TMBOY 47:9e361da97763 42 * @Param size, in, the data size
TMBOY 47:9e361da97763 43 * @Return bca_status_t, the connect status
TMBOY 47:9e361da97763 44 */
TMBOY 47:9e361da97763 45 BCA_INT bca_status_t bca_coap_connect(bca_coap_handler hdlr,
TMBOY 47:9e361da97763 46 const bca_addr_t* addr,
TMBOY 47:9e361da97763 47 const void* data,
TMBOY 47:9e361da97763 48 bca_size_t size);
TMBOY 47:9e361da97763 49
TMBOY 47:9e361da97763 50 /*
TMBOY 47:9e361da97763 51 * Disconnect from remote CoAP server
TMBOY 47:9e361da97763 52 *
TMBOY 47:9e361da97763 53 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 54 * @Return bca_status_t, the connect status
TMBOY 47:9e361da97763 55 */
TMBOY 47:9e361da97763 56 BCA_INT bca_status_t bca_coap_disconnect(bca_coap_handler hdlr);
TMBOY 47:9e361da97763 57
TMBOY 47:9e361da97763 58 /*
TMBOY 47:9e361da97763 59 * Add the resource for CoAP request from other endpoints
TMBOY 47:9e361da97763 60 *
TMBOY 47:9e361da97763 61 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 62 * @Param res, in, the resource information
TMBOY 47:9e361da97763 63 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 64 */
TMBOY 47:9e361da97763 65 BCA_INT bca_status_t bca_coap_resource_add(bca_coap_handler hdlr,
TMBOY 47:9e361da97763 66 const bca_res_t* res);
TMBOY 47:9e361da97763 67
TMBOY 47:9e361da97763 68 /*
TMBOY 47:9e361da97763 69 * Remove the resource for CoAP request from other endpoints
TMBOY 47:9e361da97763 70 *
TMBOY 47:9e361da97763 71 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 72 * @Param path, in, the resource path
TMBOY 47:9e361da97763 73 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 74 */
TMBOY 47:9e361da97763 75 BCA_INT bca_status_t bca_coap_resource_remove(bca_coap_handler coap,
TMBOY 47:9e361da97763 76 const char* path);
TMBOY 47:9e361da97763 77
TMBOY 47:9e361da97763 78 /*
TMBOY 47:9e361da97763 79 * Register endpoint by LWM2M
TMBOY 47:9e361da97763 80 *
TMBOY 47:9e361da97763 81 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 82 * @Param ep, in, the endpoint information
TMBOY 47:9e361da97763 83 * @Return bca_status_t, if > 0, the result is the register message id, else is the error status
TMBOY 47:9e361da97763 84 */
TMBOY 47:9e361da97763 85 BCA_INT bca_status_t bca_coap_register(bca_coap_handler coap,
TMBOY 47:9e361da97763 86 const bca_coap_ep_t* ep);
TMBOY 47:9e361da97763 87
TMBOY 47:9e361da97763 88 /*
TMBOY 47:9e361da97763 89 * Unregister the endpoint by LWM2M
TMBOY 47:9e361da97763 90 *
TMBOY 47:9e361da97763 91 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 92 * @Return bca_status_t, if > 0, the result is the unregister message id, else is the error status
TMBOY 47:9e361da97763 93 */
TMBOY 47:9e361da97763 94 BCA_INT bca_status_t bca_coap_unregister(bca_coap_handler coap);
TMBOY 47:9e361da97763 95
TMBOY 47:9e361da97763 96 /*
TMBOY 47:9e361da97763 97 * Update registration by LWM2M
TMBOY 47:9e361da97763 98 *
TMBOY 47:9e361da97763 99 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 100 * @Param lifetime, in, the endpoint lifetime
TMBOY 47:9e361da97763 101 * @Return bca_status_t, if > 0, the result is the update registration message id,
TMBOY 47:9e361da97763 102 * else is the error status
TMBOY 47:9e361da97763 103 */
TMBOY 47:9e361da97763 104 BCA_INT bca_status_t bca_coap_update_registration(bca_coap_handler coap,
TMBOY 47:9e361da97763 105 bca_u32_t lifetime);
TMBOY 47:9e361da97763 106
TMBOY 47:9e361da97763 107 /*
TMBOY 47:9e361da97763 108 * Send the CoAP message
TMBOY 47:9e361da97763 109 *
TMBOY 47:9e361da97763 110 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 111 * @Param msg, in, the CoAP message
TMBOY 47:9e361da97763 112 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 113 */
TMBOY 47:9e361da97763 114 BCA_INT bca_status_t bca_coap_send(bca_coap_handler coap, const bca_msg_t* msg);
TMBOY 47:9e361da97763 115
TMBOY 47:9e361da97763 116 /*
TMBOY 47:9e361da97763 117 * Receive the CoAP message
TMBOY 47:9e361da97763 118 *
TMBOY 47:9e361da97763 119 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 120 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 121 */
TMBOY 47:9e361da97763 122 BCA_INT bca_status_t bca_coap_data_available(bca_coap_handler coap);
TMBOY 47:9e361da97763 123
TMBOY 47:9e361da97763 124 /*
TMBOY 47:9e361da97763 125 * Execute the cached CoAP data
TMBOY 47:9e361da97763 126 *
TMBOY 47:9e361da97763 127 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 128 * @Param timestamp, in, the timestamp for mark the message
TMBOY 47:9e361da97763 129 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 130 */
TMBOY 47:9e361da97763 131 BCA_INT bca_status_t bca_coap_exec(bca_coap_handler hdlr, bca_u32_t timestamp);
TMBOY 47:9e361da97763 132
TMBOY 47:9e361da97763 133 /*
TMBOY 47:9e361da97763 134 * Release the CoAP context
TMBOY 47:9e361da97763 135 *
TMBOY 47:9e361da97763 136 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 137 * @Return bca_status_t, the result
TMBOY 47:9e361da97763 138 */
TMBOY 47:9e361da97763 139 BCA_INT bca_status_t bca_coap_release(bca_coap_handler coap);
TMBOY 47:9e361da97763 140
TMBOY 47:9e361da97763 141 /*
TMBOY 47:9e361da97763 142 * Set read timeout
TMBOY 47:9e361da97763 143 *
TMBOY 47:9e361da97763 144 * @Param hdlr, in, the CoAP context
TMBOY 47:9e361da97763 145 * @Param timeout, in, the timeout value by milliseconds
TMBOY 47:9e361da97763 146 * @Return bca_bool, if match return BCA_TRUE, else return BCA_FALSE
TMBOY 47:9e361da97763 147 */
TMBOY 47:9e361da97763 148 BCA_INT bca_status_t bca_coap_set_read_timeout(bca_coap_handler coap, bca_u32_t timeout);
TMBOY 47:9e361da97763 149
TMBOY 47:9e361da97763 150 #ifdef __cplusplus
TMBOY 47:9e361da97763 151 }
TMBOY 47:9e361da97763 152 #endif
TMBOY 47:9e361da97763 153
TMBOY 47:9e361da97763 154 #endif // BAIDU_IOT_TINYDU_IOT_OS_SRC_IOT_BAIDU_CA_SOURCE_BAIDU_CA_COAP_H