49 lines
1.7 KiB
C
49 lines
1.7 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#pragma once
|
|
|
|
#include "esp_err.h"
|
|
#include "button_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Configuration structure for a touch button.
|
|
*
|
|
* This structure defines the configuration parameters required to initialize a touch button.
|
|
* It specifies the touch channel, activation threshold, and whether to skip low-level initialization.
|
|
*/
|
|
typedef struct {
|
|
int32_t touch_channel; /*!< The touch sensor channel assigned to the button */
|
|
float channel_threshold; /*!< Activation threshold for the touch channel (range: 0.0 - 1.0) */
|
|
bool skip_lowlevel_init; /*!< If true, skips low-level initialization (useful for pre-configured setups) */
|
|
} button_touch_config_t;
|
|
|
|
/**
|
|
* @brief Create a new touch button device.
|
|
*
|
|
* This function initializes a new touch button device based on the given configurations.
|
|
* It sets up the touch channel, configures the touch button sensor, and integrates it
|
|
* with the iot_button framework.
|
|
*
|
|
* @param[in] button_config Pointer to the general button configuration.
|
|
* @param[in] touch_config Pointer to the touch-specific button configuration.
|
|
* @param[out] ret_button Pointer to store the created button handle.
|
|
*
|
|
* @return
|
|
* - ESP_OK on success
|
|
* - ESP_ERR_INVALID_ARG if any argument is NULL
|
|
* - ESP_ERR_NO_MEM if memory allocation fails
|
|
* - ESP_FAIL if touch button sensor or button creation fails
|
|
*/
|
|
esp_err_t iot_button_new_touch_button_device(const button_config_t *button_config, const button_touch_config_t *touch_config, button_handle_t *ret_button);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|