menu "Mesh OTA Configuration"

    choice
        bool "Mesh Topology"
        default MESH_TOPO_TREE
        help
            Mesh Network Topology.

        config MESH_TOPO_TREE
            bool "MESH_TOPO_TREE"
        config MESH_TOPO_CHAIN
            bool "MESH_TOPO_CHAIN"
    endchoice

    config MESH_TOPOLOGY
        int
        default 0 if MESH_TOPO_TREE
        default 1 if MESH_TOPO_CHAIN
        help
            Mesh Network Topology.

    config MESH_ENABLE_PS
        bool "Enable mesh PS (power save) function"
        default y
        help
            Enable/Disable Power Save function.

    choice
        bool "Mesh PS device duty cycle type"
        depends on MESH_ENABLE_PS
        default MESH_PS_DEV_DUTY_TYPE_REQUEST
        help
            Mesh PS device duty cycle type.

        config MESH_PS_DEV_DUTY_TYPE_REQUEST
            bool "MESH_PS_DEV_DUTY_TYPE_REQUEST"
        config MESH_PS_DEV_DUTY_TYPE_DEMAND
            bool "MESH_PS_DEV_DUTY_TYPE_DEMAND"
    endchoice

    config MESH_PS_DEV_DUTY_TYPE
        int
        depends on MESH_ENABLE_PS
        default 1 if MESH_PS_DEV_DUTY_TYPE_REQUEST
        default 4 if MESH_PS_DEV_DUTY_TYPE_DEMAND
        help
            Mesh PS device duty cycle type.

    config MESH_PS_DEV_DUTY
        int "Mesh PS device duty cycle"
        depends on MESH_ENABLE_PS
        range 1 100
        default 12
        help
            Mesh PS device duty cycle.

    config MESH_PS_NWK_DUTY
        int "Mesh PS network duty cycle"
        depends on MESH_ENABLE_PS
        range 1 100
        default 12
        help
            Mesh PS network duty cycle.

    config MESH_PS_NWK_DUTY_DURATION
        int "Mesh PS network duty cycle duration (unit: minutes)"
        depends on MESH_ENABLE_PS
        range -1 100
        default -1
        help
            Mesh PS network duty cycle duration.

    choice
        bool "Mesh PS network duty cycle rule"
        depends on MESH_ENABLE_PS
        default MESH_PS_NETWORK_DUTY_APPLIED_ENTIRE
        help
            Mesh PS network duty cycle rule.

        config MESH_PS_NETWORK_DUTY_APPLIED_ENTIRE
            bool "MESH_PS_NETWORK_DUTY_APPLIED_ENTIRE"
        config MESH_PS_NETWORK_DUTY_APPLIED_UPLINK
            bool "MESH_PS_NETWORK_DUTY_APPLIED_UPLINK"
    endchoice

    config MESH_PS_NWK_DUTY_RULE
        int
        depends on MESH_ENABLE_PS
        default 0 if MESH_PS_NETWORK_DUTY_APPLIED_ENTIRE
        default 1 if MESH_PS_NETWORK_DUTY_APPLIED_UPLINK
        help
            Mesh PS network duty cycle rule.

    config MESH_MAX_LAYER
        int "Mesh Max Layer"
        range 1 25 if MESH_TOPO_TREE
        range 1 1000 if MESH_TOPO_CHAIN
        default 6
        help
            Max layer allowed in mesh network.

    config MESH_CHANNEL
        int "channel"
        range 0 14
        default 0
        help
            mesh network channel.
            
    config MESH_ID
        string "ID for mesh network"
        default "00, 00, 00, 00, 00, 00"
        help
            Mesh network id like MAC addr.

    config MESH_ROUTER_SSID
        string "Router SSID"
        default "ROUTER_SSID"
        help
            Router SSID.

    config MESH_ROUTER_PASSWD
        string "Router password"
        default "ROUTER_PASSWD"
        help
            Router password.

    choice
        bool "Mesh AP Authentication Mode"
        default WIFI_AUTH_WPA2_PSK
        help
            Authentication mode.

        config WIFI_AUTH_WPA2_PSK
            bool "WIFI_AUTH_WPA2_PSK"
        config WIFI_AUTH_WPA2_ENTERPRISE
            bool "WIFI_AUTH_WPA2_ENTERPRISE"
    endchoice

    config MESH_AP_AUTHMODE
        int

        default 3 if WIFI_AUTH_WPA2_PSK
        default 5 if WIFI_AUTH_WPA2_ENTERPRISE
        help
            Mesh AP authentication mode.

    config MESH_AP_PASSWD
        string "Mesh AP Password"
        default "MAP_PASSWD"
        help
            Mesh AP password.

    config MESH_AP_CONNECTIONS
        int "Mesh AP Connections"
        range 1 10
        default 6
        help
            The number of stations allowed to connect in.

    config MESH_ROUTE_TABLE_SIZE
        int "Mesh Routing Table Size"
        range 1 300
        default 50
        help
            The number of devices over the network(max: 300).
            
    config MESH_MESSAGE_SIZE
        int "Mesh network messages size"
        range 1 65536
        default 1500
        help
            Length of messages deliveres by the mesh network.
            
    config OTA_HTTPS_SERVER_COMMON_NAME
        string "Common name OTA server"
        default "exmaple.com"
        help
           Fully Qualified Domain Name used in the certificate.
           
    config OTA_HTTPS_SERVER_PORT
        string "Server port"
        default "443"
        help
           HTTPS webserver port
           
    config OTA_HTTPS_URL
        string "URL to ota image"
        default "https://exmaple.com/theImage.bin"
        help
           Uniform Resource Locator to the image file
           
    config OTA_HTTPS_AUTH
        string "HTTPS authentication"
        default "base64(user:password)"
        help
           HTTPS basic auth using base64 decoded "user:password"
           
endmenu