/*
 * UART 通信驱动
 * 用于 Release 模式下接管「APP_DEBUG_UART_NUM」对应 UART 作为普通通信串口
 * Release 默认无控制台输出，UART 引脚用于业务通信
 */

#ifndef UART_COMM_H
#define UART_COMM_H

#include "esp_err.h"
#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/* UART 配置参数 */
#define UART_COMM_DEFAULT_BAUDRATE  115200
#define UART_COMM_BUFFER_SIZE       1024
#define UART_COMM_QUEUE_SIZE        8

/* 初始化 UART 作为普通通信串口（仅 Release 有效） */
esp_err_t uart_comm_init(int baudrate);

/* 反初始化，恢复默认状态 */
void uart_comm_deinit(void);

/* 发送数据 */
int uart_comm_send(const uint8_t *data, size_t len);
int uart_comm_send_string(const char *str);

/* 接收数据（非阻塞） */
int uart_comm_receive(uint8_t *buf, size_t buf_size, uint32_t timeout_ms);

/* 检查是否已初始化 */
int uart_comm_is_initialized(void);

/* 清空接收缓冲区 */
void uart_comm_flush(void);

#ifdef __cplusplus
}
#endif

#endif /* UART_COMM_H */
