CoAP_Util.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef __COAP_UTIL_H
  2. #define __COAP_UTIL_H
  3. #include <stdint.h>
  4. uint16_t CoAP_Get_Length(void);
  5. void CoAP_Init(uint8_t * coap_message);
  6. // 报文类型,00CON,01NON,10ACK,11Rest
  7. void CoAP_Set_T(uint8_t t);
  8. // 请求类型
  9. void CoAP_Set_Code(uint8_t code);
  10. // messageID
  11. void CoAP_Set_MessageID(uint16_t messageID);
  12. // token len不能大于8
  13. void CoAP_Set_Token(uint8_t * token, uint8_t len);
  14. // 设置option
  15. void CoAP_Set_Option(uint16_t number, uint16_t length, uint8_t * value);
  16. // 设置字符串类型的option
  17. void CoAP_Set_Option_Str(uint16_t number, char * message);
  18. // 设置short类型的option
  19. void CoAP_Set_Option_Short(uint16_t number, uint16_t num);
  20. // 设置payload
  21. void CoAP_Set_Payload(uint8_t * payload, uint16_t length);
  22. void CoAP_Set_Payload_Str(char * payload);
  23. // 报文解析
  24. // 获取版本号
  25. uint8_t CoAP_Get_Ver(uint8_t * coap_message);
  26. // 获取报文类型
  27. uint8_t CoAP_Get_T(uint8_t * coap_message);
  28. // 获取tkl
  29. uint8_t CoAP_Get_Tkl(uint8_t * coap_message);
  30. // 获取请求方式
  31. uint8_t CoAP_Get_Code(uint8_t * coap_message);
  32. // 获取messageID
  33. uint16_t CoAP_Get_MessageID(uint8_t * coap_message);
  34. // 获取token
  35. uint8_t * CoAP_Get_Token(uint8_t * coap_message, uint8_t * token);
  36. // 获取option长度
  37. uint16_t CoAP_Get_Option_Length(uint8_t * coap_message, uint16_t coap_length, uint16_t number);
  38. // 获取option value
  39. uint8_t * CoAP_Get_Option_Value(uint8_t * coap_message, uint16_t coap_length, uint16_t number, uint8_t * value);
  40. // 获取payload长度
  41. uint16_t CoAP_Get_Payload_Length(uint8_t * coap_message, uint16_t coap_length);
  42. // 获取payload值
  43. uint16_t CoAP_Get_Payload(uint8_t * coap_message, uint16_t coap_length, uint8_t * payload);
  44. #endif