10
10
#include < stdlib.h>
11
11
#include < string.h>
12
12
13
+ #include < device.h>
13
14
#include < esp_matter.h>
14
- #include " bsp/esp-bsp.h "
15
+ #include < led_driver.h >
15
16
16
17
#include < app_priv.h>
17
18
@@ -22,70 +23,33 @@ static const char *TAG = "app_driver";
22
23
extern uint16_t light_endpoint_id;
23
24
24
25
/* Do any conversions/remapping for the actual value here */
25
- static esp_err_t app_driver_light_set_power (led_indicator_handle_t handle, esp_matter_attr_val_t *val)
26
+ static esp_err_t app_driver_light_set_power (led_driver_handle_t handle, esp_matter_attr_val_t *val)
26
27
{
27
- #if CONFIG_BSP_LEDS_NUM > 0
28
- esp_err_t err = ESP_OK;
29
- if (val->val .b ) {
30
- err = led_indicator_start (handle, BSP_LED_ON);
31
- } else {
32
- err = led_indicator_start (handle, BSP_LED_OFF);
33
- }
34
- return err;
35
- #else
36
- ESP_LOGI (TAG, " LED set power: %d" , val->val .b );
37
- return ESP_OK;
38
- #endif
28
+ return led_driver_set_power (handle, val->val .b );
39
29
}
40
30
41
- static esp_err_t app_driver_light_set_brightness (led_indicator_handle_t handle, esp_matter_attr_val_t *val)
31
+ static esp_err_t app_driver_light_set_brightness (led_driver_handle_t handle, esp_matter_attr_val_t *val)
42
32
{
43
33
int value = REMAP_TO_RANGE (val->val .u8 , MATTER_BRIGHTNESS, STANDARD_BRIGHTNESS);
44
- #if CONFIG_BSP_LEDS_NUM > 0
45
- return led_indicator_set_brightness (handle, value);
46
- #else
47
- ESP_LOGI (TAG, " LED set brightness: %d" , value);
48
- return ESP_OK;
49
- #endif
34
+ return led_driver_set_brightness (handle, value);
50
35
}
51
36
52
- static esp_err_t app_driver_light_set_hue (led_indicator_handle_t handle, esp_matter_attr_val_t *val)
37
+ static esp_err_t app_driver_light_set_hue (led_driver_handle_t handle, esp_matter_attr_val_t *val)
53
38
{
54
39
int value = REMAP_TO_RANGE (val->val .u8 , MATTER_HUE, STANDARD_HUE);
55
- #if CONFIG_BSP_LEDS_NUM > 0
56
- led_indicator_ihsv_t hsv;
57
- hsv.value = led_indicator_get_hsv (handle);
58
- hsv.h = value;
59
- return led_indicator_set_hsv (handle, hsv.value );
60
- #else
61
- ESP_LOGI (TAG, " LED set hue: %d" , value);
62
- return ESP_OK;
63
- #endif
40
+ return led_driver_set_hue (handle, value);
64
41
}
65
42
66
- static esp_err_t app_driver_light_set_saturation (led_indicator_handle_t handle, esp_matter_attr_val_t *val)
43
+ static esp_err_t app_driver_light_set_saturation (led_driver_handle_t handle, esp_matter_attr_val_t *val)
67
44
{
68
45
int value = REMAP_TO_RANGE (val->val .u8 , MATTER_SATURATION, STANDARD_SATURATION);
69
- #if CONFIG_BSP_LEDS_NUM > 0
70
- led_indicator_ihsv_t hsv;
71
- hsv.value = led_indicator_get_hsv (handle);
72
- hsv.s = value;
73
- return led_indicator_set_hsv (handle, hsv.value );
74
- #else
75
- ESP_LOGI (TAG, " LED set saturation: %d" , value);
76
- return ESP_OK;
77
- #endif
46
+ return led_driver_set_saturation (handle, value);
78
47
}
79
48
80
- static esp_err_t app_driver_light_set_temperature (led_indicator_handle_t handle, esp_matter_attr_val_t *val)
49
+ static esp_err_t app_driver_light_set_temperature (led_driver_handle_t handle, esp_matter_attr_val_t *val)
81
50
{
82
51
uint32_t value = REMAP_TO_RANGE_INVERSE (val->val .u16 , STANDARD_TEMPERATURE_FACTOR);
83
- #if CONFIG_BSP_LEDS_NUM > 0
84
- return led_indicator_set_color_temperature (handle, value);
85
- #else
86
- ESP_LOGI (TAG, " LED set temperature: %ld" , value);
87
- return ESP_OK;
88
- #endif
52
+ return led_driver_set_temperature (handle, value);
89
53
}
90
54
91
55
static void app_driver_button_toggle_cb (void *arg, void *data)
@@ -108,7 +72,7 @@ esp_err_t app_driver_attribute_update(app_driver_handle_t driver_handle, uint16_
108
72
{
109
73
esp_err_t err = ESP_OK;
110
74
if (endpoint_id == light_endpoint_id) {
111
- led_indicator_handle_t handle = (led_indicator_handle_t )driver_handle;
75
+ led_driver_handle_t handle = (led_driver_handle_t )driver_handle;
112
76
if (cluster_id == OnOff::Id) {
113
77
if (attribute_id == OnOff::Attributes::OnOff::Id) {
114
78
err = app_driver_light_set_power (handle, val);
@@ -134,7 +98,7 @@ esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id)
134
98
{
135
99
esp_err_t err = ESP_OK;
136
100
void *priv_data = endpoint::get_priv_data (endpoint_id);
137
- led_indicator_handle_t handle = (led_indicator_handle_t )priv_data;
101
+ led_driver_handle_t handle = (led_driver_handle_t )priv_data;
138
102
esp_matter_attr_val_t val = esp_matter_invalid (NULL );
139
103
140
104
/* Setting brightness */
@@ -173,24 +137,17 @@ esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id)
173
137
174
138
app_driver_handle_t app_driver_light_init ()
175
139
{
176
- #if CONFIG_BSP_LEDS_NUM > 0
177
140
/* Initialize led */
178
- led_indicator_handle_t leds[CONFIG_BSP_LEDS_NUM];
179
- ESP_ERROR_CHECK (bsp_led_indicator_create (leds, NULL , CONFIG_BSP_LEDS_NUM));
180
- led_indicator_set_hsv (leds[0 ], SET_HSV (DEFAULT_HUE, DEFAULT_SATURATION, DEFAULT_BRIGHTNESS));
181
-
182
- return (app_driver_handle_t )leds[0 ];
183
- #else
184
- return NULL ;
185
- #endif
141
+ led_driver_config_t config = led_driver_get_config ();
142
+ led_driver_handle_t handle = led_driver_init (&config);
143
+ return (app_driver_handle_t )handle;
186
144
}
187
145
188
146
app_driver_handle_t app_driver_button_init ()
189
147
{
190
148
/* Initialize button */
191
- button_handle_t btns[BSP_BUTTON_NUM];
192
- ESP_ERROR_CHECK (bsp_iot_button_create (btns, NULL , BSP_BUTTON_NUM));
193
- ESP_ERROR_CHECK (iot_button_register_cb (btns[0 ], BUTTON_PRESS_DOWN, app_driver_button_toggle_cb, NULL ));
194
-
195
- return (app_driver_handle_t )btns[0 ];
149
+ button_config_t config = button_driver_get_config ();
150
+ button_handle_t handle = iot_button_create (&config);
151
+ iot_button_register_cb (handle, BUTTON_PRESS_DOWN, app_driver_button_toggle_cb, NULL );
152
+ return (app_driver_handle_t )handle;
196
153
}
0 commit comments