Browse Source

[sensor] 修改fetch_data方法的参数数据类型为rt_sensor_data_t

Meco Man 2 years ago
parent
commit
f57eb4feb5

+ 3 - 2
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);
 };
 

+ 4 - 4
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);
         }