
menu "Example Configuration"

    choice EXAMPLE_SERIAL_CONFIG
        prompt "Type of serial connection to the modem"
        default EXAMPLE_SERIAL_CONFIG_UART
        config EXAMPLE_SERIAL_CONFIG_UART
            bool "UART"
            help
                Connect to modem via UART.
        config EXAMPLE_SERIAL_CONFIG_USB
            bool "USB"
            depends on IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4
            help
                Connect to modem via USB (CDC-ACM class). For IDF version >= 4.4.
    endchoice

    choice EXAMPLE_MODEM_DEVICE
        prompt "Choose supported modem device (DCE)"
        default EXAMPLE_MODEM_DEVICE_SHINY
        help
            Select modem device connected to the ESP DTE.
        config EXAMPLE_MODEM_DEVICE_SHINY
            depends on EXAMPLE_SERIAL_CONFIG_UART
            bool "SHINY"
            help
                SHINY is a GSM/GPRS module.
                It supports SHINY.
        config EXAMPLE_MODEM_DEVICE_SIM800
            depends on EXAMPLE_SERIAL_CONFIG_UART
            bool "SIM800"
            help
                SIMCom SIM800L is a GSM/GPRS module.
                It supports Quad-band 850/900/1800/1900MHz.
        config EXAMPLE_MODEM_DEVICE_BG96
            bool "BG96"
            help
                Quectel BG96 is a series of LTE Cat M1/Cat NB1/EGPRS module.
        config EXAMPLE_MODEM_DEVICE_EC20
            depends on EXAMPLE_SERIAL_CONFIG_USB
            bool "EC20"
            help
                Quectel EC20 is a series of LTE Cat M4 module.
        config EXAMPLE_MODEM_DEVICE_SIM7000
            depends on EXAMPLE_SERIAL_CONFIG_UART
            bool "SIM7000"
            help
                SIM7000 is a Multi-Band LTE-FDD and GSM/GPRS/EDGE module.
        config EXAMPLE_MODEM_DEVICE_SIM7070
            depends on EXAMPLE_SERIAL_CONFIG_UART
            bool "SIM7070"
            help
                SIM7070 is Multi-Band CAT M and NB IoT module.
        config EXAMPLE_MODEM_DEVICE_SIM7600
            bool "SIM7600"
            help
                SIM7600 is a Multi-Band LTE-TDD/LTE-FDD/HSPA+ and GSM/GPRS/EDGE module.
        config EXAMPLE_MODEM_DEVICE_A7670
            depends on EXAMPLE_SERIAL_CONFIG_USB
            bool "A7670"
            help
                A7670X is Multi-Band LTE-FDD/LTE-TDD/GSM/GPRS/EDGE module.
    endchoice

    config EXAMPLE_MODEM_PPP_APN
        string "Set MODEM APN"
        default "internet"
        help
            Set APN (Access Point Name), a logical name to choose data network

    config EXAMPLE_MODEM_PPP_AUTH_USERNAME
        string "Set username for authentication"
        default "espressif"
        depends on !EXAMPLE_MODEM_PPP_AUTH_NONE
        help
            Set username for PPP Authentication.

    config EXAMPLE_MODEM_PPP_AUTH_PASSWORD
        string "Set password for authentication"
        default "esp32"
        depends on !EXAMPLE_MODEM_PPP_AUTH_NONE
        help
            Set password for PPP Authentication.

    config EXAMPLE_MODEM_PPP_AUTH_NONE
        bool "Skip PPP authentication"
        default n
        help
            Set to true for the PPP client to skip authentication

    menu "UART Configuration"
        depends on EXAMPLE_SERIAL_CONFIG_UART

        choice EXAMPLE_FLOW_CONTROL
            bool "Set preferred modem control flow"
            default EXAMPLE_FLOW_CONTROL_NONE
            help
                Set the modem's preferred control flow

            config EXAMPLE_FLOW_CONTROL_NONE
                bool "No control flow"
            config EXAMPLE_FLOW_CONTROL_SW
                bool "SW control flow"
            config EXAMPLE_FLOW_CONTROL_HW
                bool "HW control flow"
        endchoice

        config EXAMPLE_MODEM_UART_TX_PIN
            int "TXD Pin Number"
            default 25
            range 0 31
            help
                Pin number of UART TX.

        config EXAMPLE_MODEM_UART_RX_PIN
            int "RXD Pin Number"
            default 26
            range 0 31
            help
                Pin number of UART RX.

        config EXAMPLE_MODEM_UART_RTS_PIN
            int "RTS Pin Number"
            default 27
            range 0 31
            help
                Pin number of UART RTS.

        config EXAMPLE_MODEM_UART_CTS_PIN
            int "CTS Pin Number"
            default 23
            range 0 31
            help
                Pin number of UART CTS.

        config EXAMPLE_MODEM_UART_EVENT_TASK_STACK_SIZE
            int "UART Event Task Stack Size"
            range 2000 6000
            default 4096
            help
                Stack size of UART event task.

        config EXAMPLE_MODEM_UART_EVENT_TASK_PRIORITY
            int "UART Event Task Priority"
            range 3 22
            default 5
            help
                Priority of UART event task.

        config EXAMPLE_MODEM_UART_EVENT_QUEUE_SIZE
            int "UART Event Queue Size"
            range 10 40
            default 30
            help
                Length of UART event queue.

        config EXAMPLE_MODEM_UART_PATTERN_QUEUE_SIZE
            int "UART Pattern Queue Size"
            range 10 40
            default 20
            help
                Length of UART pattern queue.

        config EXAMPLE_MODEM_UART_TX_BUFFER_SIZE
            int "UART TX Buffer Size"
            range 256 2048
            default 512
            help
                Buffer size of UART TX buffer.

        config EXAMPLE_MODEM_UART_RX_BUFFER_SIZE
            int "UART RX Buffer Size"
            range 256 2048
            default 1024
            help
                Buffer size of UART RX buffer.
    endmenu

    config EXAMPLE_MODEM_PWRKEY_PIN
        int "PWRKEY Pin Number"
        default 18
        range 0 31
        help
            Pin number connected to modem's power key pin.
endmenu
