diff --git a/components/drivers/include/drivers/sensor.h b/components/drivers/include/drivers/sensor.h index 49208c53c89c61586e8912a3a0898ab82e2149c8..11b4e00c24160c4f455b9e2ea15032b2fff3470d 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 0ce39bf5bd924aecb45a478081a830f63980a467..763de38cf2dcf169d4250281ceaa3e5ecba0fe96 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); }