app_driver: Using app_driver_handle_t instead of void pointer.

This commit is contained in:
Chirag Atal
2022-08-04 13:55:48 +05:30
parent 4b47bf9819
commit 70ffba8cc6
9 changed files with 47 additions and 38 deletions
+7 -7
View File
@@ -70,12 +70,12 @@ static void app_driver_button_toggle_cb(void *arg)
attribute::update(endpoint_id, cluster_id, attribute_id, &val);
}
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data)
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)
{
esp_err_t err = ESP_OK;
if (endpoint_id == light_endpoint_id) {
led_driver_handle_t handle = (led_driver_handle_t)priv_data;
led_driver_handle_t handle = (led_driver_handle_t)driver_handle;
if (cluster_id == OnOff::Id) {
if (attribute_id == OnOff::Attributes::OnOff::Id) {
err = app_driver_light_set_power(handle, val);
@@ -145,19 +145,19 @@ esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id)
return err;
}
void *app_driver_light_init()
app_driver_handle_t app_driver_light_init()
{
/* Initialize led */
led_driver_config_t config = led_driver_get_config();
led_driver_handle_t handle = led_driver_init(&config);
return (void *)handle;
return (app_driver_handle_t)handle;
}
void *app_driver_button_init()
app_driver_handle_t app_driver_button_init()
{
/* Initialize button */
button_config_t config = button_driver_get_config();
button_handle_t handle = iot_button_create(&config);
iot_button_register_cb(handle, BUTTON_PRESS_DOWN, app_driver_button_toggle_cb);
return (void *)handle;
return (app_driver_handle_t)handle;
}
+4 -3
View File
@@ -60,7 +60,8 @@ static esp_err_t app_attribute_update_cb(attribute::callback_type_t type, uint16
if (type == PRE_UPDATE) {
/* Driver update */
err = app_driver_attribute_update(endpoint_id, cluster_id, attribute_id, val, priv_data);
app_driver_handle_t driver_handle = (app_driver_handle_t)priv_data;
err = app_driver_attribute_update(driver_handle, endpoint_id, cluster_id, attribute_id, val);
}
return err;
@@ -74,8 +75,8 @@ extern "C" void app_main()
nvs_flash_init();
/* Initialize driver */
void *light_handle = app_driver_light_init();
void *button_handle = app_driver_button_init();
app_driver_handle_t light_handle = app_driver_light_init();
app_driver_handle_t button_handle = app_driver_button_init();
app_reset_button_register(button_handle);
/* Create a Matter node */
+6 -4
View File
@@ -29,6 +29,8 @@
#define DEFAULT_HUE 128
#define DEFAULT_SATURATION 255
typedef void *app_driver_handle_t;
/** Initialize the light driver
*
* This initializes the light driver associated with the selected board.
@@ -36,7 +38,7 @@
* @return Handle on success.
* @return NULL in case of failure.
*/
void *app_driver_light_init();
app_driver_handle_t app_driver_light_init();
/** Initialize the button driver
*
@@ -45,7 +47,7 @@ void *app_driver_light_init();
* @return Handle on success.
* @return NULL in case of failure.
*/
void *app_driver_button_init();
app_driver_handle_t app_driver_button_init();
/** Driver Update
*
@@ -60,8 +62,8 @@ void *app_driver_button_init();
* @return ESP_OK on success.
* @return error in case of failure.
*/
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data);
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
*
+4 -4
View File
@@ -129,14 +129,14 @@ static void app_driver_button_toggle_cb(void *arg)
lock::chip_stack_unlock();
}
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data)
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)
{
/* Nothing to do here */
return ESP_OK;
}
void *app_driver_switch_init()
app_driver_handle_t app_driver_switch_init()
{
/* Initialize button */
button_config_t config = button_driver_get_config();
@@ -147,5 +147,5 @@ void *app_driver_switch_init()
app_driver_register_commands();
client::set_command_callback(app_driver_client_command_callback, NULL);
return (void *)handle;
return (app_driver_handle_t)handle;
}
+3 -2
View File
@@ -59,7 +59,8 @@ static esp_err_t app_attribute_update_cb(callback_type_t type, uint16_t endpoint
if (type == PRE_UPDATE) {
/* Driver update */
err = app_driver_attribute_update(endpoint_id, cluster_id, attribute_id, val, priv_data);
app_driver_handle_t driver_handle = (app_driver_handle_t)priv_data;
err = app_driver_attribute_update(driver_handle, endpoint_id, cluster_id, attribute_id, val);
}
return err;
@@ -73,7 +74,7 @@ extern "C" void app_main()
nvs_flash_init();
/* Initialize driver */
void *switch_handle = app_driver_switch_init();
app_driver_handle_t switch_handle = app_driver_switch_init();
app_reset_button_register(switch_handle);
/* Create a Matter node */
+5 -3
View File
@@ -11,6 +11,8 @@
#include <esp_err.h>
#include <esp_matter.h>
typedef void *app_driver_handle_t;
/** Initialize the switch driver
*
* This initializes the switch driver associated with the selected board.
@@ -18,7 +20,7 @@
* @return Handle on success.
* @return NULL in case of failure.
*/
void *app_driver_switch_init();
app_driver_handle_t app_driver_switch_init();
/** Driver Update
*
@@ -33,5 +35,5 @@ void *app_driver_switch_init();
* @return ESP_OK on success.
* @return error in case of failure.
*/
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data);
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);
+8 -8
View File
@@ -22,7 +22,7 @@ using namespace esp_matter;
static const char *TAG = "app_driver";
extern uint16_t light_endpoint_id;
extern void *light_handle;
extern app_driver_handle_t light_handle;
/* Do any conversions/remapping for the actual value here */
static esp_err_t app_driver_light_set_power(led_driver_handle_t handle, esp_matter_attr_val_t *val)
@@ -68,12 +68,12 @@ static void app_driver_button_toggle_cb(void *arg)
attribute::update(endpoint_id, cluster_id, attribute_id, &val);
}
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data)
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)
{
esp_err_t err = ESP_OK;
if (endpoint_id == light_endpoint_id) {
led_driver_handle_t handle = (led_driver_handle_t)priv_data;
led_driver_handle_t handle = (led_driver_handle_t)driver_handle;
if (cluster_id == OnOff::Id) {
if (attribute_id == OnOff::Attributes::OnOff::Id) {
err = app_driver_light_set_power(handle, val);
@@ -150,19 +150,19 @@ esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id)
return err;
}
void *app_driver_light_init()
app_driver_handle_t app_driver_light_init()
{
/* Initialize led */
led_driver_config_t config = led_driver_get_config();
led_driver_handle_t handle = led_driver_init(&config);
return (void *)handle;
return (app_driver_handle_t)handle;
}
void *app_driver_button_init()
app_driver_handle_t app_driver_button_init()
{
/* Initialize button */
button_config_t config = button_driver_get_config();
button_handle_t handle = iot_button_create(&config);
iot_button_register_cb(handle, BUTTON_PRESS_DOWN, app_driver_button_toggle_cb);
return (void *)handle;
return (app_driver_handle_t)handle;
}
+4 -3
View File
@@ -23,7 +23,7 @@ using namespace esp_matter::attribute;
static const char *TAG = "app_main";
uint16_t light_endpoint_id = 0;
void *light_handle = NULL;
app_driver_handle_t light_handle = NULL;
static void app_event_cb(const ChipDeviceEvent *event, intptr_t arg)
{
@@ -51,7 +51,8 @@ static esp_err_t app_attribute_update_cb(callback_type_t type, uint16_t endpoint
if (type == PRE_UPDATE) {
/* Driver update */
err = app_driver_attribute_update(endpoint_id, cluster_id, attribute_id, val, light_handle);
app_driver_handle_t driver_handle = light_handle;
err = app_driver_attribute_update(driver_handle, endpoint_id, cluster_id, attribute_id, val);
}
return err;
@@ -66,7 +67,7 @@ extern "C" void app_main()
/* Initialize driver */
light_handle = app_driver_light_init();
void *button_handle = app_driver_button_init();
app_driver_handle_t button_handle = app_driver_button_init();
app_reset_button_register(button_handle);
/* Initialize matter callback */
+6 -4
View File
@@ -23,6 +23,8 @@
#define MATTER_SATURATION 255
#define MATTER_TEMPERATURE_FACTOR 1000000
typedef void *app_driver_handle_t;
/** Initialize the light driver
*
* This initializes the light driver associated with the selected board.
@@ -30,7 +32,7 @@
* @return Handle on success.
* @return NULL in case of failure.
*/
void *app_driver_light_init();
app_driver_handle_t app_driver_light_init();
/** Initialize the button driver
*
@@ -39,7 +41,7 @@ void *app_driver_light_init();
* @return Handle on success.
* @return NULL in case of failure.
*/
void *app_driver_button_init();
app_driver_handle_t app_driver_button_init();
/** Driver Update
*
@@ -54,8 +56,8 @@ void *app_driver_button_init();
* @return ESP_OK on success.
* @return error in case of failure.
*/
esp_err_t app_driver_attribute_update(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
esp_matter_attr_val_t *val, void *priv_data);
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
*