#define UART2_BUFF_SIZE 128
#define STATUS_OK 1
#define STATUS_ERR 0
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef enum
{
CONNCET_STATUS = 0x0101, //连接状态
SET_SIGLE_TIME = 0x0102, //设置单线模式各时间间隔
GET_SIGLE_TIME = 0x0103, //获取单线模式各时间间隔
SET_SEVEN_TIME = 0x0104, //设置7线模式各时间间隔
GET_SEVEN_TIME = 0x0105, //获取7线模式各时间间隔
SEVEN_MODE_ONE = 0x0106, //设置7线触发一次
SIGLE_MODE_ONE = 0x0107, //设置单线触发一次
SEVEN_MODE = 0x0108, //设置7线触发模式
SIGLE_MODE = 0x0109, //设置单线触发模式
SEVEN_MODE_AB = 0x010A, //设置7线触发模式激光AB同时开启
SEVEN_MODE_AB_ONE = 0x010B, //设置7线触发模式激光AB一次
SYS_HOLDON = 0x010C, //扫描暂停
SET_BUTTON_MODE = 0x010D, //设置按键按一次触发一次
}UART_CMD;
typedef struct CircularQueue_STR
{
u8 *BuffHead; //缓冲区头
u16 WritePtr; //写入指针index
u16 ReadPtr; //读取指针index
u16 Count; //可用数据长度
u16 BuffSize; //最大缓冲区大小
}CirQueue_Str;
typedef struct UART_BUFF_STR
{
CirQueue_Str queue;
}UartBuff_Str;
#pragma pack (1)
typedef struct
{
u8 head[2]; //0x55AA
u16 cmd;
u32 camera_time; //相机触发采图时间,默认周期1s
u32 seven_time_1; //7线扫描1时间,默认周期1s
u32 seven_time_2; //7线扫描2时间,默认周期1s
u32 sigle_time; //单线扫描时间,默认周期1s
u8 crc;
}Uart_RxBuf;
#pragma pack()
extern unsigned char hand_recvbuf[UART2_BUFF_SIZE];
extern UartBuff_Str st_uart2;
extern Store_Info store_info;
void Uart_RxData_Proc(void);
void Uart_TxData_Proc(void);
void OD_QueueInit(CirQueue_Str *queue, u8 *bufHead, u16 bufSize);
u8 OD_QueueEmpty(CirQueue_Str *queue);
u8 OD_QueueFull(CirQueue_Str *queue);
void OD_QueueClear(CirQueue_Str *queue);
void OD_EnQueue(CirQueue_Str *queue, u8 dat);
u16 OD_DeQueue(CirQueue_Str *queue);