7#ifndef ZEPHYR_INCLUDE_SENSING_SENSOR_H_
8#define ZEPHYR_INCLUDE_SENSING_SENSOR_H_
109#define SENSING_SENSOR_DT_DEFINE(node_id, reg_ptr, ctx_ptr, api_ptr) \
110 static struct sensing_sensor_ctx \
111 _CONCAT(__sensing_sensor_ctx_, Z_DEVICE_DT_DEV_ID(node_id)) = { \
112 .register_info = reg_ptr, \
113 .sensor_ctx_ptr = ctx_ptr, \
115 DEVICE_DT_DEFINE(node_id, sensing_sensor_dev_init, NULL, \
116 &_CONCAT(__sensing_sensor_ctx_, Z_DEVICE_DT_DEV_ID(node_id)), \
117 NULL, POST_KERNEL, 99, api_ptr)
159 void *buf,
int size);
178 const struct device *dev,
int type,
179 const int *reporter_handles,
int max_handles);
191 const struct device *dev,
int type);
214 const struct device *dev);
226 const struct device *dev,
bool data_ready);
269 const struct device *dev);
285 const struct device *dev);
305 void *buf,
int size);
328 void *buf,
int size);
341 const struct device *dev);
371 void *last_sample_buf,
int last_sample_size,
372 void *current_sample_buf,
int current_sample_size);
sensing_sensor_state
Sensing subsystem sensor state.
Definition: sensing.h:80
void * sensing_sensor_handle_t
Define Sensing subsystem sensor handle.
Definition: sensing.h:101
int(* sensing_sensor_set_sensitivity_t)(const struct device *dev, int index, uint32_t value)
Set data change sensitivity.
Definition: sensing_sensor.h:418
int(* sensing_sensor_init_t)(const struct device *dev, const struct sensing_sensor_info *info, const sensing_sensor_handle_t *reporter_handles, int reporters_count)
Sensor initialize.
Definition: sensing_sensor.h:254
int(* sensing_sensor_set_offset_t)(const struct device *dev, int index, int32_t value)
Set current sensor data offset.
Definition: sensing_sensor.h:535
int(* sensing_sensor_reset_t)(const struct device *dev)
Sensor reset.
Definition: sensing_sensor.h:284
int(* sensing_sensor_get_interval_t)(const struct device *dev, uint32_t *value)
Get current report interval.
Definition: sensing_sensor.h:398
int(* sensing_sensor_get_sensitivity_t)(const struct device *dev, int index, uint32_t *value)
Get current data change sensitivity.
Definition: sensing_sensor.h:437
int(* sensing_sensor_read_sample_t)(const struct device *dev, void *buf, int size)
Sensor read sample.
Definition: sensing_sensor.h:303
int(* sensing_sensor_get_fifo_t)(const struct device *dev, uint32_t *samples)
Get current sensor's hardware fifo size.
Definition: sensing_sensor.h:513
int(* sensing_sensor_self_calibration_t)(const struct device *dev)
Trigger a sensor to do self calibration.
Definition: sensing_sensor.h:340
int(* sensing_sensor_sensitivity_test_t)(const struct device *dev, int index, uint32_t sensitivity, void *last_sample_buf, int last_sample_size, void *current_sample_buf, int current_sample_size)
Sensitivity arbitration.
Definition: sensing_sensor.h:368
int(* sensing_sensor_process_t)(const struct device *dev, int reporter, void *buf, int size)
Sensor process data.
Definition: sensing_sensor.h:325
int(* sensing_sensor_set_interval_t)(const struct device *dev, uint32_t value)
Set current report interval.
Definition: sensing_sensor.h:384
int(* sensing_sensor_get_range_t)(const struct device *dev, int index, uint32_t *value)
Get current data range.
Definition: sensing_sensor.h:481
int(* sensing_sensor_set_range_t)(const struct device *dev, int index, uint32_t value)
Set data range.
Definition: sensing_sensor.h:459
int(* sensing_sensor_set_fifo_t)(const struct device *dev, uint32_t samples)
Set current sensor's hardware fifo size.
Definition: sensing_sensor.h:497
int(* sensing_sensor_deinit_t)(const struct device *dev)
Sensor's de-initialize.
Definition: sensing_sensor.h:268
int(* sensing_sensor_get_offset_t)(const struct device *dev, int index, int32_t *value)
Get current sensor data offset.
Definition: sensing_sensor.h:557
int sensing_sensor_set_data_ready(const struct device *dev, bool data_ready)
Set the data ready mode of the sensor.
static void * sensing_sensor_get_ctx_data(const struct device *dev)
Get registered context data pointer for a sensor instance.
Definition: sensing_sensor.h:126
int sensing_sensor_notify_data_ready(const struct device *dev)
Trigger the data ready event to sensing.
int sensing_sensor_post_data(const struct device *dev, void *buf, int size)
Post sensor data, sensor subsystem runtime will deliver to it's clients.
int sensing_sensor_get_reporters_count(const struct device *dev, int type)
Get reporters count of a given sensor instance by sensor type.
static int sensing_sensor_dev_init(const struct device *dev)
Definition: sensing_sensor.h:85
int sensing_sensor_get_state(const struct device *dev, enum sensing_sensor_state *state)
Get this sensor's state.
int sensing_sensor_get_reporters(const struct device *dev, int type, const int *reporter_handles, int max_handles)
Get reporter handles of a given sensor instance by sensor type.
state
Definition: parser_state.h:29
Public APIs for the sensor driver.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__INT32_TYPE__ int32_t
Definition: stdint.h:74
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:381
void * data
Address of the device instance private data.
Definition: device.h:391
Sensor callback api.
Definition: sensing_sensor.h:566
sensing_sensor_process_t process
Definition: sensing_sensor.h:581
sensing_sensor_get_sensitivity_t get_sensitivity
Definition: sensing_sensor.h:579
sensing_sensor_set_range_t set_range
Definition: sensing_sensor.h:572
sensing_sensor_init_t init
Definition: sensing_sensor.h:567
sensing_sensor_get_offset_t get_offset
Definition: sensing_sensor.h:575
sensing_sensor_get_fifo_t get_fifo
Definition: sensing_sensor.h:576
sensing_sensor_get_range_t get_range
Definition: sensing_sensor.h:573
sensing_sensor_deinit_t deinit
Definition: sensing_sensor.h:569
sensing_sensor_self_calibration_t self_calibration
Definition: sensing_sensor.h:583
sensing_sensor_get_interval_t get_interval
Definition: sensing_sensor.h:571
sensing_sensor_set_fifo_t set_fifo
Definition: sensing_sensor.h:577
sensing_sensor_set_sensitivity_t set_sensitivity
Definition: sensing_sensor.h:578
sensing_sensor_read_sample_t read_sample
Definition: sensing_sensor.h:580
sensing_sensor_sensitivity_test_t sensitivity_test
Definition: sensing_sensor.h:582
sensing_sensor_reset_t reset
Definition: sensing_sensor.h:568
sensing_sensor_set_interval_t set_interval
Definition: sensing_sensor.h:570
sensing_sensor_set_offset_t set_offset
Definition: sensing_sensor.h:574
Sensor context data structure.
Definition: sensing_sensor.h:65
void *const sensor_ctx_ptr
For sensor private context data, registered by sensor with SENSING_SENSOR_DT_DEFINE.
Definition: sensing_sensor.h:82
const struct sensing_sensor_register_info * register_info
Pointer to the sensor register information.
Definition: sensing_sensor.h:75
void * priv_ptr
For sensing runtime internal private data, sensor should not see and touch.
Definition: sensing_sensor.h:70
Sensor basic constant information.
Definition: sensing.h:120
Sensor registration information.
Definition: sensing_sensor.h:36
uint16_t sample_size
Sample size in bytes for a single sample of the registered sensor.
Definition: sensing_sensor.h:47
uint16_t flags
Sensor flags.
Definition: sensing_sensor.h:41
uint8_t sensitivity_count
The number of sensor sensitivities.
Definition: sensing_sensor.h:52
struct sensing_sensor_version version
Sensor version.
Definition: sensing_sensor.h:58
Sensor Version.
Definition: sensing.h:39