Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions drivers/sensors/gnss_uorb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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 =
Expand Down Expand Up @@ -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)
{
Expand Down
23 changes: 23 additions & 0 deletions include/nuttx/sensors/gnss.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
****************************************************************************/

#include <nuttx/fs/fs.h>
#include <nuttx/sensors/sensor.h>

/****************************************************************************
* Pre-processor Definitions
Expand Down Expand Up @@ -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
*
Expand Down
Loading