#ifndef _HMI_RX_PARSE_H_
#define _HMI_RX_PARSE_H_

#include <stdint.h>
#include <stdbool.h>

/*  有返回的指令  */
enum back_cmd
{
    RET_NONE = -1,
    RET_ERR,
    RET_WAR,
    RET_PRINTS,
    RET_GET,
    RET_RST,
    RET_ACK,
    RET_VERSION,
    RET_CADDT,
    RET_GET_CODE,
};

enum cmd_res_type
{
    TYPE_INT,
    TYPE_STR,
};

/*  指令返回的结果数据结构  */
typedef struct
{
    enum back_cmd code;         /*  解析成功的指令码  */
    enum cmd_res_type type;     /*  指令返回的结果数据类型  */
    union
    {
        int value;              /*  数值结果  */
        char *str;              /*  字符串结果  */
    } val;

} cmd_res_t;


int hmi_rx_parse_task(void);

void hmi_rx_parse_set_cmd_code(enum back_cmd code);

cmd_res_t *hmi_rx_parse_get_res(void);

/**
 * @brief    串口屏发送prints指令解析回调（建议用户新建一个.c文件，重写该函数）
 */
__weak void hmi_str_cmd_parse(char *str_cmd);

#endif /* _HMI_H_ */

/*******************************END OF FILE************************************/


