proto.h 876 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * File: proto.h
  3. * Author: ThuHien
  4. *
  5. * Created on November 23, 2012, 8:57 AM
  6. */
  7. #ifndef _PROTO_H_
  8. #define _PROTO_H_
  9. #include <stdlib.h>
  10. #include "mqtt/typedef.h"
  11. #include "mqtt/ringbuf.h"
  12. typedef void(PROTO_PARSE_CALLBACK)();
  13. typedef struct {
  14. U8 *buf;
  15. U16 bufSize;
  16. U16 dataLen;
  17. U8 isEsc;
  18. U8 isBegin;
  19. PROTO_PARSE_CALLBACK* callback;
  20. } PROTO_PARSER;
  21. I8 ICACHE_FLASH_ATTR PROTO_Init(PROTO_PARSER *parser, PROTO_PARSE_CALLBACK *completeCallback, U8 *buf, U16 bufSize);
  22. I8 ICACHE_FLASH_ATTR PROTO_Parse(PROTO_PARSER *parser, U8 *buf, U16 len);
  23. I16 ICACHE_FLASH_ATTR PROTO_Add(U8 *buf, const U8 *packet, I16 bufSize);
  24. I16 ICACHE_FLASH_ATTR PROTO_AddRb(RINGBUF *rb, const U8 *packet, I16 len);
  25. I8 ICACHE_FLASH_ATTR PROTO_ParseByte(PROTO_PARSER *parser, U8 value);
  26. I16 ICACHE_FLASH_ATTR PROTO_ParseRb(RINGBUF *rb, U8 *bufOut, U16* len, U16 maxBufLen);
  27. #endif