Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
sensor.h File Reference

Public APIs for the sensor driver. More...

#include <zephyr/types.h>
#include <device.h>
#include <errno.h>
#include <syscalls/sensor.h>

Go to the source code of this file.

Data Structures

struct  sensor_value
 Representation of a sensor readout value. More...
 
struct  sensor_trigger
 Sensor trigger spec. More...
 
struct  sensor_driver_api
 

Macros

#define SENSOR_G   9806650LL
 The value of gravitational constant in micro m/s^2. More...
 
#define SENSOR_PI   3141592LL
 The value of constant PI in micros. More...
 

Typedefs

typedef void(* sensor_trigger_handler_t) (const struct device *dev, struct sensor_trigger *trigger)
 Callback API upon firing of a trigger. More...
 
typedef int(* sensor_attr_set_t) (const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, const struct sensor_value *val)
 Callback API upon setting a sensor's attributes. More...
 
typedef int(* sensor_attr_get_t) (const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, struct sensor_value *val)
 Callback API upon getting a sensor's attributes. More...
 
typedef int(* sensor_trigger_set_t) (const struct device *dev, const struct sensor_trigger *trig, sensor_trigger_handler_t handler)
 Callback API for setting a sensor's trigger and handler. More...
 
typedef int(* sensor_sample_fetch_t) (const struct device *dev, enum sensor_channel chan)
 Callback API for fetching data from a sensor. More...
 
typedef int(* sensor_channel_get_t) (const struct device *dev, enum sensor_channel chan, struct sensor_value *val)
 Callback API for getting a reading from a sensor. More...
 

Enumerations

enum  sensor_channel {
  SENSOR_CHAN_ACCEL_X , SENSOR_CHAN_ACCEL_Y , SENSOR_CHAN_ACCEL_Z , SENSOR_CHAN_ACCEL_XYZ ,
  SENSOR_CHAN_GYRO_X , SENSOR_CHAN_GYRO_Y , SENSOR_CHAN_GYRO_Z , SENSOR_CHAN_GYRO_XYZ ,
  SENSOR_CHAN_MAGN_X , SENSOR_CHAN_MAGN_Y , SENSOR_CHAN_MAGN_Z , SENSOR_CHAN_MAGN_XYZ ,
  SENSOR_CHAN_DIE_TEMP , SENSOR_CHAN_AMBIENT_TEMP , SENSOR_CHAN_PRESS , SENSOR_CHAN_PROX ,
  SENSOR_CHAN_HUMIDITY , SENSOR_CHAN_LIGHT , SENSOR_CHAN_IR , SENSOR_CHAN_RED ,
  SENSOR_CHAN_GREEN , SENSOR_CHAN_BLUE , SENSOR_CHAN_ALTITUDE , SENSOR_CHAN_PM_1_0 ,
  SENSOR_CHAN_PM_2_5 , SENSOR_CHAN_PM_10 , SENSOR_CHAN_DISTANCE , SENSOR_CHAN_CO2 ,
  SENSOR_CHAN_VOC , SENSOR_CHAN_GAS_RES , SENSOR_CHAN_VOLTAGE , SENSOR_CHAN_CURRENT ,
  SENSOR_CHAN_POWER , SENSOR_CHAN_RESISTANCE , SENSOR_CHAN_ROTATION , SENSOR_CHAN_POS_DX ,
  SENSOR_CHAN_POS_DY , SENSOR_CHAN_POS_DZ , SENSOR_CHAN_RPM , SENSOR_CHAN_GAUGE_VOLTAGE ,
  SENSOR_CHAN_GAUGE_AVG_CURRENT , SENSOR_CHAN_GAUGE_STDBY_CURRENT , SENSOR_CHAN_GAUGE_MAX_LOAD_CURRENT , SENSOR_CHAN_GAUGE_TEMP ,
  SENSOR_CHAN_GAUGE_STATE_OF_CHARGE , SENSOR_CHAN_GAUGE_FULL_CHARGE_CAPACITY , SENSOR_CHAN_GAUGE_REMAINING_CHARGE_CAPACITY , SENSOR_CHAN_GAUGE_NOM_AVAIL_CAPACITY ,
  SENSOR_CHAN_GAUGE_FULL_AVAIL_CAPACITY , SENSOR_CHAN_GAUGE_AVG_POWER , SENSOR_CHAN_GAUGE_STATE_OF_HEALTH , SENSOR_CHAN_GAUGE_TIME_TO_EMPTY ,
  SENSOR_CHAN_GAUGE_TIME_TO_FULL , SENSOR_CHAN_GAUGE_CYCLE_COUNT , SENSOR_CHAN_GAUGE_DESIGN_VOLTAGE , SENSOR_CHAN_GAUGE_DESIRED_VOLTAGE ,
  SENSOR_CHAN_GAUGE_DESIRED_CHARGING_CURRENT , SENSOR_CHAN_ALL , SENSOR_CHAN_COMMON_COUNT , SENSOR_CHAN_PRIV_START = SENSOR_CHAN_COMMON_COUNT ,
  SENSOR_CHAN_MAX = INT16_MAX
}
 Sensor channels. More...
 
