protocol.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef __PROTOCOL__H
  2. #define __PROTOCOL__H
  3. #include "Arduino.h"
  4. /*֡ͷ����*/
  5. #define FRAME_HEADER_LENGTH 1U
  6. /*֡β����(��У���)*/
  7. #define FRAME_TAIL_LENGTH 1U
  8. /*֡ͷ��ͬ�ֽ�*/
  9. #define FRAME_HEAD_SAME_FA 0xFA
  10. /*���ջ���������*/
  11. #define RX_BUF_LENGTH 64U
  12. #define RX_END_LENGTH 1U
  13. typedef struct {
  14. uint8_t cmd_id;
  15. uint8_t ack_flag;
  16. uint8_t *cmd_value;
  17. uint16_t cmd_length;
  18. } PayloadData;
  19. typedef struct {
  20. uint8_t src;
  21. uint8_t dst;
  22. uint8_t seq;
  23. uint8_t res;
  24. PayloadData payload;
  25. } CmdData;
  26. /*����Э�鹫������*/
  27. typedef struct {
  28. volatile uint8_t step; /*switch �����ת����*/
  29. volatile int8_t tmpCnt; /*���ڼ�������ʱ����*/
  30. volatile uint8_t aRxBufIndex; /*�������ݻ���������*/
  31. volatile uint8_t aRxCrcIndex; /*��β���ݻ���������*/
  32. uint8_t aRxCrc[RX_END_LENGTH];
  33. uint8_t aRxBuf[RX_BUF_LENGTH];
  34. } protocolComType_t;
  35. extern void protocol_rec_put(uint8_t data);
  36. extern void protocol_send_data(CmdData dat);
  37. #endif