mirror of
https://github.com/apache/nuttx.git
synced 2026-05-30 05:16:47 +08:00
drivers/sensors: add get_info interface for gnss_uorb
Implement gnss_get_info callback function to support device information query for GNSS sensor devices through the sensor framework. Signed-off-by: chenzihan1 <chenzihan1@xiaomi.com>
This commit is contained in:
@@ -110,6 +110,9 @@ static int gnss_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR uint32_t *interval);
|
||||
static int gnss_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep, int cmd, unsigned long arg);
|
||||
static int gnss_get_info(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR struct sensor_device_info_s *info);
|
||||
|
||||
static int gnss_open(FAR struct file *filep);
|
||||
static int gnss_close(FAR struct file *filep);
|
||||
@@ -131,6 +134,7 @@ static const struct sensor_ops_s g_gnss_sensor_ops =
|
||||
.activate = gnss_activate,
|
||||
.set_interval = gnss_set_interval,
|
||||
.control = gnss_control,
|
||||
.get_info = gnss_get_info,
|
||||
};
|
||||
|
||||
static const struct file_operations g_gnss_fops =
|
||||
@@ -205,6 +209,21 @@ static int gnss_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
return upper->lower->ops->set_interval(upper->lower, filep, interval);
|
||||
}
|
||||
|
||||
static int gnss_get_info(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR struct sensor_device_info_s *info)
|
||||
{
|
||||
FAR struct gnss_sensor_s *dev = (FAR struct gnss_sensor_s *)lower;
|
||||
FAR struct gnss_upperhalf_s *upper = dev->upper;
|
||||
|
||||
if (upper->lower->ops->get_info == NULL)
|
||||
{
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
return upper->lower->ops->get_info(upper->lower, filep, info);
|
||||
}
|
||||
|
||||
static int gnss_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep, int cmd, unsigned long arg)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/fs/fs.h>
|
||||
#include <nuttx/sensors/sensor.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -99,6 +100,28 @@ struct gnss_ops_s
|
||||
FAR struct file *filep,
|
||||
FAR uint32_t *period_us);
|
||||
|
||||
/**************************************************************************
|
||||
* Name: get_info
|
||||
*
|
||||
* With this method, the user can obtain information about the current
|
||||
* device. The name and vendor information cannot exceed
|
||||
* SENSOR_INFO_NAME_SIZE.
|
||||
*
|
||||
* Input Parameters:
|
||||
* lower - The instance of lower half sensor driver.
|
||||
* filep - The pointer of file, represents each user using sensor.
|
||||
* info - Device information structure pointer.
|
||||
*
|
||||
* Returned Value:
|
||||
* Zero (OK) on success; a negated errno value on failure.
|
||||
* -ENOTTY - The cmd don't support.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
CODE int (*get_info)(FAR struct gnss_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR struct sensor_device_info_s *info);
|
||||
|
||||
/**************************************************************************
|
||||
* Name: control
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user