menu "DMX/RDM Configuration"
    
    config DMX_ISR_IN_IRAM
        bool "Place DMX ISR functions in IRAM"
        default y
        select GPTIMER_ISR_IRAM_SAFE
        select GPTIMER_CTRL_FUNC_IN_IRAM
        help
            Placing DMX driver ISR functions in IRAM makes DMX functions
            slightly more performant. It allows the DMX driver to continue
            operation when cache is disabled. ESP-IDF v5 only: enabling this
            option places the GPTimer functions in IRAM as well.
    
    config DMX_NVS_PARTITION_NAME
        string "NVS partition name for DMX parameters"
        default "nvs"
        help
            This is the NVS partition name in which supported DMX parameters are
            stored.
            
    config RDM_DEVICE_UID_MAN_ID
        hex "RDM manufacturer ID"
        range 0x0001 0x7fff
        default 0x05e0
        help
            Set the default manufacturer ID for this device's UID. The valid
            range is 0x0001 to 0x7fff (inclusive).

    config RDM_DEVICE_UID_DEV_ID
        hex "RDM device ID"
        range 0x00000000 0xffffffff
        default 0xffffffff
        help
            Set the default device ID for this device's UID. The valid
            range is 0x00000000 to 0xffffffff (inclusive). Setting this value to
            0xffffffff sets the device ID to its default value.
    
    config RDM_DEBUG_DEVICE_DISCOVERY
        bool "Debug RDM discovery"
        default n
        help
            Enabling this option can help to find bugs within the DMX driver's
            RDM discovery algorithm, but it can make the discovery process take
            longer. This option should remain disabled unless changes are being
            made to the RDM API.
    
    config RDM_STATIC_DISCOVERY_INSTRUCTIONS
        bool "Statically allocate RDM discovery address spaces"
        default n
        help
            RDM discovery needs over 500 bytes of memory. Enabling this option 
            instructs the DMX driver to statically allocate the needed memory
            instead of heap allocating it. It is recommended to enable this
            feature to reduce the use of dynamic memory allocation. When
            enabling this feature, RDM discovery must only be called on one port
            at a time.
    
    config RDM_DISCOVERY_TRANSACTION_SPACING
        int "RDM discovery transaction packet spacing"
        range 2800 999999
        default 5800
        help
           The minimum amount of time to allow for an RDM discovery transaction.
           This is the minimum time that must pass when the RDM controller sends
           an RDM_PID_DISC_UNIQUE_BRANCH request before the controller may send
           another request. This value isn't explicitly specified in the RDM
           standard but its value must be between 2800 microseconds and 1 
           second. This value is only used by RDM controllers.
    
    config RDM_MANUFACTURER_LABEL
        string "The default RDM manufacturer label"
        default "esp_dmx"
        help
          This is the default value which is used in responses to requests for 
          RDM_PID_MANUFACTURER_LABEL. This value should be no more than 32 
          characters long.
    
    config RDM_PID_DEVICE_HOURS_DISABLE_SET
        bool "Disallow RDM controllers to SET RDM_PID_DEVICE_HOURS"
        default n
        help
           RDM_PID_DEVICE_HOURS supports both GET and SET by default. On some
           devices it may only support SET. By selecting this option, the 
           default behavior of `rdm_register_device_hours()` is to only allow 
           GET requests.

endmenu
