1 /* 2 * Copyright (C) 2015-2018 Alibaba Group Holding Limited 3 */ 4 5 #include "Cloud_CoAPNetwork.h" 6 #include "iotx_coap_internal.h" 7 8 #ifndef CLOUD__COAP_EXPORT_H__ 9 #define CLOUD__COAP_EXPORT_H__ 10 11 /* #define COAP_DTLS_SUPPORT */ 12 typedef CoAPMsgOption Cloud_CoAPMsgOption; 13 typedef CoAPMessageCode Cloud_CoAPMessageCode; 14 typedef CoAPMessage Cloud_CoAPMessage; 15 #define COAP_OPTION_SEQ 2089 16 17 typedef void (*Cloud_CoAPRespMsgHandler)(void *data, void *message); 18 19 typedef struct { 20 void *user; 21 unsigned short msgid; 22 char acked; 23 unsigned char tokenlen; 24 unsigned char token[8]; 25 unsigned char retrans_count; 26 unsigned short timeout; 27 unsigned short timeout_val; 28 unsigned char *message; 29 unsigned int msglen; 30 Cloud_CoAPRespMsgHandler resp; 31 struct list_head sendlist; 32 } Cloud_CoAPSendNode; 33 34 typedef struct { 35 unsigned char count; 36 unsigned char maxcount; 37 struct list_head sendlist; 38 } Cloud_CoAPSendList; 39 40 typedef void (*Cloud_CoAPEventNotifier)(unsigned int event, void *p_message); 41 typedef struct { 42 char *url; 43 unsigned char maxcount; /*list maximal count*/ 44 unsigned int waittime; 45 Cloud_CoAPEventNotifier notifier; 46 } Cloud_CoAPInitParam; 47 48 typedef struct { 49 unsigned short message_id; 50 coap_network_t network; 51 Cloud_CoAPEventNotifier notifier; 52 unsigned char *sendbuf; 53 unsigned char *recvbuf; 54 Cloud_CoAPSendList list; 55 unsigned int waittime; 56 } Cloud_CoAPContext; 57 58 #define COAP_TRC(...) log_debug("coap_cloud", __VA_ARGS__) 59 #define COAP_DUMP(...) log_debug("coap_cloud", __VA_ARGS__) 60 #define COAP_DEBUG(...) log_debug("coap_cloud", __VA_ARGS__) 61 #define COAP_INFO(...) log_info("coap_cloud", __VA_ARGS__) 62 #define COAP_WRN(...) log_warning("coap_cloud", __VA_ARGS__) 63 #define COAP_ERR(...) log_err("coap_cloud", __VA_ARGS__) 64 65 Cloud_CoAPContext *Cloud_CoAPContext_create(Cloud_CoAPInitParam *param); 66 void Cloud_CoAPContext_free(Cloud_CoAPContext *p_ctx); 67 68 #endif 69