CoAP.h 1.6 KB

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