enum  sensor_trigger_type {
  SENSOR_TRIG_TIMER , SENSOR_TRIG_DATA_READY , SENSOR_TRIG_DELTA , SENSOR_TRIG_NEAR_FAR ,
  SENSOR_TRIG_THRESHOLD , SENSOR_TRIG_TAP , SENSOR_TRIG_DOUBLE_TAP , SENSOR_TRIG_FREEFALL ,
  SENSOR_TRIG_COMMON_COUNT , SENSOR_TRIG_PRIV_START = SENSOR_TRIG_COMMON_COUNT , SENSOR_TRIG_MAX = INT16_MAX
}
 Sensor trigger types. More...
 
enum  sensor_attribute {
  SENSOR_ATTR_SAMPLING_FREQUENCY , SENSOR_ATTR_LOWER_THRESH , SENSOR_ATTR_UPPER_THRESH , SENSOR_ATTR_SLOPE_TH ,
  SENSOR_ATTR_SLOPE_DUR , SENSOR_ATTR_HYSTERESIS , SENSOR_ATTR_OVERSAMPLING , SENSOR_ATTR_FULL_SCALE ,
  SENSOR_ATTR_OFFSET , SENSOR_ATTR_CALIB_TARGET , SENSOR_ATTR_CONFIGURATION , SENSOR_ATTR_CALIBRATION ,
  SENSOR_ATTR_FEATURE_MASK , SENSOR_ATTR_ALERT , SENSOR_ATTR_COMMON_COUNT , SENSOR_ATTR_PRIV_START = SENSOR_ATTR_COMMON_COUNT ,
  SENSOR_ATTR_MAX = INT16_MAX
}
 Sensor attribute types. More...
 

Functions

int sensor_attr_set (const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, const struct sensor_value *val)
 Set an attribute for a sensor. More...
 
int sensor_attr_get (const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, struct sensor_value *val)
 Get an attribute for a sensor. More...
 
static int sensor_trigger_set (const struct device *dev, struct sensor_trigger *trig, sensor_trigger_handler_t handler)
 Activate a sensor's trigger and set the trigger handler. More...
 
int sensor_sample_fetch (const struct device *dev)
 Fetch a sample from the sensor and store it in an internal driver buffer. More...
 
int sensor_sample_fetch_chan (const struct device *dev, enum sensor_channel type)
 Fetch a sample from the sensor and store it in an internal driver buffer. More...
 
int sensor_channel_get (const struct device *dev, enum sensor_channel chan, struct sensor_value *val)
 Get a reading from a sensor device. More...
 
static int32_t sensor_ms2_to_g (const struct sensor_value *ms2)
 Helper function to convert acceleration from m/s^2 to Gs. More...
 
static void sensor_g_to_ms2 (int32_t g, struct sensor_value *ms2)
 Helper function to convert acceleration from Gs to m/s^2. More...
 
static int32_t sensor_rad_to_degrees (const struct sensor_value *rad)
 Helper function for converting radians to degrees. More...
 
static void sensor_degrees_to_rad (int32_t d, struct sensor_value *rad)
 Helper function for converting degrees to radians. More...
 
static double sensor_value_to_double (const struct sensor_value *val)
 Helper function for converting struct sensor_value to double. More...
 
static void sensor_value_from_double (struct sensor_value *val, double inp)
 Helper function for converting double to struct sensor_value. More...
 

Detailed Description

Public APIs for the sensor driver.