#ifndef _BOARD_CONFIG_H_
#define _BOARD_CONFIG_H_

// Movecall Moji configuration

#include <driver/gpio.h>        // 包含GPIO驱动库

// 音频采样率配置（16kHz）
#define AUDIO_INPUT_SAMPLE_RATE  16000      // 输入采样率
#define AUDIO_OUTPUT_SAMPLE_RATE 16000      // 输出采样率

// I2S音频接口GPIO配置
#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_6      // 主时钟
#define AUDIO_I2S_GPIO_WS GPIO_NUM_12       // 字选择线
#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_14     // 位时钟
#define AUDIO_I2S_GPIO_DIN  GPIO_NUM_13     // 数据输入（麦克风）
#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_11     // 数据输出（扬声器）

// ES8311音频编解码器配置
#define AUDIO_CODEC_PA_PIN       GPIO_NUM_9    // 功放使能引脚
#define AUDIO_CODEC_I2C_SDA_PIN  GPIO_NUM_5    // I2C数据引脚
#define AUDIO_CODEC_I2C_SCL_PIN  GPIO_NUM_4    // I2C时钟引脚
#define AUDIO_CODEC_ES8311_ADDR  ES8311_CODEC_DEFAULT_ADDR    // ES8311音频编解码器I2C地址

// 系统指示灯与启动按钮
#define BUILTIN_LED_GPIO        GPIO_NUM_21   // 板载LED （GPIO 21）
#define BOOT_BUTTON_GPIO        GPIO_NUM_0    // 启动按钮 （GPIO 0）

// 按键GPIO定义
#define KEY1_GPIO              GPIO_NUM_46   // KEY1 - 音量加（GPIO46）
#define KEY2_GPIO              GPIO_NUM_45   // KEY2 - 音量减（GPIO45）
#define KEY4_GPIO              GPIO_NUM_18   // KEY4 - 播放故事（发送文本消息） （GPIO18）

// ADC电量检测引脚
#define BATTERY_ADC_GPIO       GPIO_NUM_10    // 电池电压检测引脚（GPIO10）
#define BATTERY_ADC_CHANNEL    ADC_CHANNEL_9  // GPIO10对应ADC1_CHANNEL_9
#define BATTERY_ADC_UNIT       ADC_UNIT_1     // 使用ADC单元1

// 六路触摸按键定义
#define TOUCH1_GPIO            GPIO_NUM_1    // Touch1
#define TOUCH2_GPIO            GPIO_NUM_2    // Touch2
#define TOUCH3_GPIO            GPIO_NUM_3    // Touch3 (原显示器背光引脚)
#define TOUCH4_GPIO            GPIO_NUM_7    // Touch4 (原显示器DC引脚)
#define TOUCH5_GPIO            GPIO_NUM_8    // Touch5
#define TOUCH6_GPIO            GPIO_NUM_10   // Touch6

// UART引脚定义 （原4G接口引脚）
#define UART_TX_PIN GPIO_NUM_37  // UART TX 引脚
#define UART_RX_PIN GPIO_NUM_36  // UART RX 引脚


// 音量按键定义
#define VOLUME_UP_BUTTON_GPIO   KEY1_GPIO     // 音量加
#define VOLUME_DOWN_BUTTON_GPIO KEY2_GPIO     // 音量减

// 显示器配置 - 无显示器板载，引脚设为无效
#define DISPLAY_SDA_PIN GPIO_NUM_NC  // 未连接
#define DISPLAY_SCL_PIN GPIO_NUM_NC  // 未连接
#define DISPLAY_WIDTH   128          // 保留参数
#define DISPLAY_HEIGHT  128          // 保留参数
#define DISPLAY_MIRROR_X false       // X轴镜像禁用
#define DISPLAY_MIRROR_Y false       // Y轴镜像禁用
#define DISPLAY_SWAP_XY false        // 坐标轴不交换
#define DISPLAY_OFFSET_X  0          // X轴偏移
#define DISPLAY_OFFSET_Y  0          // Y轴偏移

// 显示器背光控制（未使用）
#define DISPLAY_BACKLIGHT_PIN GPIO_NUM_NC       // 背光控制引脚
#define DISPLAY_BACKLIGHT_OUTPUT_INVERT false   // 输出不反

#endif // _BOARD_CONFIG_H_
