mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
device_hal: Restructuring to make the usage flexible.
button_driver: Add support for gpio and adc from esp-iot-solution. led_driver: Renamed light_driver to led_driver. app_driver: Using this restructured device_hal. app_driver: Added toggle based on button_driver.
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake)
|
||||
set(button_requires )
|
||||
idf_component_register(SRCS ${button_type}/button_driver.c
|
||||
INCLUDE_DIRS include
|
||||
REQUIRES ${button_requires})
|
||||
|
||||
set(requires driver)
|
||||
if ("${button_type}" STREQUAL "gpio")
|
||||
list(APPEND requires button)
|
||||
elseif ("${button_type}" STREQUAL "adc")
|
||||
list(APPEND requires button)
|
||||
endif()
|
||||
|
||||
idf_component_register(SRC_DIRS
|
||||
INCLUDE_DIRS
|
||||
REQUIRES ${requires})
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Source
|
||||
|
||||
The `button` component which is used for gpio and adc buttons is taken from https://github.com/espressif/esp-iot-solution/tree/master/components/button via idf_component.yml
|
||||
@@ -1,25 +0,0 @@
|
||||
// Copyright 2021 Espressif Systems (Shanghai) CO LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <esp_log.h>
|
||||
|
||||
static const char *TAG = "button_driver_hollow";
|
||||
|
||||
esp_err_t button_driver_init(button_driver_config_t *config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing button driver");
|
||||
/* Initialize the button driver here*/
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
button:
|
||||
path: components/button
|
||||
git: https://github.com/espressif/esp-iot-solution.git
|
||||
@@ -1,29 +0,0 @@
|
||||
// Copyright 2021 Espressif Systems (Shanghai) CO LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License
|
||||
|
||||
#pragma once
|
||||
#include <esp_err.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
int gpio;
|
||||
} button_driver_config_t;
|
||||
|
||||
esp_err_t button_driver_init(button_driver_config_t *config);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -1,4 +1,4 @@
|
||||
include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake)
|
||||
idf_component_register(SRC_DIRS "${device_name}"
|
||||
idf_component_register(SRC_DIRS "${device_type}"
|
||||
INCLUDE_DIRS include
|
||||
REQUIRES ${used_driver})
|
||||
REQUIRES button_driver led_driver)
|
||||
|
||||
@@ -12,37 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
|
||||
#define DEVICE_VERSION_1_0
|
||||
|
||||
#ifdef DEVICE_VERSION_1_0
|
||||
#define LED_GPIO_PIN 12 /* GPIO_NUM_12 */
|
||||
#define LED_GPIO_PIN GPIO_NUM_12
|
||||
#define LED_CHANNEL 0 /* LEDC_CHANNEL_0 */
|
||||
#endif
|
||||
#define BUTTON_GPIO_PIN GPIO_NUM_0
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing device");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
if(NOT ("${IDF_TARGET}" STREQUAL "esp32" ))
|
||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32" ))
|
||||
message(FATAL_ERROR "please set esp32 as the IDF_TARGET using 'idf.py set-target esp32'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name esp32_devkit_c)
|
||||
SET(light_type gpio)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver")
|
||||
|
||||
SET(device_type esp32_devkit_c)
|
||||
SET(led_type gpio)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver")
|
||||
|
||||
@@ -12,37 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
|
||||
#define DEVICE_VERSION_1_0
|
||||
|
||||
#ifdef DEVICE_VERSION_1_0
|
||||
#define LED_GPIO_PIN 8 /* GPIO_NUM_8 */
|
||||
#define LED_GPIO_PIN GPIO_NUM_8
|
||||
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
|
||||
#endif
|
||||
#define BUTTON_GPIO_PIN GPIO_NUM_9
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing device");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,10 @@ if (NOT ("${IDF_TARGET}" STREQUAL "esp32c3" ))
|
||||
message(FATAL_ERROR "please set esp32c3 as the IDF_TARGET using 'idf.py set-target esp32c3'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name esp32c3_devkit_m)
|
||||
SET(light_type ws2812)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver"
|
||||
SET(device_type esp32c3_devkit_m)
|
||||
SET(led_type ws2812)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver"
|
||||
"$ENV{IDF_PATH}/examples/common_components/led_strip")
|
||||
|
||||
@@ -12,33 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
|
||||
#define LED_GPIO_PIN 8 /* GPIO_NUM_8 */
|
||||
#define LED_GPIO_PIN GPIO_NUM_8
|
||||
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
|
||||
#define BUTTON_GPIO_PIN GPIO_NUM_0
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing device");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32h2"))
|
||||
message(FATAL_ERROR "please set esp32h2 as the IDF_TARGET using 'idf.py -- preview set-target esp32h2'")
|
||||
message(FATAL_ERROR "please set esp32h2 as the IDF_TARGET using 'idf.py --preview set-target esp32h2'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name esp32h2_devkit_c)
|
||||
SET(light_type ws2812)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver"
|
||||
SET(device_type esp32h2_devkit_c)
|
||||
SET(led_type ws2812)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver"
|
||||
"$ENV{IDF_PATH}/examples/common_components/led_strip")
|
||||
|
||||
@@ -12,30 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
#define LED_GPIO_PIN GPIO_NUM_8
|
||||
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
|
||||
#define BUTTON_GPIO_PIN GPIO_NUM_0
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
.gpio = -1,
|
||||
.channel = -1,
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing device");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
if(NOT ("${IDF_TARGET}" STREQUAL "esp32s2" ))
|
||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32s2" ))
|
||||
message(FATAL_ERROR "please set esp32s2 as the IDF_TARGET using 'idf.py set-target esp32s2'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name esp32s2_devkit_c)
|
||||
SET(light_type hollow)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver")
|
||||
|
||||
SET(device_type esp32s2_devkit_c)
|
||||
SET(led_type hollow)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver")
|
||||
|
||||
@@ -12,37 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
|
||||
#define DEVICE_VERSION_1_0
|
||||
|
||||
#ifdef DEVICE_VERSION_1_0
|
||||
#define LED_GPIO_PIN 48 /* GPIO_NUM_48 */
|
||||
#define LED_GPIO_PIN GPIO_NUM_48
|
||||
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
|
||||
#endif
|
||||
#define BUTTON_GPIO_PIN GPIO_NUM_0
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing device");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
if(NOT ("${IDF_TARGET}" STREQUAL "esp32s3" ))
|
||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32s3" ))
|
||||
message(FATAL_ERROR "please set esp32s3 as the IDF_TARGET using 'idf.py set-target esp32s3'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name esp32s3_devkit_c)
|
||||
SET(light_type ws2812)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver"
|
||||
SET(device_type esp32s3_devkit_c)
|
||||
SET(led_type ws2812)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver"
|
||||
"$ENV{IDF_PATH}/examples/common_components/led_strip")
|
||||
|
||||
|
||||
|
||||
@@ -12,13 +12,16 @@
|
||||
// limitations under the License
|
||||
|
||||
#pragma once
|
||||
#include <esp_err.h>
|
||||
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
esp_err_t device_init();
|
||||
led_driver_config_t led_driver_get_config();
|
||||
button_config_t button_driver_get_config();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -12,36 +12,32 @@
|
||||
// limitations under the License
|
||||
|
||||
#include <esp_log.h>
|
||||
#include <iot_button.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#include <button_driver.h>
|
||||
#include <light_driver.h>
|
||||
|
||||
#define DEVICE_VERSION_1_0
|
||||
|
||||
#ifdef DEVICE_VERSION_1_0
|
||||
#define LED_GPIO_PIN 32 /* PIN_NUM_BCKL for M5Stack TFT */
|
||||
#define LED_CHANNEL 7 /* LEDC_CHANNEL_7 */
|
||||
#endif
|
||||
#define BUTTON_GPIO_PIN 39 /* Left button on M5Stack */
|
||||
|
||||
static const char *TAG = "device";
|
||||
|
||||
static esp_err_t device_light_init()
|
||||
led_driver_config_t led_driver_get_config()
|
||||
{
|
||||
light_driver_config_t config = {
|
||||
.gpio = 32,
|
||||
.channel = 7,
|
||||
led_driver_config_t config = {
|
||||
.gpio = LED_GPIO_PIN,
|
||||
.channel = LED_CHANNEL,
|
||||
};
|
||||
return light_driver_init(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
static esp_err_t device_button_init()
|
||||
button_config_t button_driver_get_config()
|
||||
{
|
||||
return button_driver_init(NULL);
|
||||
}
|
||||
|
||||
esp_err_t device_init()
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing board");
|
||||
device_light_init();
|
||||
device_button_init();
|
||||
return ESP_OK;
|
||||
button_config_t config = {
|
||||
.type = BUTTON_TYPE_GPIO,
|
||||
.gpio_button_config = {
|
||||
.gpio_num = BUTTON_GPIO_PIN,
|
||||
.active_level = 0,
|
||||
}
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
if(NOT ("${IDF_TARGET}" STREQUAL "esp32" ))
|
||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32" ))
|
||||
message(FATAL_ERROR "please set esp32 as the IDF_TARGET using 'idf.py set-target esp32'")
|
||||
endif()
|
||||
|
||||
SET(device_hal_path $ENV{ESP_MATTER_DEVICE_PATH}/../../)
|
||||
SET(device_name m5stack)
|
||||
SET(light_type vled)
|
||||
SET(button_type hollow)
|
||||
SET(used_driver light_driver button_driver)
|
||||
SET(extra_components_dirs_append "${device_hal_path}/light_driver"
|
||||
"${device_hal_path}/button_driver"
|
||||
SET(device_type m5stack)
|
||||
SET(led_type vled)
|
||||
SET(button_type gpio)
|
||||
|
||||
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver"
|
||||
"$ENV{ESP_MATTER_PATH}/connectedhomeip/connectedhomeip/examples/common/m5stack-tft/repo/components/tft/"
|
||||
"$ENV{ESP_MATTER_PATH}/connectedhomeip/connectedhomeip/examples/common/m5stack-tft/repo/components/spidriver/")
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake)
|
||||
|
||||
set(led_requires driver)
|
||||
if ("${led_type}" STREQUAL "ws2812")
|
||||
list(APPEND led_requires led_strip)
|
||||
elseif ("${led_type}" STREQUAL "vled")
|
||||
list(APPEND led_requires tft spidriver)
|
||||
endif()
|
||||
|
||||
idf_component_register(SRC_DIRS ${led_type} utils
|
||||
INCLUDE_DIRS include
|
||||
PRIV_REQUIRES ${led_requires})
|
||||
+14
-14
@@ -15,13 +15,13 @@
|
||||
#include <esp_log.h>
|
||||
#include <hal/ledc_types.h>
|
||||
|
||||
#include <light_driver.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
static const char *TAG = "light_driver_gpio";
|
||||
static const char *TAG = "led_driver_gpio";
|
||||
static bool current_power = false;
|
||||
static uint8_t current_brightness = 0;
|
||||
|
||||
esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
esp_err_t led_driver_init(led_driver_config_t *config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing light driver");
|
||||
esp_err_t err = ESP_OK;
|
||||
@@ -56,13 +56,13 @@ esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_power(bool power)
|
||||
esp_err_t led_driver_set_power(bool power)
|
||||
{
|
||||
current_power = power;
|
||||
return light_driver_set_brightness(current_brightness);
|
||||
return led_driver_set_brightness(current_brightness);
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
esp_err_t led_driver_set_brightness(uint8_t brightness)
|
||||
{
|
||||
esp_err_t err;
|
||||
|
||||
@@ -85,42 +85,42 @@ esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_hue(uint16_t hue)
|
||||
esp_err_t led_driver_set_hue(uint16_t hue)
|
||||
{
|
||||
return ESP_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_saturation(uint8_t saturation)
|
||||
esp_err_t led_driver_set_saturation(uint8_t saturation)
|
||||
{
|
||||
return ESP_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_temperature(uint32_t temperature)
|
||||
esp_err_t led_driver_set_temperature(uint32_t temperature)
|
||||
{
|
||||
return ESP_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
bool light_driver_get_power()
|
||||
bool led_driver_get_power()
|
||||
{
|
||||
return current_power;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_brightness()
|
||||
uint8_t led_driver_get_brightness()
|
||||
{
|
||||
return current_brightness;
|
||||
}
|
||||
|
||||
uint16_t light_driver_get_hue()
|
||||
uint16_t led_driver_get_hue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_saturation()
|
||||
uint8_t led_driver_get_saturation()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t light_driver_get_temperature()
|
||||
uint32_t led_driver_get_temperature()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
+13
-13
@@ -13,15 +13,15 @@
|
||||
|
||||
#include <color_format.h>
|
||||
#include <esp_log.h>
|
||||
#include <light_driver.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
static const char *TAG = "light_driver_hollow";
|
||||
static const char *TAG = "led_driver_hollow";
|
||||
static bool current_power = false;
|
||||
static uint8_t current_brightness = 0;
|
||||
static HS_color_t current_HS = {0, 0};
|
||||
static uint32_t current_temperature = 6600;
|
||||
|
||||
esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
esp_err_t led_driver_init(led_driver_config_t *config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing light driver");
|
||||
/* Initialize the driver here */
|
||||
@@ -29,7 +29,7 @@ esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_power(bool power)
|
||||
esp_err_t led_driver_set_power(bool power)
|
||||
{
|
||||
ESP_LOGI(TAG, "Setting power to: %d", power);
|
||||
/* Set the power state here */
|
||||
@@ -37,7 +37,7 @@ esp_err_t light_driver_set_power(bool power)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
esp_err_t led_driver_set_brightness(uint8_t brightness)
|
||||
{
|
||||
ESP_LOGI(TAG, "Setting brightness to: %d", brightness);
|
||||
/* Set the brightness level here */
|
||||
@@ -45,7 +45,7 @@ esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_hue(uint16_t hue)
|
||||
esp_err_t led_driver_set_hue(uint16_t hue)
|
||||
{
|
||||
ESP_LOGI(TAG, "Setting hue to: %d", hue);
|
||||
/* Set the color hue here */
|
||||
@@ -53,7 +53,7 @@ esp_err_t light_driver_set_hue(uint16_t hue)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_saturation(uint8_t saturation)
|
||||
esp_err_t led_driver_set_saturation(uint8_t saturation)
|
||||
{
|
||||
ESP_LOGI(TAG, "Setting saturation to: %d", saturation);
|
||||
/* Set the color saturation here */
|
||||
@@ -61,7 +61,7 @@ esp_err_t light_driver_set_saturation(uint8_t saturation)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_temperature(uint32_t temperature)
|
||||
esp_err_t led_driver_set_temperature(uint32_t temperature)
|
||||
{
|
||||
ESP_LOGI(TAG, "Setting temperature to: %d", temperature);
|
||||
/* Set the color temp here*/
|
||||
@@ -69,27 +69,27 @@ esp_err_t light_driver_set_temperature(uint32_t temperature)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
bool light_driver_get_power()
|
||||
bool led_driver_get_power()
|
||||
{
|
||||
return current_power;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_brightness()
|
||||
uint8_t led_driver_get_brightness()
|
||||
{
|
||||
return current_brightness;
|
||||
}
|
||||
|
||||
uint16_t light_driver_get_hue()
|
||||
uint16_t led_driver_get_hue()
|
||||
{
|
||||
return current_HS.hue;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_saturation()
|
||||
uint8_t led_driver_get_saturation()
|
||||
{
|
||||
return current_HS.saturation;
|
||||
}
|
||||
|
||||
uint32_t light_driver_get_temperature()
|
||||
uint32_t led_driver_get_temperature()
|
||||
{
|
||||
return current_temperature;
|
||||
}
|
||||
+12
-12
@@ -23,20 +23,20 @@ extern "C" {
|
||||
typedef struct {
|
||||
int gpio;
|
||||
int channel;
|
||||
} light_driver_config_t;
|
||||
} led_driver_config_t;
|
||||
|
||||
esp_err_t light_driver_init(light_driver_config_t *config);
|
||||
esp_err_t light_driver_set_power(bool power);
|
||||
esp_err_t light_driver_set_brightness(uint8_t brightness);
|
||||
esp_err_t light_driver_set_hue(uint16_t hue);
|
||||
esp_err_t light_driver_set_saturation(uint8_t saturation);
|
||||
esp_err_t light_driver_set_temperature(uint32_t temperature);
|
||||
esp_err_t led_driver_init(led_driver_config_t *config);
|
||||
esp_err_t led_driver_set_power(bool power);
|
||||
esp_err_t led_driver_set_brightness(uint8_t brightness);
|
||||
esp_err_t led_driver_set_hue(uint16_t hue);
|
||||
esp_err_t led_driver_set_saturation(uint8_t saturation);
|
||||
esp_err_t led_driver_set_temperature(uint32_t temperature);
|
||||
|
||||
bool light_driver_get_power(void);
|
||||
uint8_t light_driver_get_brightness(void);
|
||||
uint16_t light_driver_get_hue(void);
|
||||
uint8_t light_driver_get_saturation(void);
|
||||
uint32_t light_driver_get_temperature(void);
|
||||
bool led_driver_get_power(void);
|
||||
uint8_t led_driver_get_brightness(void);
|
||||
uint16_t led_driver_get_hue(void);
|
||||
uint8_t led_driver_get_saturation(void);
|
||||
uint32_t led_driver_get_temperature(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
+20
-20
@@ -19,13 +19,13 @@
|
||||
#include <tftspi.h>
|
||||
|
||||
#include <color_format.h>
|
||||
#include <light_driver.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
#define TFT_SPI_CLOCK_INIT_HZ 8000000
|
||||
#define LEDC_PWM_HZ 1000
|
||||
#define BRIGHTNESS_MAX 255
|
||||
|
||||
static const char *TAG = "light_driver_vled";
|
||||
static const char *TAG = "led_driver_vled";
|
||||
static bool current_power = false;
|
||||
static uint8_t current_brightness = 0;
|
||||
static HS_color_t current_HS = {0, 0};
|
||||
@@ -35,7 +35,7 @@ static uint16_t DisplayHeight;
|
||||
static uint16_t DisplayWidth;
|
||||
static int led_driver_channel = -1;
|
||||
|
||||
static void SetupBrightnessControl(light_driver_config_t *config)
|
||||
static void SetupBrightnessControl(led_driver_config_t *config)
|
||||
{
|
||||
ledc_timer_config_t ledc_timer;
|
||||
memset(&ledc_timer, 0, sizeof(ledc_timer));
|
||||
@@ -124,7 +124,7 @@ static esp_err_t InitDisplay()
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
esp_err_t led_driver_init(led_driver_config_t *config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing led driver");
|
||||
esp_err_t err = ESP_OK;
|
||||
@@ -137,19 +137,19 @@ esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_power(bool power)
|
||||
esp_err_t led_driver_set_power(bool power)
|
||||
{
|
||||
current_power = power;
|
||||
return light_driver_set_brightness(current_brightness);
|
||||
return led_driver_set_brightness(current_brightness);
|
||||
}
|
||||
esp_err_t light_driver_set_RGB()
|
||||
esp_err_t led_driver_set_RGB()
|
||||
{
|
||||
TFT_fillWindow(TFT_BLACK);
|
||||
TFT_fillCircle(DisplayWidth / 2, DisplayHeight / 2, DisplayWidth / 4, (color_t){mRGB.red, mRGB.green, mRGB.blue});
|
||||
TFT_drawCircle(DisplayWidth / 2, DisplayHeight / 2, DisplayWidth / 4, (color_t){255, 255, 255});
|
||||
return ESP_OK;
|
||||
}
|
||||
esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
esp_err_t led_driver_set_brightness(uint8_t brightness)
|
||||
{
|
||||
if (brightness != 0) {
|
||||
current_brightness = brightness;
|
||||
@@ -158,55 +158,55 @@ esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
brightness = 0;
|
||||
}
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_hue(uint16_t hue)
|
||||
esp_err_t led_driver_set_hue(uint16_t hue)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_HS.hue = hue;
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_saturation(uint8_t saturation)
|
||||
esp_err_t led_driver_set_saturation(uint8_t saturation)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_HS.saturation = saturation;
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_temperature(uint32_t temperature)
|
||||
esp_err_t led_driver_set_temperature(uint32_t temperature)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_temperature = temperature;
|
||||
temp_to_hs(current_temperature, ¤t_HS);
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
bool light_driver_get_power()
|
||||
bool led_driver_get_power()
|
||||
{
|
||||
return current_power;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_brightness()
|
||||
uint8_t led_driver_get_brightness()
|
||||
{
|
||||
return current_brightness;
|
||||
}
|
||||
|
||||
uint16_t light_driver_get_hue()
|
||||
uint16_t led_driver_get_hue()
|
||||
{
|
||||
return current_HS.hue;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_saturation()
|
||||
uint8_t led_driver_get_saturation()
|
||||
{
|
||||
return current_HS.saturation;
|
||||
}
|
||||
|
||||
uint32_t light_driver_get_temperature()
|
||||
uint32_t led_driver_get_temperature()
|
||||
{
|
||||
return current_temperature;
|
||||
}
|
||||
+19
-19
@@ -15,9 +15,9 @@
|
||||
#include <driver/rmt.h>
|
||||
#include <esp_log.h>
|
||||
#include <led_strip.h>
|
||||
#include <light_driver.h>
|
||||
#include <led_driver.h>
|
||||
|
||||
static const char *TAG = "light_driver_ws2812";
|
||||
static const char *TAG = "led_driver_ws2812";
|
||||
static bool current_power = false;
|
||||
static uint8_t current_brightness = 0;
|
||||
static uint32_t current_temp = 6600;
|
||||
@@ -25,7 +25,7 @@ static HS_color_t current_HS = {0, 0};
|
||||
static RGB_color_t mRGB;
|
||||
static led_strip_t *strip = NULL;
|
||||
|
||||
esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
esp_err_t led_driver_init(led_driver_config_t *config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Initializing light driver");
|
||||
esp_err_t err = ESP_OK;
|
||||
@@ -50,13 +50,13 @@ esp_err_t light_driver_init(light_driver_config_t *config)
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_power(bool power)
|
||||
esp_err_t led_driver_set_power(bool power)
|
||||
{
|
||||
current_power = power;
|
||||
return light_driver_set_brightness(current_brightness);
|
||||
return led_driver_set_brightness(current_brightness);
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_RGB()
|
||||
esp_err_t led_driver_set_RGB()
|
||||
{
|
||||
esp_err_t err = ESP_OK;
|
||||
if (!strip) {
|
||||
@@ -77,7 +77,7 @@ esp_err_t light_driver_set_RGB()
|
||||
return err;
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
esp_err_t led_driver_set_brightness(uint8_t brightness)
|
||||
{
|
||||
if (brightness != 0) {
|
||||
current_brightness = brightness;
|
||||
@@ -86,55 +86,55 @@ esp_err_t light_driver_set_brightness(uint8_t brightness)
|
||||
brightness = 0;
|
||||
}
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_hue(uint16_t hue)
|
||||
esp_err_t led_driver_set_hue(uint16_t hue)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_HS.hue = hue;
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_saturation(uint8_t saturation)
|
||||
esp_err_t led_driver_set_saturation(uint8_t saturation)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_HS.saturation = saturation;
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
esp_err_t light_driver_set_temperature(uint32_t temperature)
|
||||
esp_err_t led_driver_set_temperature(uint32_t temperature)
|
||||
{
|
||||
uint8_t brightness = current_power ? current_brightness : 0;
|
||||
current_temp = temperature;
|
||||
temp_to_hs(current_temp, ¤t_HS);
|
||||
hsv_to_rgb(current_HS, brightness, &mRGB);
|
||||
return light_driver_set_RGB();
|
||||
return led_driver_set_RGB();
|
||||
}
|
||||
|
||||
bool light_driver_get_power()
|
||||
bool led_driver_get_power()
|
||||
{
|
||||
return current_power;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_brightness()
|
||||
uint8_t led_driver_get_brightness()
|
||||
{
|
||||
return current_brightness;
|
||||
}
|
||||
|
||||
uint16_t light_driver_get_hue()
|
||||
uint16_t led_driver_get_hue()
|
||||
{
|
||||
return current_HS.hue;
|
||||
}
|
||||
|
||||
uint8_t light_driver_get_saturation()
|
||||
uint8_t led_driver_get_saturation()
|
||||
{
|
||||
return current_HS.saturation;
|
||||
}
|
||||
|
||||
uint32_t light_driver_get_temperature()
|
||||
uint32_t led_driver_get_temperature()
|
||||
{
|
||||
return current_temp;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake)
|
||||
set(light_requires driver)
|
||||
if ("${light_type}" STREQUAL "ws2812")
|
||||
list(APPEND light_requires led_strip)
|
||||
elseif ("${light_type}" STREQUAL "vled")
|
||||
list(APPEND light_requires tft spidriver)
|
||||
endif()
|
||||
idf_component_register(SRC_DIRS ${light_type} utils
|
||||
INCLUDE_DIRS include
|
||||
PRIV_REQUIRES ${light_requires})
|
||||
Reference in New Issue
Block a user