From f57eb4feb5ee4856299058058eff15593ac0570d Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Tue, 8 Nov 2022 22:50:27 -0500 Subject: [PATCH] =?UTF-8?q?[sensor]=20=E4=BF=AE=E6=94=B9fetch=5Fdata?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E7=9A=84=E5=8F=82=E6=95=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BArt=5Fsensor=5Fdata=5Ft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/include/drivers/sensor.h | 5 +++-- components/drivers/sensors/sensor.c | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/components/drivers/include/drivers/sensor.h b/components/drivers/include/drivers/sensor.h index 49208c53c8..11b4e00c24 100644 --- a/components/drivers/include/drivers/sensor.h +++ b/components/drivers/include/drivers/sensor.h @@ -160,6 +160,7 @@ struct rt_sensor_config }; typedef struct rt_sensor_device *rt_sensor_t; +typedef struct rt_sensor_data *rt_sensor_data_t; struct rt_sensor_device { @@ -168,7 +169,7 @@ struct rt_sensor_device struct rt_sensor_info info; /* The sensor info data */ struct rt_sensor_config config; /* The sensor config data */ - void *data_buf; /* The buf of the data received */ + rt_sensor_data_t data_buf; /* The buf of the data received */ rt_size_t data_len; /* The size of the data received */ const struct rt_sensor_ops *ops; /* The sensor ops */ @@ -238,7 +239,7 @@ struct rt_sensor_data struct rt_sensor_ops { - rt_ssize_t (*fetch_data)(rt_sensor_t sensor, void *buf, rt_size_t len); + rt_ssize_t (*fetch_data)(rt_sensor_t sensor, rt_sensor_data_t buf, rt_size_t len); rt_err_t (*control)(rt_sensor_t sensor, int cmd, void *arg); }; diff --git a/components/drivers/sensors/sensor.c b/components/drivers/sensors/sensor.c index 0ce39bf5bd..763de38cf2 100644 --- a/components/drivers/sensors/sensor.c +++ b/components/drivers/sensors/sensor.c @@ -123,7 +123,7 @@ static rt_err_t _sensor_irq_init(rt_sensor_t sensor) } /* sensor local ops */ -static rt_ssize_t _local_fetch_data(rt_sensor_t sensor, void *buf, rt_size_t len) +static rt_ssize_t _local_fetch_data(rt_sensor_t sensor, rt_sensor_data_t buf, rt_size_t len) { LOG_D("Undefined fetch_data"); return -RT_EINVAL; @@ -250,7 +250,7 @@ static rt_err_t _sensor_close(rt_device_t dev) /* Free memory for the sensor buffer */ for (i = 0; i < sensor->module->sen_num; i ++) { - if (sensor->module->sen[i]->data_buf != RT_NULL) + if (sensor->module->sen[i]->data_buf) { rt_free(sensor->module->sen[i]->data_buf); sensor->module->sen[i]->data_buf = RT_NULL; @@ -307,8 +307,8 @@ static rt_size_t _sensor_read(rt_device_t dev, rt_off_t pos, void *buf, rt_size_ } else { - /* If the buffer is empty read the data */ - if (sensor->ops->fetch_data != RT_NULL) + /* If the buffer is empty, read the data */ + if (sensor->ops->fetch_data) { result = sensor->ops->fetch_data(sensor, buf, len); } -- GitLab