menu "esp32s3_MYSDK"

config ROBIOT_WIFI_SSID
    string "ROBITO WIFI SSID"
    default "esp32-apconfig"
    help
        Hotspot Name Settings.

config ROBOIOT_MQTT_URL
    string "MQTT URL"
    default "https://fcrs-api.yd-ss.com/device/getConfig?deviceNo="
    help
        MQTT Config URL

 config MY_APP_VERSION
        string "Project Version"
        default "1.0.1"
        help
            The version number of this firmware.

config APP_DEBUG_UART_NUM
    int "调试与通信 UART 外设编号"
    default 0
    range 0 2
    help
        ESP32-S3 片上有多路 UART：UART0、UART1、UART2。
        UART0 默认引脚 GPIO43(TX)/GPIO44(RX)，用于下载和调试打印。
        UART1 默认引脚 GPIO17(TX)/GPIO18(RX)，在 UART 链路模式下用于与安卓通信。
        本项目使用 UART0 作为调试/通信串口，Release 下可切换为普通通信模式。
        ESP_LOG / printf 走哪一路 UART，由 menuconfig「Component config → ESP System Settings」
        里控制台 UART 编号决定；请与本项保持一致。

config APP_DEBUG_UART_TX_GPIO
    int "调试串口 TX GPIO 编号（UART0 无需设置，保持 -1）"
    default -1
    range -1 48
    help
        UART0 固定使用 GPIO43(TX)/GPIO44(RX)，无需设置。
        UART1 模式下使用 GPIO17(TX)。
        此项保留用于兼容性，请保持为 -1。

config APP_DEBUG_UART_RX_GPIO
    int "调试串口 RX GPIO 编号（UART0 无需设置，保持 -1）"
    default -1
    range -1 48
    help
        UART0 固定使用 GPIO43(TX)/GPIO44(RX)，无需设置。
        UART1 模式下使用 GPIO18(RX)。
        此项保留用于兼容性，请保持为 -1。

config APP_UART_LINK_BAUDRATE
    int "UART 链路模式波特率"
    default 115200
    range 9600 921600
    help
        UART 链路模式下的通信波特率。默认 115200。
        适用于 APP_LINK_UART 模式下的 UART1 通信。

config APP_UART_LINK_TX_GPIO
    int "UART 链路 TX GPIO 编号"
    default 17
    range -1 48
    help
        UART 链路模式下 TX 引脚。UART1 默认使用 GPIO17。
        ESP32-S3 UART1 默认 TX 为 GPIO17。

config APP_UART_LINK_RX_GPIO
    int "UART 链路 RX GPIO 编号"
    default 18
    range -1 48
    help
        UART 链路模式下 RX 引脚。UART1 默认使用 GPIO18。
        ESP32-S3 UART1 默认 RX 为 GPIO18。

choice APP_LINK_MODE
    prompt "链路模式（编译期三选一）"
    default APP_LINK_WIFI
    help
        WiFi：STA + MQTT。BLE：仅 NimBLE 与安卓 JSON，不走 STA/MQTT；配网页仅设备号与蓝牙广播名。
        UART：使用串口1 (GPIO17 TX / GPIO18 RX) 与安卓通信，无需蓝牙或WiFi。

    config APP_LINK_WIFI
        bool "WiFi + MQTT"
        help
            保存 WiFi 后联网，MQTT 控制。

    config APP_LINK_BLE
        bool "BLE（NimBLE）"
        help
            热点网页仅写入 device_id 与 ble_adv_name；正常运行时不连 WiFi、不启 MQTT。

    config APP_LINK_UART
        bool "UART 串口（GPIO17 TX / GPIO18 RX）"
        help
            使用 UART1 (GPIO17=TX, GPIO18=RX) 与安卓进行串口通信。
            无需蓝牙或WiFi，适合有线连接场景。
            长按设备重置按键可进入配网模式重置设备号。

endchoice

config APP_BLE_OTA
    bool "启用 BLE GATT OTA（0xFFE2）与状态 Notify（0xFFE4）"
    depends on APP_LINK_BLE
    default y
    help
        允许手机通过 0xFFE2 写入固件分包升级；每步成功后可通过 0xFFE4 Notify 收到 JSON 应答摘要。
        关闭后向 0xFFE2 写入将返回 Write Not Permitted；0xFFE4 仍可发现，但无 OTA 过程推送。

choice APP_PWM_IO15_ROLE
    prompt "GPIO15 PWM 角色"
    default APP_PWM_IO15_SERVO
    help
        选择 GPIO15 在 50Hz PWM 下的用途。

    config APP_PWM_IO15_SERVO
        bool "舵机（初始化 90 度 / 1500us）"

    config APP_PWM_IO15_ESC
        bool "电调 ESC（初始化 1500us）"
endchoice

choice APP_PWM_IO16_ROLE
    prompt "GPIO16 PWM 角色"
    default APP_PWM_IO16_ESC
    help
        选择 GPIO16 在 50Hz PWM 下的用途。

    config APP_PWM_IO16_SERVO
        bool "舵机（初始化 90 度 / 1500us）"

    config APP_PWM_IO16_ESC
        bool "电调 ESC（初始化 1500us）"
endchoice

choice ROBO_APP_FW_BUILD
    prompt "编译优化级别（固件 Debug/Release）"
    default ROBO_APP_FW_DEBUG
    help
        注意：勿使用名称 APP_BUILD_TYPE，与 ESP-IDF 全局 Kconfig 冲突。
        Debug：-Og；Release：-Os（另见 sdkconfig.defaults.release 或 menuconfig 编译器选项）。

    config ROBO_APP_FW_DEBUG
        bool "Debug（Og 优化，调试）"
        help
            优化级别 -Og，保留调试符号，适合开发和调试。

    config ROBO_APP_FW_RELEASE
        bool "Release（Os 优化，最小体积）"
        help
            优化级别 -Os，最小代码体积，适合量产发布。
            默认关闭 UART 控制台（见 sdkconfig.defaults.release），W/E 日志经 BLE 0xFFE3 Notify 推送。

endchoice

config APP_UART_MODE_DEBUG
    bool "调试打印串口作为普通通信串口使用（仅 Release 有效）"
    depends on ROBO_APP_FW_RELEASE
    default n
    help
        仅在 Release 版本下可用。启用后，由「调试与通信 UART 外设编号」指定的那一路 UART
        不再作为日志输出，可由 uart_comm 做普通收发。禁用则保持调试打印。
        注意：启用后 ESP_LOG / printf 等输出将不可用（建议同时关闭控制台串口）。

endmenu

