summaryrefslogtreecommitdiff
path: root/components/drivers/sensor
diff options
context:
space:
mode:
authoryiyi <[email protected]>2024-04-30 05:54:13 +0800
committerGitHub <[email protected]>2024-04-29 17:54:13 -0400
commit4c9d3be98acafeebe1d530bdb8f71222706ef4ad (patch)
tree7a2578ccd4a239eac39f4d0a2ba780eab8955653 /components/drivers/sensor
parenta92f971267d4062aee783af0c2b47e68a6383bdc (diff)
[components][drivers] added sensor device lookup function
Diffstat (limited to 'components/drivers/sensor')
-rw-r--r--components/drivers/sensor/v2/sensor.c23
1 files changed, 22 insertions, 1 deletions
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;
+}