| ICM45605 eMD driver Documentation of the eMD Driver API

- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List
- File Members

inv_imu_edmp.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) [2020] by InvenSense, Inc.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 *
16 */
17
25 #ifndef _INV_IMU_EDMP_H_
26 #define _INV_IMU_EDMP_H_
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #include "imu/inv_imu_driver.h"
33 #include "imu/inv_imu_edmp_memmap.h"
34
35 #include <stdint.h>
36 #include <string.h>
37
44 #define INV_IMU_WRITE_EDMP_SRAM(s, name, val) \
45 inv_imu_write_sram(s, (uint32_t)name, name##_SIZE, val)
46
53 #define INV_IMU_READ_EDMP_SRAM(s, name, val) inv_imu_read_sram(s, (uint32_t)name, name##_SIZE, val)
54
56 typedef enum { INV_IMU_EDMP_INT0 = 0, INV_IMU_EDMP_INT1, INV_IMU_EDMP_INT2 } inv_imu_edmp_int_t;
57
59 typedef struct {
60 uint8_t INV_TAP;
61 uint8_t INV_HIGHG;
62 uint8_t INV_LOWG;
63 uint8_t INV_TILT_DET;
64 uint8_t INV_STEP_CNT_OVFL;
65 uint8_t INV_STEP_DET;
66 uint8_t INV_FF;
67 uint8_t INV_R2W;
68 uint8_t INV_B2S;
69
70 uint8_t INV_R2W_SLEEP;
71 uint8_t INV_B2S_REV;
72 uint8_t INV_SMD;
73 uint8_t INV_SELF_TEST;
74 uint8_t INV_SEC_AUTH;
75 } inv_imu_edmp_int_state_t;
76
78 typedef struct {
79 int_apex_status0_t int_apex_status0;
80 int_apex_status1_t int_apex_status1;
81 } int_apex_statusx_t;
82
84 typedef struct {
85 int_apex_config0_t int_apex_config0;
86 int_apex_config1_t int_apex_config1;
87 } int_apex_configx_t;
88
90 typedef struct {
91 edmp_apex_en0_t edmp_apex_en0;
92 edmp_apex_en1_t edmp_apex_en1;
93 } edmp_apex_enx_t;
94
98 typedef struct {
99 /* Pedometer */
100 uint32_t ped_amp_th;
101 uint16_t ped_step_cnt_th;
102 uint16_t ped_step_det_th;
103 uint16_t ped_sb_timer_th;
104 uint32_t ped_hi_en_th;
105 uint8_t ped_sensitivity_mode;
106 uint32_t ped_low_en_amp_th;
107
108 /* Tilt */
109 uint16_t tilt_wait_time;
110
111 #if INV_IMU_USE_BASIC_SMD
112 /* Basic SMD */
113 uint32_t basicsmd_win;
114 uint32_t basicsmd_win_wait;
115 #else
116 /* SMD */
117 uint8_t smd_sensitivity;
118 #endif
119 /* R2W */
120 uint32_t r2w_sleep_time_out;
121 uint32_t r2w_sleep_gesture_delay;
122 uint32_t r2w_mounting_matrix;
123 uint32_t r2w_gravity_filter_gain;
124 uint32_t r2w_motion_th_angle_cosine;
125 uint32_t r2w_motion_th_timer_fast;
126 uint32_t r2w_motion_th_timer_slow;
127 uint32_t r2w_motion_prev_gravity_timeout;
128 uint32_t r2w_last_gravity_motion_timer;
129 uint32_t r2w_last_gravity_timeout;
130 uint32_t r2w_gesture_validity_timeout;
131
132 /* Freefall */
133 uint16_t lowg_peak_th;
134 uint16_t lowg_peak_th_hyst;
135 uint16_t lowg_time_th;
136 uint16_t highg_peak_th;
137 uint16_t highg_peak_th_hyst;
138 uint16_t highg_time_th;
139 uint32_t ff_min_duration;
140 uint32_t ff_max_duration;
141 uint32_t ff_debounce_duration;
142
143 /* Tap */
144 uint8_t tap_min_jerk;
145 uint16_t tap_tmax;
146 uint8_t tap_tmin;
147 uint8_t tap_max_peak_tol;
148 uint8_t tap_smudge_reject_th;
149 uint8_t tap_tavg;
150
151 /* CalMag */
152 int32_t soft_iron_sensitivity_matrix[9];
153 int32_t hard_iron_offset[3];
154
155 /* Power save */
156 uint32_t power_save_time;
157 uint8_t power_save_en;
158
159 } inv_imu_edmp_apex_parameters_t;
160
162 typedef enum {
163 INV_IMU_EDMP_UNKNOWN = 0,
164 INV_IMU_EDMP_WALK = 1,
165 INV_IMU_EDMP_RUN = 2,
166 } inv_imu_edmp_activity_class_t;
167
169 typedef struct {
171 uint16_t step_cnt;
172
177 uint8_t step_cadence;
178
180 inv_imu_edmp_activity_class_t activity_class;
181 } inv_imu_edmp_pedometer_data_t;
182
184 typedef enum {
185 INV_IMU_EDMP_TAP_DOUBLE = 0x02,
186 INV_IMU_EDMP_TAP_SINGLE = 0x01,
187 } inv_imu_edmp_tap_num_t;
188
190 typedef enum {
191 INV_IMU_EDMP_TAP_AXIS_Z = 0x02,
192 INV_IMU_EDMP_TAP_AXIS_Y = 0x01,
193 INV_IMU_EDMP_TAP_AXIS_X = 0x00,
194 } inv_imu_edmp_tap_axis_t;
195
197 typedef enum {
198 INV_IMU_EDMP_TAP_DIR_POSITIVE = 0x01,
199 INV_IMU_EDMP_TAP_DIR_NEGATIVE = 0x00,
200 } inv_imu_edmp_tap_dir_t;
201
203 typedef struct {
204 inv_imu_edmp_tap_num_t num;
205 inv_imu_edmp_tap_axis_t axis;
206 inv_imu_edmp_tap_dir_t direction;
207 uint8_t double_tap_timing;
208 } inv_imu_edmp_tap_data_t;
209
218 int inv_imu_edmp_set_frequency(inv_imu_device_t *s, const dmp_ext_sen_odr_cfg_apex_odr_t frequency);
219
231 int inv_imu_edmp_init_apex(inv_imu_device_t *s);
232
244 int inv_imu_edmp_recompute_apex_decimation(inv_imu_device_t *s);
245
251 int inv_imu_edmp_get_apex_parameters(inv_imu_device_t *s, inv_imu_edmp_apex_parameters_t *p);
252
259 int inv_imu_edmp_set_apex_parameters(inv_imu_device_t *s, const inv_imu_edmp_apex_parameters_t *p);
260
266 int inv_imu_edmp_get_config_int_apex(inv_imu_device_t *s, inv_imu_edmp_int_state_t *it);
267
273 int inv_imu_edmp_set_config_int_apex(inv_imu_device_t *s, const inv_imu_edmp_int_state_t *it);
274
279 int inv_imu_edmp_enable(inv_imu_device_t *s);
280
285 int inv_imu_edmp_disable(inv_imu_device_t *s);
286
294 int inv_imu_edmp_enable_pedometer(inv_imu_device_t *s);
295
300 int inv_imu_edmp_disable_pedometer(inv_imu_device_t *s);
301
309 int inv_imu_edmp_enable_smd(inv_imu_device_t *s);
310
315 int inv_imu_edmp_disable_smd(inv_imu_device_t *s);
316
324 int inv_imu_edmp_enable_tilt(inv_imu_device_t *s);
325
330 int inv_imu_edmp_disable_tilt(inv_imu_device_t *s);
331
339 int inv_imu_edmp_enable_r2w(inv_imu_device_t *s);
340
345 int inv_imu_edmp_disable_r2w(inv_imu_device_t *s);
346
354 int inv_imu_edmp_enable_tap(inv_imu_device_t *s);
355
360 int inv_imu_edmp_disable_tap(inv_imu_device_t *s);
361
369 int inv_imu_edmp_enable_ff(inv_imu_device_t *s);
370
375 int inv_imu_edmp_disable_ff(inv_imu_device_t *s);
376
382 int inv_imu_edmp_get_int_apex_status(inv_imu_device_t *s, inv_imu_edmp_int_state_t *it);
383
390 int inv_imu_edmp_get_pedometer_data(inv_imu_device_t *s, inv_imu_edmp_pedometer_data_t *data);
391
397 int inv_imu_edmp_get_ff_data(inv_imu_device_t *s, uint16_t *freefall_duration);
398
404 int inv_imu_edmp_get_tap_data(inv_imu_device_t *s, inv_imu_edmp_tap_data_t *data);
405
412 int inv_imu_edmp_mask_int_src(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb,
413 uint8_t int_mask);
414
421 int inv_imu_edmp_unmask_int_src(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb,
422 uint8_t int_mask);
423
428 int inv_imu_edmp_configure(inv_imu_device_t *s);
429
435 int inv_imu_edmp_run_ondemand(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb);
436
441 int inv_imu_edmp_wait_for_idle(inv_imu_device_t *s);
442
443 #ifdef __cplusplus
444 }
445 #endif
446
447 #endif /* _INV_IMU_EDMP_H_ */
448
inv_imu_driver.h
dmp_ext_sen_odr_cfg_apex_odr_t
dmp_ext_sen_odr_cfg_apex_odr_t
Definition: inv_imu_defs.h:426
inv_imu_edmp_mask_int_src
int inv_imu_edmp_mask_int_src(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb, uint8_t int_mask)
Mask requested interrupt sources for edmp interrupt line passed in parameter.
inv_imu_edmp_disable
int inv_imu_edmp_disable(inv_imu_device_t *s)
Disable EDMP.
inv_imu_edmp_enable_pedometer
int inv_imu_edmp_enable_pedometer(inv_imu_device_t *s)
Enable APEX algorithm Pedometer.
inv_imu_edmp_tap_num_t
inv_imu_edmp_tap_num_t
Tap number definition.
Definition: inv_imu_edmp.h:184
inv_imu_edmp_set_frequency
int inv_imu_edmp_set_frequency(inv_imu_device_t *s, const dmp_ext_sen_odr_cfg_apex_odr_t frequency)
Configure EDMP Output Data Rate.
inv_imu_edmp_get_pedometer_data
int inv_imu_edmp_get_pedometer_data(inv_imu_device_t *s, inv_imu_edmp_pedometer_data_t *data)
Retrieve pedometer outputs.
inv_imu_edmp_disable_r2w
int inv_imu_edmp_disable_r2w(inv_imu_device_t *s)
Disable APEX algorithm R2W.
inv_imu_edmp_enable_r2w
int inv_imu_edmp_enable_r2w(inv_imu_device_t *s)
Enable APEX algorithm R2W.
inv_imu_edmp_disable_smd
int inv_imu_edmp_disable_smd(inv_imu_device_t *s)
Disable APEX algorithm Significant Motion Detection.
inv_imu_edmp_configure
int inv_imu_edmp_configure(inv_imu_device_t *s)
Setup EDMP to execute code in ROM.
inv_imu_edmp_enable_tilt
int inv_imu_edmp_enable_tilt(inv_imu_device_t *s)
Enable APEX algorithm Tilt.
inv_imu_edmp_enable_ff
int inv_imu_edmp_enable_ff(inv_imu_device_t *s)
Enable APEX algorithm Free Fall.
inv_imu_edmp_get_ff_data
int inv_imu_edmp_get_ff_data(inv_imu_device_t *s, uint16_t *freefall_duration)
Retrieve APEX free fall outputs and format them.
inv_imu_edmp_run_ondemand
int inv_imu_edmp_run_ondemand(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb)
Run EDMP using the on-demand mechanism.
inv_imu_edmp_init_apex
int inv_imu_edmp_init_apex(inv_imu_device_t *s)
Initialize EDMP APEX algorithms.
inv_imu_edmp_recompute_apex_decimation
int inv_imu_edmp_recompute_apex_decimation(inv_imu_device_t *s)
Recompute EDMP APEX algorithms internal decimator based on new EDMP output Data Rate configured with ...
inv_imu_edmp_enable
int inv_imu_edmp_enable(inv_imu_device_t *s)
Enable EDMP.
inv_imu_edmp_get_int_apex_status
int inv_imu_edmp_get_int_apex_status(inv_imu_device_t *s, inv_imu_edmp_int_state_t *it)
Read APEX interrupt status.
inv_imu_edmp_wait_for_idle
int inv_imu_edmp_wait_for_idle(inv_imu_device_t *s)
Wait until EDMP idle bit is set (means EDMP execution is completed).
inv_imu_edmp_get_apex_parameters
int inv_imu_edmp_get_apex_parameters(inv_imu_device_t *s, inv_imu_edmp_apex_parameters_t *p)
Returns current EDMP parameters for APEX algorithms.
inv_imu_edmp_tap_dir_t
inv_imu_edmp_tap_dir_t
Tap direction definition.
Definition: inv_imu_edmp.h:197
inv_imu_edmp_enable_tap
int inv_imu_edmp_enable_tap(inv_imu_device_t *s)
Enable APEX algorithm Tap.
inv_imu_edmp_enable_smd
int inv_imu_edmp_enable_smd(inv_imu_device_t *s)
Enable APEX algorithm Significant Motion Detection.
inv_imu_edmp_set_config_int_apex
int inv_imu_edmp_set_config_int_apex(inv_imu_device_t *s, const inv_imu_edmp_int_state_t *it)
Configure APEX interrupt.
inv_imu_edmp_disable_pedometer
int inv_imu_edmp_disable_pedometer(inv_imu_device_t *s)
Disable APEX algorithm Pedometer.
inv_imu_edmp_disable_tilt
int inv_imu_edmp_disable_tilt(inv_imu_device_t *s)
Disable APEX algorithm Tilt.
inv_imu_edmp_activity_class_t
inv_imu_edmp_activity_class_t
Pedometer activity class.
Definition: inv_imu_edmp.h:162
inv_imu_edmp_unmask_int_src
int inv_imu_edmp_unmask_int_src(inv_imu_device_t *s, inv_imu_edmp_int_t edmp_int_nb, uint8_t int_mask)
Unmask requested interrupt sources for edmp interrupt line passed in parameter.
inv_imu_edmp_tap_axis_t
inv_imu_edmp_tap_axis_t
Tap axis definition.
Definition: inv_imu_edmp.h:190
inv_imu_edmp_set_apex_parameters
int inv_imu_edmp_set_apex_parameters(inv_imu_device_t *s, const inv_imu_edmp_apex_parameters_t *p)
Configures EDMP parameters for APEX algorithms.
inv_imu_edmp_int_t
inv_imu_edmp_int_t
EDMP input interrupt lines definition.
Definition: inv_imu_edmp.h:56
inv_imu_edmp_get_config_int_apex
int inv_imu_edmp_get_config_int_apex(inv_imu_device_t *s, inv_imu_edmp_int_state_t *it)
Retrieve interrupts configuration.
inv_imu_edmp_get_tap_data
int inv_imu_edmp_get_tap_data(inv_imu_device_t *s, inv_imu_edmp_tap_data_t *data)
Retrieve tap outputs.
inv_imu_edmp_disable_ff
int inv_imu_edmp_disable_ff(inv_imu_device_t *s)
Disable APEX algorithm Free Fall.
inv_imu_edmp_disable_tap
int inv_imu_edmp_disable_tap(inv_imu_device_t *s)
Disable APEX algorithm Tap.
INV_IMU_EDMP_TAP_SINGLE
@ INV_IMU_EDMP_TAP_SINGLE
Definition: inv_imu_edmp.h:186
INV_IMU_EDMP_TAP_DOUBLE
@ INV_IMU_EDMP_TAP_DOUBLE
Definition: inv_imu_edmp.h:185
INV_IMU_EDMP_TAP_DIR_POSITIVE
@ INV_IMU_EDMP_TAP_DIR_POSITIVE
Definition: inv_imu_edmp.h:198
INV_IMU_EDMP_TAP_DIR_NEGATIVE
@ INV_IMU_EDMP_TAP_DIR_NEGATIVE
Definition: inv_imu_edmp.h:199
INV_IMU_EDMP_UNKNOWN
@ INV_IMU_EDMP_UNKNOWN
Definition: inv_imu_edmp.h:163
INV_IMU_EDMP_RUN
@ INV_IMU_EDMP_RUN
Definition: inv_imu_edmp.h:165
INV_IMU_EDMP_WALK
@ INV_IMU_EDMP_WALK
Definition: inv_imu_edmp.h:164
INV_IMU_EDMP_TAP_AXIS_X
@ INV_IMU_EDMP_TAP_AXIS_X
Definition: inv_imu_edmp.h:193
INV_IMU_EDMP_TAP_AXIS_Z
@ INV_IMU_EDMP_TAP_AXIS_Z
Definition: inv_imu_edmp.h:191
INV_IMU_EDMP_TAP_AXIS_Y
@ INV_IMU_EDMP_TAP_AXIS_Y
Definition: inv_imu_edmp.h:192
INV_IMU_EDMP_INT0
@ INV_IMU_EDMP_INT0
Definition: inv_imu_edmp.h:56
INV_IMU_EDMP_INT2
@ INV_IMU_EDMP_INT2
Definition: inv_imu_edmp.h:56
INV_IMU_EDMP_INT1
@ INV_IMU_EDMP_INT1
Definition: inv_imu_edmp.h:56
edmp_apex_en0_t
Definition: inv_imu_regmap_le.h:214
edmp_apex_en1_t
Definition: inv_imu_regmap_le.h:226
int_apex_config0_t
Definition: inv_imu_regmap_le.h:326
int_apex_config1_t
Definition: inv_imu_regmap_le.h:338
int_apex_status0_t
Definition: inv_imu_regmap_le.h:349
int_apex_status1_t
Definition: inv_imu_regmap_le.h:361
inv_imu_device_t
Basic driver configuration structure.
Definition: inv_imu_driver.h:43
inv_imu_edmp_int_state_t
APEX interrupts definition.
Definition: inv_imu_edmp.h:59
inv_imu_edmp_int_state_t::INV_FF
uint8_t INV_FF
Definition: inv_imu_edmp.h:66
inv_imu_edmp_int_state_t::INV_B2S
uint8_t INV_B2S
Definition: inv_imu_edmp.h:68
inv_imu_edmp_int_state_t::INV_STEP_CNT_OVFL
uint8_t INV_STEP_CNT_OVFL
Definition: inv_imu_edmp.h:64
inv_imu_edmp_int_state_t::INV_R2W
uint8_t INV_R2W
Definition: inv_imu_edmp.h:67
inv_imu_edmp_int_state_t::INV_R2W_SLEEP
uint8_t INV_R2W_SLEEP
Definition: inv_imu_edmp.h:70
inv_imu_edmp_int_state_t::INV_LOWG
uint8_t INV_LOWG
Definition: inv_imu_edmp.h:62
inv_imu_edmp_int_state_t::INV_SELF_TEST
uint8_t INV_SELF_TEST
Definition: inv_imu_edmp.h:73
inv_imu_edmp_int_state_t::INV_STEP_DET
uint8_t INV_STEP_DET
Definition: inv_imu_edmp.h:65
inv_imu_edmp_int_state_t::INV_HIGHG
uint8_t INV_HIGHG
Definition: inv_imu_edmp.h:61
inv_imu_edmp_int_state_t::INV_SMD
uint8_t INV_SMD
Definition: inv_imu_edmp.h:72
inv_imu_edmp_int_state_t::INV_TAP
uint8_t INV_TAP
Definition: inv_imu_edmp.h:60
inv_imu_edmp_int_state_t::INV_SEC_AUTH
uint8_t INV_SEC_AUTH
Definition: inv_imu_edmp.h:74
inv_imu_edmp_int_state_t::INV_TILT_DET
uint8_t INV_TILT_DET
Definition: inv_imu_edmp.h:63
inv_imu_edmp_int_state_t::INV_B2S_REV
uint8_t INV_B2S_REV
Definition: inv_imu_edmp.h:71
int_apex_statusx_t
Registers to retrieve interrupts status for APEX.
Definition: inv_imu_edmp.h:78
int_apex_statusx_t::int_apex_status0
int_apex_status0_t int_apex_status0
Definition: inv_imu_edmp.h:79
int_apex_statusx_t::int_apex_status1
int_apex_status1_t int_apex_status1
Definition: inv_imu_edmp.h:80
int_apex_configx_t
Registers to configure interrupts for APEX.
Definition: inv_imu_edmp.h:84
int_apex_configx_t::int_apex_config0
int_apex_config0_t int_apex_config0
Definition: inv_imu_edmp.h:85
int_apex_configx_t::int_apex_config1
int_apex_config1_t int_apex_config1
Definition: inv_imu_edmp.h:86
edmp_apex_enx_t
Registers to enable APEX features.
Definition: inv_imu_edmp.h:90
edmp_apex_enx_t::edmp_apex_en1
edmp_apex_en1_t edmp_apex_en1
Definition: inv_imu_edmp.h:92
edmp_apex_enx_t::edmp_apex_en0
edmp_apex_en0_t edmp_apex_en0
Definition: inv_imu_edmp.h:91
inv_imu_edmp_apex_parameters_t
IMU APEX inputs parameters definition.
Definition: inv_imu_edmp.h:98
inv_imu_edmp_apex_parameters_t::ped_sensitivity_mode
uint8_t ped_sensitivity_mode
Definition: inv_imu_edmp.h:105
inv_imu_edmp_apex_parameters_t::power_save_en
uint8_t power_save_en
Definition: inv_imu_edmp.h:157
inv_imu_edmp_apex_parameters_t::r2w_motion_th_timer_fast
uint32_t r2w_motion_th_timer_fast
Definition: inv_imu_edmp.h:125
inv_imu_edmp_apex_parameters_t::ff_max_duration
uint32_t ff_max_duration
Definition: inv_imu_edmp.h:140
inv_imu_edmp_apex_parameters_t::r2w_last_gravity_timeout
uint32_t r2w_last_gravity_timeout
Definition: inv_imu_edmp.h:129
inv_imu_edmp_apex_parameters_t::ped_amp_th
uint32_t ped_amp_th
Definition: inv_imu_edmp.h:100
inv_imu_edmp_apex_parameters_t::ped_sb_timer_th
uint16_t ped_sb_timer_th
Definition: inv_imu_edmp.h:103
inv_imu_edmp_apex_parameters_t::tap_tavg
uint8_t tap_tavg
Definition: inv_imu_edmp.h:149
inv_imu_edmp_apex_parameters_t::ff_debounce_duration
uint32_t ff_debounce_duration
Definition: inv_imu_edmp.h:141
inv_imu_edmp_apex_parameters_t::power_save_time
uint32_t power_save_time
Definition: inv_imu_edmp.h:156
inv_imu_edmp_apex_parameters_t::lowg_peak_th_hyst
uint16_t lowg_peak_th_hyst
Definition: inv_imu_edmp.h:134
inv_imu_edmp_apex_parameters_t::tap_tmax
uint16_t tap_tmax
Definition: inv_imu_edmp.h:145
inv_imu_edmp_apex_parameters_t::r2w_motion_th_timer_slow
uint32_t r2w_motion_th_timer_slow
Definition: inv_imu_edmp.h:126
inv_imu_edmp_apex_parameters_t::tap_smudge_reject_th
uint8_t tap_smudge_reject_th
Definition: inv_imu_edmp.h:148
inv_imu_edmp_apex_parameters_t::r2w_mounting_matrix
uint32_t r2w_mounting_matrix
Definition: inv_imu_edmp.h:122
inv_imu_edmp_apex_parameters_t::lowg_peak_th
uint16_t lowg_peak_th
Definition: inv_imu_edmp.h:133
inv_imu_edmp_apex_parameters_t::r2w_motion_prev_gravity_timeout
uint32_t r2w_motion_prev_gravity_timeout
Definition: inv_imu_edmp.h:127
inv_imu_edmp_apex_parameters_t::ped_hi_en_th
uint32_t ped_hi_en_th
Definition: inv_imu_edmp.h:104
inv_imu_edmp_apex_parameters_t::highg_peak_th
uint16_t highg_peak_th
Definition: inv_imu_edmp.h:136
inv_imu_edmp_apex_parameters_t::lowg_time_th
uint16_t lowg_time_th
Definition: inv_imu_edmp.h:135
inv_imu_edmp_apex_parameters_t::r2w_motion_th_angle_cosine
uint32_t r2w_motion_th_angle_cosine
Definition: inv_imu_edmp.h:124
inv_imu_edmp_apex_parameters_t::ff_min_duration
uint32_t ff_min_duration
Definition: inv_imu_edmp.h:139
inv_imu_edmp_apex_parameters_t::ped_low_en_amp_th
uint32_t ped_low_en_amp_th
Definition: inv_imu_edmp.h:106
inv_imu_edmp_apex_parameters_t::highg_time_th
uint16_t highg_time_th
Definition: inv_imu_edmp.h:138
inv_imu_edmp_apex_parameters_t::r2w_last_gravity_motion_timer
uint32_t r2w_last_gravity_motion_timer
Definition: inv_imu_edmp.h:128
inv_imu_edmp_apex_parameters_t::tap_tmin
uint8_t tap_tmin
Definition: inv_imu_edmp.h:146
inv_imu_edmp_apex_parameters_t::ped_step_det_th
uint16_t ped_step_det_th
Definition: inv_imu_edmp.h:102
inv_imu_edmp_apex_parameters_t::r2w_sleep_time_out
uint32_t r2w_sleep_time_out
Definition: inv_imu_edmp.h:120
inv_imu_edmp_apex_parameters_t::r2w_gesture_validity_timeout
uint32_t r2w_gesture_validity_timeout
Definition: inv_imu_edmp.h:130
inv_imu_edmp_apex_parameters_t::smd_sensitivity
uint8_t smd_sensitivity
Definition: inv_imu_edmp.h:117
inv_imu_edmp_apex_parameters_t::tap_min_jerk
uint8_t tap_min_jerk
Definition: inv_imu_edmp.h:144
inv_imu_edmp_apex_parameters_t::r2w_gravity_filter_gain
uint32_t r2w_gravity_filter_gain
Definition: inv_imu_edmp.h:123
inv_imu_edmp_apex_parameters_t::highg_peak_th_hyst
uint16_t highg_peak_th_hyst
Definition: inv_imu_edmp.h:137
inv_imu_edmp_apex_parameters_t::ped_step_cnt_th
uint16_t ped_step_cnt_th
Definition: inv_imu_edmp.h:101
inv_imu_edmp_apex_parameters_t::tilt_wait_time
uint16_t tilt_wait_time
Definition: inv_imu_edmp.h:109
inv_imu_edmp_apex_parameters_t::r2w_sleep_gesture_delay
uint32_t r2w_sleep_gesture_delay
Definition: inv_imu_edmp.h:121
inv_imu_edmp_apex_parameters_t::tap_max_peak_tol
uint8_t tap_max_peak_tol
Definition: inv_imu_edmp.h:147
inv_imu_edmp_pedometer_data_t
Pedometer outputs.
Definition: inv_imu_edmp.h:169
inv_imu_edmp_pedometer_data_t::step_cnt
uint16_t step_cnt
Number of steps.
Definition: inv_imu_edmp.h:171
inv_imu_edmp_pedometer_data_t::activity_class
inv_imu_edmp_activity_class_t activity_class
Detected activity.
Definition: inv_imu_edmp.h:180
inv_imu_edmp_pedometer_data_t::step_cadence
uint8_t step_cadence
Walk/Run cadency in number of samples.
Definition: inv_imu_edmp.h:177
inv_imu_edmp_tap_data_t
Tap outputs.
Definition: inv_imu_edmp.h:203
inv_imu_edmp_tap_data_t::double_tap_timing
uint8_t double_tap_timing
Definition: inv_imu_edmp.h:207
inv_imu_edmp_tap_data_t::num
inv_imu_edmp_tap_num_t num
Definition: inv_imu_edmp.h:204
inv_imu_edmp_tap_data_t::direction
inv_imu_edmp_tap_dir_t direction
Definition: inv_imu_edmp.h:206
inv_imu_edmp_tap_data_t::axis
inv_imu_edmp_tap_axis_t axis
Definition: inv_imu_edmp.h:205