#ifndef __COAP_UTIL_H #define __COAP_UTIL_H #include uint16_t CoAP_Get_Length(void); void CoAP_Init(uint8_t * coap_message); // 报文类型,00CON,01NON,10ACK,11Rest void CoAP_Set_T(uint8_t t); // 请求类型 void CoAP_Set_Code(uint8_t code); // messageID void CoAP_Set_MessageID(uint16_t messageID); // token len不能大于8 void CoAP_Set_Token(uint8_t * token, uint8_t len); // 设置option void CoAP_Set_Option(uint16_t number, uint16_t length, uint8_t * value); // 设置字符串类型的option void CoAP_Set_Option_Str(uint16_t number, char * message); // 设置short类型的option void CoAP_Set_Option_Short(uint16_t number, uint16_t num); // 设置payload void CoAP_Set_Payload(uint8_t * payload, uint16_t length); void CoAP_Set_Payload_Str(char * payload); // 报文解析 // 获取版本号 uint8_t CoAP_Get_Ver(uint8_t * coap_message); // 获取报文类型 uint8_t CoAP_Get_T(uint8_t * coap_message); // 获取tkl uint8_t CoAP_Get_Tkl(uint8_t * coap_message); // 获取请求方式 uint8_t CoAP_Get_Code(uint8_t * coap_message); // 获取messageID uint16_t CoAP_Get_MessageID(uint8_t * coap_message); // 获取token uint8_t * CoAP_Get_Token(uint8_t * coap_message, uint8_t * token); // 获取option长度 uint16_t CoAP_Get_Option_Length(uint8_t * coap_message, uint16_t coap_length, uint16_t number); // 获取option value uint8_t * CoAP_Get_Option_Value(uint8_t * coap_message, uint16_t coap_length, uint16_t number, uint8_t * value); // 获取payload长度 uint16_t CoAP_Get_Payload_Length(uint8_t * coap_message, uint16_t coap_length); // 获取payload值 uint16_t CoAP_Get_Payload(uint8_t * coap_message, uint16_t coap_length, uint8_t * payload); #endif