mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 13:18:50 +08:00
driver/sensor: add struct file for all sensor_ops_s
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
parent
bb07354198
commit
2ae5a82607
7 changed files with 54 additions and 19 deletions
|
@ -160,10 +160,13 @@ static int bmp280_putreg8(FAR struct bmp280_dev_s *priv, uint8_t regaddr,
|
|||
/* Sensor methods */
|
||||
|
||||
static int bmp280_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us);
|
||||
static int bmp280_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
bool enable);
|
||||
static int bmp280_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen);
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -504,6 +507,7 @@ static uint32_t bmp280_compensate_press(FAR struct bmp280_dev_s *priv,
|
|||
****************************************************************************/
|
||||
|
||||
static int bmp280_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us)
|
||||
{
|
||||
FAR struct bmp280_dev_s *priv = container_of(lower,
|
||||
|
@ -557,6 +561,7 @@ static int bmp280_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int bmp280_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
bool enable)
|
||||
{
|
||||
FAR struct bmp280_dev_s *priv = container_of(lower,
|
||||
|
@ -591,6 +596,7 @@ static int bmp280_activate(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int bmp280_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen)
|
||||
{
|
||||
FAR struct bmp280_dev_s *priv = container_of(lower,
|
||||
|
|
|
@ -158,16 +158,20 @@ struct ds18b20_dev_s
|
|||
/* Sensor functions */
|
||||
|
||||
static int ds18b20_active(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
bool enabled);
|
||||
|
||||
static int ds18b20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen);
|
||||
|
||||
static int ds18b20_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
int cmd, unsigned long arg);
|
||||
|
||||
#ifdef CONFIG_SENSORS_DS18B20_POLL
|
||||
static int ds18b20_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us);
|
||||
#endif
|
||||
|
||||
|
@ -623,16 +627,18 @@ static int ds18b20_measure_read(FAR struct ds18b20_dev_s *dev,
|
|||
* conversion.
|
||||
*
|
||||
* Parameter:
|
||||
* lower - Pointer to lower half sensor driver instance
|
||||
* buffer - Pointer to the buffer for reading data
|
||||
* buflen - Size of the buffer
|
||||
* lower - Pointer to lower half sensor driver instance.
|
||||
* filep - The pointer of file, represents each user using the sensor.
|
||||
* buffer - Pointer to the buffer for reading data.
|
||||
* buflen - Size of the buffer.
|
||||
*
|
||||
* Return:
|
||||
* OK - on success
|
||||
****************************************************************************/
|
||||
|
||||
static int ds18b20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR char *buffer, size_t buflen)
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen)
|
||||
{
|
||||
int ret;
|
||||
struct ds18b20_sensor_data_s data;
|
||||
|
@ -673,7 +679,8 @@ static int ds18b20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int ds18b20_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
int cmd, unsigned long arg)
|
||||
FAR struct file *filep,
|
||||
int cmd, unsigned long arg)
|
||||
{
|
||||
int ret;
|
||||
struct ds18b20_dev_s *priv = (FAR struct ds18b20_dev_s *)lower;
|
||||
|
@ -740,6 +747,7 @@ static int ds18b20_control(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int ds18b20_active(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
bool enabled)
|
||||
{
|
||||
#ifdef CONFIG_SENSORS_DS18B20_POLL
|
||||
|
@ -778,7 +786,8 @@ static int ds18b20_active(FAR struct sensor_lowerhalf_s *lower,
|
|||
|
||||
#ifdef CONFIG_SENSORS_DS18B20_POLL
|
||||
static int ds18b20_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR unsigned long *period_us)
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us)
|
||||
{
|
||||
FAR struct ds18b20_dev_s *priv = (FAR struct ds18b20_dev_s *)lower;
|
||||
priv->interval = *period_us;
|
||||
|
|
|
@ -60,10 +60,12 @@ struct fakesensor_s
|
|||
****************************************************************************/
|
||||
|
||||
static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool sw);
|
||||
FAR struct file *filep, bool sw);
|
||||
static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us);
|
||||
static int fakesensor_batch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *latency_us);
|
||||
static void fakesensor_push_event(FAR struct sensor_lowerhalf_s *lower);
|
||||
static int fakesensor_thread(int argc, char** argv);
|
||||
|
@ -213,7 +215,8 @@ static inline void fakesensor_read_gps(FAR struct fakesensor_s *sensor)
|
|||
sizeof(struct sensor_gps));
|
||||
}
|
||||
|
||||
static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
|
||||
static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep, bool sw)
|
||||
{
|
||||
FAR struct fakesensor_s *sensor = container_of(lower,
|
||||
struct fakesensor_s, lower);
|
||||
|
@ -234,6 +237,7 @@ static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
|
|||
}
|
||||
|
||||
static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us)
|
||||
{
|
||||
FAR struct fakesensor_s *sensor = container_of(lower,
|
||||
|
@ -243,6 +247,7 @@ static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
|||
}
|
||||
|
||||
static int fakesensor_batch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *latency_us)
|
||||
{
|
||||
FAR struct fakesensor_s *sensor = container_of(lower,
|
||||
|
|
|
@ -110,16 +110,19 @@ struct hyt271_dev_s
|
|||
/* Sensor functions */
|
||||
|
||||
static int hyt271_active(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enabled);
|
||||
FAR struct file *filep, bool enabled);
|
||||
|
||||
static int hyt271_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen);
|
||||
|
||||
static int hyt271_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
int cmd, unsigned long arg);
|
||||
|
||||
#ifdef CONFIG_SENSORS_HYT271_POLL
|
||||
static int hyt271_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us);
|
||||
#endif
|
||||
|
||||
|
@ -601,15 +604,17 @@ err_unlock:
|
|||
* conversion.
|
||||
*
|
||||
* Parameter:
|
||||
* lower - Pointer to lower half sensor driver instance
|
||||
* buffer - Pointer to the buffer for reading data
|
||||
* buflen - Size of the buffer
|
||||
* lower - Pointer to lower half sensor driver instance.
|
||||
* filep - The pointer of file, represents each user using the sensor.
|
||||
* buffer - Pointer to the buffer for reading data.
|
||||
* buflen - Size of the buffer.
|
||||
*
|
||||
* Return:
|
||||
* OK - on success
|
||||
****************************************************************************/
|
||||
|
||||
static int hyt271_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen)
|
||||
{
|
||||
int ret;
|
||||
|
@ -664,6 +669,7 @@ static int hyt271_fetch(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int hyt271_control(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
int cmd, unsigned long arg)
|
||||
{
|
||||
int ret;
|
||||
|
@ -712,7 +718,7 @@ static int hyt271_control(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int hyt271_active(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enabled)
|
||||
FAR struct file *filep, bool enabled)
|
||||
{
|
||||
#ifdef CONFIG_SENSORS_HYT271_POLL
|
||||
bool start_thread = false;
|
||||
|
@ -751,6 +757,7 @@ static int hyt271_active(FAR struct sensor_lowerhalf_s *lower,
|
|||
|
||||
#ifdef CONFIG_SENSORS_HYT271_POLL
|
||||
static int hyt271_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us)
|
||||
{
|
||||
FAR struct hyt271_sensor_s *priv = (FAR struct hyt271_sensor_s *)lower;
|
||||
|
|
|
@ -91,11 +91,12 @@ static void l3gd20_read_temperature(FAR struct l3gd20_dev_s *dev,
|
|||
static int l3gd20_interrupt_handler(int irq, FAR void *context,
|
||||
FAR void *arg);
|
||||
static int l3gd20_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enable);
|
||||
FAR struct file *filep, bool enable);
|
||||
#if CONFIG_SENSORS_L3GD20_BUFFER_SIZE > 0
|
||||
static void l3gd20_worker(FAR void *arg);
|
||||
#else
|
||||
static int l3gd20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen);
|
||||
#endif
|
||||
|
||||
|
@ -403,6 +404,7 @@ static void l3gd20_worker(FAR void *arg)
|
|||
****************************************************************************/
|
||||
|
||||
static int l3gd20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR char *buffer, size_t buflen)
|
||||
{
|
||||
FAR struct l3gd20_dev_s *priv = container_of(lower,
|
||||
|
@ -427,7 +429,7 @@ static int l3gd20_fetch(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int l3gd20_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enable)
|
||||
FAR struct file *filep, bool enable)
|
||||
{
|
||||
FAR struct l3gd20_dev_s *priv = container_of(lower,
|
||||
FAR struct l3gd20_dev_s,
|
||||
|
|
|
@ -121,9 +121,10 @@ static unsigned long ms5611_curtime(void);
|
|||
/* Sensor methods */
|
||||
|
||||
static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us);
|
||||
static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enable);
|
||||
FAR struct file *filep, bool enable);
|
||||
|
||||
#if 0 /* Please read below */
|
||||
static int ms5611_fetch(FAR struct sensor_lowerhalf_s *lower,
|
||||
|
@ -540,6 +541,7 @@ static uint32_t ms5611_compensate_press(FAR struct ms5611_dev_s *priv,
|
|||
****************************************************************************/
|
||||
|
||||
static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *period_us)
|
||||
{
|
||||
FAR struct ms5611_dev_s *priv = container_of(lower,
|
||||
|
@ -555,7 +557,7 @@ static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
|||
****************************************************************************/
|
||||
|
||||
static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
bool enable)
|
||||
FAR struct file *filep, bool enable)
|
||||
{
|
||||
bool start_thread = false;
|
||||
struct ms5611_dev_s *priv = (FAR struct ms5611_dev_s *)lower;
|
||||
|
|
|
@ -95,8 +95,10 @@ struct wtgahrs2_dev_s
|
|||
* Private Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower, bool sw);
|
||||
static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep, bool sw);
|
||||
static int wtgahrs2_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *interval);
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -152,7 +154,8 @@ static void wtgahrs2_sendcmd(FAR struct wtgahrs2_dev_s *rtdata,
|
|||
usleep(10000);
|
||||
}
|
||||
|
||||
static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
|
||||
static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep, bool sw)
|
||||
{
|
||||
FAR struct wtgahrs2_sensor_s *dev = (FAR struct wtgahrs2_sensor_s *)lower;
|
||||
dev->enable = sw;
|
||||
|
@ -161,6 +164,7 @@ static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
|
|||
}
|
||||
|
||||
static int wtgahrs2_set_interval(FAR struct sensor_lowerhalf_s *lower,
|
||||
FAR struct file *filep,
|
||||
FAR unsigned long *interval)
|
||||
{
|
||||
FAR struct wtgahrs2_sensor_s *dev = (FAR struct wtgahrs2_sensor_s *)lower;
|
||||
|
|
Loading…
Reference in a new issue