mirror of
https://github.com/espressif/esp-rainmaker.git
synced 2026-01-14 21:59:00 +00:00
Merge branch 'task/get_device' into 'master'
esp_rmaker_core: Added a get_device_by_name API similar to params See merge request app-frameworks/esp-rainmaker!257
This commit is contained in:
@@ -518,6 +518,18 @@ esp_err_t esp_rmaker_node_add_device(const esp_rmaker_node_t *node, const esp_rm
|
||||
*/
|
||||
esp_err_t esp_rmaker_node_remove_device(const esp_rmaker_node_t *node, const esp_rmaker_device_t *device);
|
||||
|
||||
/** Get device by name
|
||||
*
|
||||
* Get handle for a device based on the name.
|
||||
*
|
||||
* @param[in] node Node handle.
|
||||
* @param[in] device_name Device name to search.
|
||||
*
|
||||
* @return Device handle on success.
|
||||
* @return NULL in case of failure.
|
||||
*/
|
||||
esp_rmaker_device_t *esp_rmaker_node_get_device_by_name(const esp_rmaker_node_t *node, const char *device_name);
|
||||
|
||||
/** Add a Device attribute
|
||||
*
|
||||
* @note Device attributes are reported only once after a boot-up as part of the node
|
||||
|
||||
@@ -271,6 +271,22 @@ esp_err_t esp_rmaker_node_remove_device(const esp_rmaker_node_t *node, const esp
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_rmaker_device_t *esp_rmaker_node_get_device_by_name(const esp_rmaker_node_t *node, const char *device_name)
|
||||
{
|
||||
if (!node || !device_name) {
|
||||
ESP_LOGE(TAG, "Node handle or device name cannot be NULL");
|
||||
return NULL;
|
||||
}
|
||||
_esp_rmaker_device_t *device = ((_esp_rmaker_node_t *)node)->devices;
|
||||
while(device) {
|
||||
if (strcmp(device->name, device_name) == 0) {
|
||||
break;
|
||||
}
|
||||
device = device->next;
|
||||
}
|
||||
return (esp_rmaker_device_t *)device;
|
||||
}
|
||||
|
||||
_esp_rmaker_device_t *esp_rmaker_node_get_first_device(const esp_rmaker_node_t *node)
|
||||
{
|
||||
_esp_rmaker_node_t *_node = (_esp_rmaker_node_t *)node;
|
||||
|
||||
Reference in New Issue
Block a user