Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
7#ifndef ZEPHYR_INCLUDE_SENSING_H_
8#define ZEPHYR_INCLUDE_SENSING_H_
9
22#include <zephyr/device.h>
23
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34
40 union {
42 struct {
47 };
48 };
49};
50
51#define SENSING_SENSOR_VERSION(_major, _minor, _hotfix, _build) \
52 (FIELD_PREP(GENMASK(31, 24), _major) | \
53 FIELD_PREP(GENMASK(23, 16), _minor) | \
54 FIELD_PREP(GENMASK(15, 8), _hotfix) | \
55 FIELD_PREP(GENMASK(7, 0), _build))
56
57
64#define SENSING_SENSOR_FLAG_REPORT_ON_EVENT BIT(0)
65
73#define SENSING_SENSOR_FLAG_REPORT_ON_CHANGE BIT(1)
74
75
83};
84
94};
95
96
102
103
111typedef void (*sensing_data_event_t)(
113 const void *buf);
114
122 const char *name;
123
125 const char *friendly_name;
126
128 const char *vendor;
129
131 const char *model;
132
135
138};
139
147};
156 union {
160 };
161};
162
163
177int sensing_get_sensors(int *num_sensors, const struct sensing_sensor_info **info);
178
196 const struct sensing_sensor_info *info,
197 const struct sensing_callback_list *cb_list,
199
217 const struct device *dev, const struct sensing_callback_list *cb_list,
219
229
243 struct sensing_sensor_config *configs, int count);
244
258 struct sensing_sensor_config *configs, int count);
259
269
270#ifdef __cplusplus
271}
272#endif
273
279#endif /*ZEPHYR_INCLUDE_SENSING_H_*/
int sensing_open_sensor_by_dt(const struct device *dev, const 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.
int sensing_open_sensor(const struct sensing_sensor_info *info, const struct sensing_callback_list *cb_list, sensing_sensor_handle_t *handle)
Open sensor instance by sensing sensor info.
sensing_sensor_attribute
Sensing subsystem sensor config attribute.
Definition: sensing.h:89
void(* sensing_data_event_t)(sensing_sensor_handle_t handle, const void *buf)
Sensor data event receive callback.
Definition: sensing.h:111
int sensing_close_sensor(sensing_sensor_handle_t *handle)
Close sensor instance.
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_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
Definition: sensing.h:93
@ SENSING_SENSOR_ATTRIBUTE_LATENCY
Definition: sensing.h:92
@ SENSING_SENSOR_ATTRIBUTE_INTERVAL
Definition: sensing.h:90
@ SENSING_SENSOR_ATTRIBUTE_SENSITIVITY
Definition: sensing.h:91
@ SENSING_SENSOR_STATE_READY
Definition: sensing.h:81
@ SENSING_SENSOR_STATE_OFFLINE
Definition: sensing.h:82
__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:381
Sensing subsystem event callback list.
Definition: sensing.h:145
sensing_data_event_t on_data_event
Definition: sensing.h:146
Sensing subsystem sensor configure, including interval, sensitivity, latency.
Definition: sensing.h:153
uint32_t interval
Definition: sensing.h:157
enum sensing_sensor_attribute attri
Definition: sensing.h:154
int8_t data_field
Definition: sensing.h:155
uint32_t sensitivity
Definition: sensing.h:158
uint64_t latency
Definition: sensing.h:159
Sensor basic constant information.
Definition: sensing.h:120
const char * vendor
Vendor name of the sensor instance.
Definition: sensing.h:128
const uint32_t minimal_interval
Minimal report interval in micro seconds.
Definition: sensing.h:137
const int32_t type
Sensor type.
Definition: sensing.h:134
const char * friendly_name
Friendly name of the sensor instance.
Definition: sensing.h:125
const char * name
Name of the sensor instance.
Definition: sensing.h:122
const char * model
Model name of the sensor instance.
Definition: sensing.h:131
Sensor Version.
Definition: sensing.h:39
uint32_t value
Definition: sensing.h:41
uint8_t hotfix
Definition: sensing.h:45
uint8_t build
Definition: sensing.h:46
uint8_t minor
Definition: sensing.h:44
uint8_t major
Definition: sensing.h:43