/*
 * test.h
 *
 *  Created on: 2025年9月17日
 *      Author: ADMINJxy
 */

#ifndef TEST_TEST_H_
#define TEST_TEST_H_



// 帧解析器状态结构体
typedef struct {
    uint8_t buffer[512];       // 数据缓冲区
    uint16_t buffer_len;       // 当前缓冲区数据长度
    uint8_t state;             // 解析状态
    uint8_t expected_len;      // 期望的数据长度
    uint8_t data_len;          // 指令域长度
    uint8_t checksum;          // 校验和计算
} FrameParser;

// 解析状态定义
typedef enum {
    STATE_HEADER1 = 0,         // 等待帧头第一个字节
    STATE_HEADER2,             // 等待帧头第二个字节
    STATE_TYPE,                // 等待类型标识
    STATE_COUNT,               // 等待序列计数
    STATE_LENGTH,              // 等待指令长度
    STATE_DATA,                // 等待指令数据
    STATE_CHECKSUM             // 等待校验和
} ParserState;

// 帧数据结构体
typedef struct {
    uint8_t type;              // 类型标识
    uint8_t count;             // 序列计数
    uint8_t data_len;          // 指令域长度
    uint8_t *data;             // 指令数据指针
    uint8_t checksum;          // 校验和
} FrameData;

// 回调函数类型定义
typedef void (*FrameCallback)(FrameData *frame, void *user_data);

// 初始化帧解析器
void frame_parser_init(FrameParser *parser);
// 重置帧解析器状态
void frame_parser_reset(FrameParser *parser);





#endif /* TEST_TEST_H_ */
