115 lines
3.6 KiB
C
115 lines
3.6 KiB
C
/*
|
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
|
|
Unless required by applicable law or agreed to in writing, this
|
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
CONDITIONS OF ANY KIND, either express or implied.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <esp_err.h>
|
|
#include <esp_matter.h>
|
|
|
|
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
|
|
#include "esp_openthread_types.h"
|
|
#endif
|
|
|
|
/** Standard max values (used for remapping attributes) */
|
|
#define STANDARD_BRIGHTNESS 100
|
|
#define STANDARD_HUE 360
|
|
#define STANDARD_SATURATION 100
|
|
#define STANDARD_TEMPERATURE_FACTOR 1000000
|
|
|
|
/** Matter max values (used for remapping attributes) */
|
|
#define MATTER_BRIGHTNESS 254
|
|
#define MATTER_HUE 254
|
|
#define MATTER_SATURATION 254
|
|
#define MATTER_TEMPERATURE_FACTOR 1000000
|
|
|
|
/** Default attribute values used during initialization */
|
|
#define DEFAULT_POWER true
|
|
#define DEFAULT_BRIGHTNESS 64
|
|
#define DEFAULT_HUE 128
|
|
#define DEFAULT_SATURATION 254
|
|
|
|
typedef void *app_driver_handle_t;
|
|
|
|
/** Initialize the light driver
|
|
*
|
|
* This initializes the light driver associated with the selected board.
|
|
*
|
|
* @return Handle on success.
|
|
* @return NULL in case of failure.
|
|
*/
|
|
app_driver_handle_t app_driver_light_init();
|
|
|
|
app_driver_handle_t app_driver_rgb_light_init();
|
|
|
|
app_driver_handle_t app_driver_cct_light_init();
|
|
|
|
/** Initialize the button driver
|
|
*
|
|
* This initializes the button driver associated with the selected board.
|
|
*
|
|
* @return Handle on success.
|
|
* @return NULL in case of failure.
|
|
*/
|
|
app_driver_handle_t app_driver_button_init();
|
|
|
|
/** Enter ESP-NOW pairing mode
|
|
*
|
|
* Called from button long press callback to enter ESP-NOW pairing mode.
|
|
*/
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
void app_enter_espnow_pairing_mode();
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/** Driver Update
|
|
*
|
|
* This API should be called to update the driver for the attribute being updated.
|
|
* This is usually called from the common `app_attribute_update_cb()`.
|
|
*
|
|
* @param[in] endpoint_id Endpoint ID of the attribute.
|
|
* @param[in] cluster_id Cluster ID of the attribute.
|
|
* @param[in] attribute_id Attribute ID of the attribute.
|
|
* @param[in] val Pointer to `esp_matter_attr_val_t`. Use appropriate elements as per the value type.
|
|
*
|
|
* @return ESP_OK on success.
|
|
* @return error in case of failure.
|
|
*/
|
|
esp_err_t app_driver_attribute_update(app_driver_handle_t driver_handle, uint16_t endpoint_id, uint32_t cluster_id,
|
|
uint32_t attribute_id, esp_matter_attr_val_t *val);
|
|
|
|
/** Set defaults for light driver
|
|
*
|
|
* Set the attribute drivers to their default values from the created data model.
|
|
*
|
|
* @param[in] endpoint_id Endpoint ID of the driver.
|
|
*
|
|
* @return ESP_OK on success.
|
|
* @return error in case of failure.
|
|
*/
|
|
esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id);
|
|
|
|
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
|
|
#define ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG() \
|
|
{ \
|
|
.radio_mode = RADIO_MODE_NATIVE, \
|
|
}
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \
|
|
{ \
|
|
.host_connection_mode = HOST_CONNECTION_MODE_NONE, \
|
|
}
|
|
|
|
#define ESP_OPENTHREAD_DEFAULT_PORT_CONFIG() \
|
|
{ \
|
|
.storage_partition_name = "nvs", .netif_queue_size = 10, .task_queue_size = 10, \
|
|
}
|
|
#endif
|