diff options
| author | yiyi <[email protected]> | 2024-04-30 05:54:13 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-29 17:54:13 -0400 |
| commit | 4c9d3be98acafeebe1d530bdb8f71222706ef4ad (patch) | |
| tree | 7a2578ccd4a239eac39f4d0a2ba780eab8955653 /components | |
| parent | a92f971267d4062aee783af0c2b47e68a6383bdc (diff) | |
[components][drivers] added sensor device lookup function
Diffstat (limited to 'components')
| -rw-r--r-- | components/drivers/include/drivers/sensor_v2.h | 1 | ||||
| -rw-r--r-- | components/drivers/sensor/v2/sensor.c | 23 |
2 files changed, 23 insertions, 1 deletions
diff --git a/components/drivers/include/drivers/sensor_v2.h b/components/drivers/include/drivers/sensor_v2.h index 72044a3ee2..d90cef89c7 100644 --- a/components/drivers/include/drivers/sensor_v2.h +++ b/components/drivers/include/drivers/sensor_v2.h @@ -398,6 +398,7 @@ int rt_hw_sensor_register(rt_sensor_t sensor, const char *name, rt_uint32_t flag, void *data); +rt_sensor_t rt_sensor_device_find(const char *name); #ifdef __cplusplus } diff --git a/components/drivers/sensor/v2/sensor.c b/components/drivers/sensor/v2/sensor.c index a35089ad34..ce481c9e2e 100644 --- a/components/drivers/sensor/v2/sensor.c +++ b/components/drivers/sensor/v2/sensor.c @@ -41,7 +41,8 @@ static char *const sensor_name_str[] = "sp-", /* SpO2 sensor */ "ia-", /* IAQ sensor */ "et-", /* EtOH sensor */ - "bp-" /* Blood Pressure */ + "bp-", /* Blood Pressure */ + RT_NULL }; /* sensor interrupt handler function */ @@ -519,3 +520,23 @@ int rt_hw_sensor_register(rt_sensor_t sensor, return RT_EOK; } + +rt_sensor_t rt_sensor_device_find(const char *name) +{ + rt_uint8_t index; + char device_name[RT_NAME_MAX]; + rt_device_t device; + + for (index = 0; sensor_name_str[index] != RT_NULL; index++) + { + rt_memset(device_name, 0, sizeof(device_name)); + rt_snprintf(device_name, sizeof(device_name), "%s%s", sensor_name_str[index], name); + device = rt_device_find(device_name); + if (device != RT_NULL) + { + return (rt_sensor_t)device; + } + } + + return RT_NULL; +} |
