Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sensing.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022-2023 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef ZEPHYR_INCLUDE_SENSING_H_
14#define ZEPHYR_INCLUDE_SENSING_H_
15
27
30#include <zephyr/device.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
50
60#define SENSING_SENSOR_VERSION(_major, _minor, _hotfix, _build) \
61 (FIELD_PREP(GENMASK(31, 24), _major) | \
62 FIELD_PREP(GENMASK(23, 16), _minor) | \
63 FIELD_PREP(GENMASK(15, 8), _hotfix) | \
64 FIELD_PREP(GENMASK(7, 0), _build))
65
70
79#define SENSING_SENSOR_FLAG_REPORT_ON_EVENT BIT(0)
80
88#define SENSING_SENSOR_FLAG_REPORT_ON_CHANGE BIT(1)
89
91
97#define SENSING_SENSITIVITY_INDEX_ALL -1
98
108
139
147
158typedef void (*sensing_data_event_t)(
160 const void *buf,
161 void *context);
162
168 const char *name;
169
171 const char *friendly_name;
172
174 const char *vendor;
175
177 const char *model;
178
181
184};
185
191
199
230
242int sensing_get_sensors(int *num_sensors, const struct sensing_sensor_info **info);
243
259 const struct sensing_sensor_info *info,
260 struct sensing_callback_list *cb_list,
262
278 const struct device *dev, struct sensing_callback_list *cb_list,
280
289
300 struct sensing_sensor_config *configs, int count);
301
312 struct sensing_sensor_config *configs, int count);
313
322
323#ifdef __cplusplus
324}
325#endif
326
330
331#endif /*ZEPHYR_INCLUDE_SENSING_H_*/
int sensing_open_sensor_by_dt(const struct device *dev, struct sensing_callback_list *cb_list, sensing_sensor_handle_t *handle)
Open sensor instance by device.
const struct sensing_sensor_info * sensing_get_sensor_info(sensing_sensor_handle_t handle)
Get sensor information from sensor instance handle.
int sensing_set_config(sensing_sensor_handle_t handle, struct sensing_sensor_config *configs, int count)
Set current config items to Sensing subsystem.
void(* sensing_data_event_t)(sensing_sensor_handle_t handle, const void *buf, void *context)
Data event callback signature.
Definition sensing.h:158
sensing_sensor_attribute
Sensor configuration attribute.
Definition sensing.h:114
int sensing_open_sensor(const struct sensing_sensor_info *info, struct sensing_callback_list *cb_list, sensing_sensor_handle_t *handle)
Open sensor instance by sensing sensor info.
int sensing_close_sensor(sensing_sensor_handle_t *handle)
Close sensor instance.
sensing_sensor_state
Sensor state.
Definition sensing.h:104
void * sensing_sensor_handle_t
Opaque handle to an opened sensor instance.
Definition sensing.h:146
int sensing_get_sensors(int *num_sensors, const struct sensing_sensor_info **info)
Get all supported sensor instances' information.
int sensing_get_config(sensing_sensor_handle_t handle, struct sensing_sensor_config *configs, int count)
Get current config items from Sensing subsystem.
@ SENSING_SENSOR_ATTRIBUTE_MAX
Number of supported attributes.
Definition sensing.h:137
@ SENSING_SENSOR_ATTRIBUTE_LATENCY
Maximum batching latency, in microseconds (us).
Definition sensing.h:134
@ SENSING_SENSOR_ATTRIBUTE_INTERVAL
Reporting interval between samples, in microseconds (us).
Definition sensing.h:120
@ SENSING_SENSOR_ATTRIBUTE_SENSITIVITY
Per-field sensitivity threshold.
Definition sensing.h:127
@ SENSING_SENSOR_STATE_READY
The sensor is ready.
Definition sensing.h:105
@ SENSING_SENSOR_STATE_OFFLINE
The sensor is offline.
Definition sensing.h:106
Header file for Sensing subsystem data type definitions.
Header file for Sensing subsystem sensor type definitions.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__INT8_TYPE__ int8_t
Definition stdint.h:72
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Callback registration for a sensor instance.
Definition sensing.h:195
void * context
Context that will be passed to the callback.
Definition sensing.h:197
sensing_data_event_t on_data_event
Callback function for a sensor data event.
Definition sensing.h:196
Sensing subsystem sensor configure, including interval, sensitivity, latency.
Definition sensing.h:205
uint32_t interval
Interval between two sensor samples in microseconds (us).
Definition sensing.h:213
enum sensing_sensor_attribute attri
Attribute of the sensor configuration.
Definition sensing.h:206
int8_t data_field
SENSING_SENSITIVITY_INDEX_ALL
Definition sensing.h:209
uint32_t sensitivity
Sensitivity threshold for reporting new data.
Definition sensing.h:220
uint64_t latency
Maximum duration for batching sensor samples before reporting in microseconds (us).
Definition sensing.h:227
Read-only description of a sensor instance.
Definition sensing.h:166
const char * vendor
Vendor name of the sensor instance.
Definition sensing.h:174
const uint32_t minimal_interval
Minimal report interval in micro seconds.
Definition sensing.h:183
const int32_t type
Sensor type.
Definition sensing.h:180
const char * friendly_name
Friendly name of the sensor instance.
Definition sensing.h:171
const char * name
Name of the sensor instance.
Definition sensing.h:168
const char * model
Model name of the sensor instance.
Definition sensing.h:177
Sensor Version.
Definition sensing.h:39
uint32_t value
The version represented as a 32-bit value.
Definition sensing.h:41
uint8_t hotfix
The hotfix version number.
Definition sensing.h:45
uint8_t build
The build version number.
Definition sensing.h:46
uint8_t minor
The minor version number.
Definition sensing.h:44
uint8_t major
The major version number.
Definition sensing.h:43