10#ifndef INFUSE_SDK_INCLUDE_INFUSE_DRIVERS_IMU_DATA_TYPES_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_DRIVERS_IMU_DATA_TYPES_H_
15#include <zephyr/toolchain.h>
68#define IMU_SAMPLE_ARRAY_TYPE_DEFINE(type_name, max_samples) \
70 struct imu_sample_array header; \
71 struct imu_sample samples[max_samples]; \
75#define IMU_SAMPLE_ARRAY_CREATE(name, max_samples) \
76 IMU_SAMPLE_ARRAY_TYPE_DEFINE(_anon_t_##name, max_samples); \
77 static struct _anon_t_##name _anon_##name; \
78 static struct imu_sample_array *name = (void *)&_anon_##name
89#define IMU_MAG_ARRAY_TYPE_DEFINE(type_name, max_samples) \
91 struct imu_sensor_meta meta; \
92 uint32_t magnitudes[max_samples]; \
Accelerometer magnitude broadcast structure.
Definition data_types.h:81
struct imu_sensor_meta meta
Metadata for magnitude samples.
Definition data_types.h:83
uint32_t magnitudes[]
Linear array of all magnitudes (raw sensor units)
Definition data_types.h:85
FIFO read structure.
Definition data_types.h:56
struct imu_sensor_meta gyroscope
Metadata for gyroscope samples.
Definition data_types.h:60
struct imu_sensor_meta accelerometer
Metadata for accelerometer samples.
Definition data_types.h:58
struct imu_sample samples[]
Linear array of all samples.
Definition data_types.h:64
struct imu_sensor_meta magnetometer
Metadata for magnetometer samples.
Definition data_types.h:62
IMU sample struct.
Definition data_types.h:29
int16_t x
X axis reading (raw sensor units, see imu_sensor_meta::full_scale_range)
Definition data_types.h:31
int16_t z
Z axis reading (raw sensor units, see imu_sensor_meta::full_scale_range)
Definition data_types.h:35
int16_t y
Y axis reading (raw sensor units, see imu_sensor_meta::full_scale_range)
Definition data_types.h:33