#ifndef __QUEUE_H
#define __QUEUE_H
#include "includes.h"

#define MAX_QSIZE (60u) /* 最大队列长度 */

typedef struct
{
    INT8U  buf[8];
    INT32U can_id;
} CanData_TypeDef;

typedef struct
{
    INT8U buf[128];
    INT8U len;
} UartFrame_TypeDef;

typedef struct
{
    CanData_TypeDef CanBuf[MAX_QSIZE];
    INT16U          front;
    INT16U          rear;
} SqQueue;

void  InitQueue(SqQueue *Q);                      // 初始化队列
INT8U GetHead(SqQueue *Q, CanData_TypeDef *e);    // 获取对头数据
INT8U InsertQueue(SqQueue *Q, CanData_TypeDef e); // 队列插入数据
INT8U IsQueueEmpty(const SqQueue *Q);             // 查询队列是否为空

#endif
