caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
Loading...
Searching...
No Matches
cfn_sal_dev_accelerometer.h
Go to the documentation of this file.
1
6#ifndef CAFFEINE_SAL_DEV_ACCELEROMETER_H
7#define CAFFEINE_SAL_DEV_ACCELEROMETER_H
8
9#ifdef __cplusplus
10extern "C"
11{
12#endif
13
14/* Includes ---------------------------------------------------------*/
15#include "cfn_sal.h"
16
17/* Defines ----------------------------------------------------------*/
18
19#define CFN_SAL_DEV_TYPE_ACCELEROMETER CFN_SAL_TYPE('A', 'C', 'L')
20
21/* Types Enums ------------------------------------------------------*/
22
32
39
48
56
64
76
82
90
91// Which physical interrupt pin on the sensor to use
97
98// Electrical mode of the interrupt pin
104
105// Active level of the interrupt pin
111
112/* Types Structs ----------------------------------------------------*/
113
114typedef struct
115{
118 // Mask of cfn_sal_dev_accelerometer_event_t to route to this pin
119 uint32_t event_mask;
121
122typedef struct
123{
124 int32_t x;
125 int32_t y;
126 int32_t z;
128
135
136typedef struct
137{
138 bool enable;
139 uint16_t threshold_mg;
140 uint16_t time_ms;
142
162
163typedef struct cfn_sal_dev_accelerometer_s cfn_sal_dev_accelerometer_t;
165
167 uint32_t event,
168 uint32_t error,
169 void *user_arg);
170
175{
176 cfn_hal_api_base_t base;
177
178 /* Measurement Operations */
179 cfn_hal_error_code_t (*read_xyz_mg)(cfn_sal_dev_accelerometer_t *driver,
181 cfn_hal_error_code_t (*read_xyz_raw)(cfn_sal_dev_accelerometer_t *driver,
183
184 /* Feature Data Retrieval */
185 cfn_hal_error_code_t (*read_fifo)(cfn_sal_dev_accelerometer_t *driver,
187 size_t *count);
188 cfn_hal_error_code_t (*read_step_counter)(cfn_sal_dev_accelerometer_t *driver, uint32_t *steps);
189 cfn_hal_error_code_t (*read_6d_orientation)(cfn_sal_dev_accelerometer_t *driver, uint8_t *orientation_code);
190 cfn_hal_error_code_t (*get_status)(cfn_sal_dev_accelerometer_t *driver, uint32_t *status_flags);
191 cfn_hal_error_code_t (*get_id)(cfn_sal_dev_accelerometer_t *driver, uint32_t *id_out);
192
194};
195
197
198CFN_SAL_CREATE_DRIVER_TYPE(sal_dev_accelerometer,
203
204/* Functions inline ------------------------------------------------- */
205
207 uint32_t peripheral_id,
208 void *dependency,
210 const cfn_sal_phy_t *phy,
213 void *user_arg)
214{
215 CFN_HAL_POPULATE_DRIVER(
216 driver, CFN_SAL_DEV_TYPE_ACCELEROMETER, peripheral_id, NULL, dependency, api, phy, config, callback, user_arg);
217}
218
221 const cfn_sal_phy_t *phy,
222 void *dependency,
224 void *user_arg);
226
227CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_init(cfn_sal_dev_accelerometer_t *driver)
228{
229 if (!driver)
230 {
231 return CFN_HAL_ERROR_BAD_PARAM;
232 }
233 driver->base.vmt = (const struct cfn_hal_api_base_s *) driver->api;
234 return cfn_hal_base_init(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER);
235}
236
237CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_deinit(cfn_sal_dev_accelerometer_t *driver)
238{
239 if (!driver)
240 {
241 return CFN_HAL_ERROR_BAD_PARAM;
242 }
243 return cfn_hal_base_deinit(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER);
244}
245
246CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_config_set(
248{
249 if (!driver)
250 {
251 return CFN_HAL_ERROR_BAD_PARAM;
252 }
253 driver->config = config;
254 return cfn_hal_base_config_set(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, (const void *) config);
255}
256
257CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_config_get(cfn_sal_dev_accelerometer_t *driver,
259{
260 if (!driver || !config || !driver->config)
261 {
262 return CFN_HAL_ERROR_BAD_PARAM;
263 }
264 *config = *(driver->config);
265 return CFN_HAL_ERROR_OK;
266}
267
268CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_callback_register(
270{
271 if (!driver)
272 {
273 return CFN_HAL_ERROR_BAD_PARAM;
274 }
275 driver->cb = callback;
276 driver->cb_user_arg = user_arg;
277 return cfn_hal_base_callback_register(
278 &driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, (cfn_hal_callback_t) callback, user_arg);
279}
280
282 cfn_hal_power_state_t state)
283{
284 if (!driver)
285 {
286 return CFN_HAL_ERROR_BAD_PARAM;
287 }
288 return cfn_hal_power_state_set(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, state);
289}
290
291CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_event_enable(cfn_sal_dev_accelerometer_t *driver,
292 uint32_t event_mask)
293{
294 if (!driver)
295 {
296 return CFN_HAL_ERROR_BAD_PARAM;
297 }
298 return cfn_hal_base_event_enable(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, event_mask);
299}
300
302 uint32_t event_mask)
303{
304 if (!driver)
305 {
306 return CFN_HAL_ERROR_BAD_PARAM;
307 }
308 return cfn_hal_base_event_disable(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, event_mask);
309}
310
311CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_event_get(cfn_sal_dev_accelerometer_t *driver,
312 uint32_t *event_mask)
313{
314 if (!driver)
315 {
316 return CFN_HAL_ERROR_BAD_PARAM;
317 }
318 return cfn_hal_base_event_get(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, event_mask);
319}
320
321CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_error_enable(cfn_sal_dev_accelerometer_t *driver,
322 uint32_t error_mask)
323{
324 if (!driver)
325 {
326 return CFN_HAL_ERROR_BAD_PARAM;
327 }
328 return cfn_hal_base_error_enable(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, error_mask);
329}
330
332 uint32_t error_mask)
333{
334 if (!driver)
335 {
336 return CFN_HAL_ERROR_BAD_PARAM;
337 }
338 return cfn_hal_base_error_disable(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, error_mask);
339}
340
341CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_error_get(cfn_sal_dev_accelerometer_t *driver,
342 uint32_t *error_mask)
343{
344 if (!driver)
345 {
346 return CFN_HAL_ERROR_BAD_PARAM;
347 }
348 return cfn_hal_base_error_get(&driver->base, CFN_SAL_DEV_TYPE_ACCELEROMETER, error_mask);
349}
350
351/* Service Specific Functions --------------------------------------- */
352
353CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_mg(cfn_sal_dev_accelerometer_t *driver,
355{
356 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
357 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, read_xyz_mg, driver, error, data_out);
358 return error;
359}
360
361CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_raw(cfn_sal_dev_accelerometer_t *driver,
363{
364 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
365 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, read_xyz_raw, driver, error, data_out);
366 return error;
367}
368
369CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_fifo(cfn_sal_dev_accelerometer_t *driver,
371 size_t *count)
372{
373 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
374 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, read_fifo, driver, error, data, count);
375 return error;
376}
377
378CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_get_status(cfn_sal_dev_accelerometer_t *driver,
379 uint32_t *status_flags)
380{
381 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
382 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, get_status, driver, error, status_flags);
383 return error;
384}
385
387 uint32_t *steps)
388{
389 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
390 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, read_step_counter, driver, error, steps);
391 return error;
392}
393
395 uint8_t *orientation_code)
396{
397 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
398 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
399 CFN_SAL_DEV_TYPE_ACCELEROMETER, read_6d_orientation, driver, error, orientation_code);
400 return error;
401}
402
403CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_get_id(cfn_sal_dev_accelerometer_t *driver,
404 uint32_t *id_out)
405{
406 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
407 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(CFN_SAL_DEV_TYPE_ACCELEROMETER, get_id, driver, error, id_out);
408 return error;
409}
410
412{
413 if (driver && driver->base.type == CFN_SAL_DEV_TYPE_ACCELEROMETER && driver->api)
414 {
415 if (driver->api->handle_interrupt)
416 {
417 driver->api->handle_interrupt(driver);
418 }
419 }
420}
421
422#ifdef __cplusplus
423}
424#endif
425
426#endif /* CAFFEINE_SAL_DEV_ACCELEROMETER_H */
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
cfn_sal_dev_accelerometer_event_t
Definition cfn_sal_dev_accelerometer.h:24
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_FREEFALL
Definition cfn_sal_dev_accelerometer.h:27
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_DATA_READY
Definition cfn_sal_dev_accelerometer.h:26
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_DOUBLE_TAP
Definition cfn_sal_dev_accelerometer.h:30
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_WAKEUP
Definition cfn_sal_dev_accelerometer.h:28
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_SINGLE_TAP
Definition cfn_sal_dev_accelerometer.h:29
@ CFN_SAL_DEV_ACCELEROMETER_EVENT_NONE
Definition cfn_sal_dev_accelerometer.h:25
cfn_sal_dev_accelerometer_bw_t
Definition cfn_sal_dev_accelerometer.h:78
@ CFN_SAL_DEV_ACCELEROMETER_BW_ODR_DIV_4
Definition cfn_sal_dev_accelerometer.h:80
@ CFN_SAL_DEV_ACCELEROMETER_BW_ODR_DIV_2
Definition cfn_sal_dev_accelerometer.h:79
cfn_sal_dev_accelerometer_resolution_t
Definition cfn_sal_dev_accelerometer.h:41
@ CFN_SAL_DEV_ACCELEROMETER_RESOLUTION_16_BIT
Definition cfn_sal_dev_accelerometer.h:46
@ CFN_SAL_DEV_ACCELEROMETER_RESOLUTION_12_BIT
Definition cfn_sal_dev_accelerometer.h:44
@ CFN_SAL_DEV_ACCELEROMETER_RESOLUTION_8_BIT
Definition cfn_sal_dev_accelerometer.h:42
@ CFN_SAL_DEV_ACCELEROMETER_RESOLUTION_14_BIT
Definition cfn_sal_dev_accelerometer.h:45
@ CFN_SAL_DEV_ACCELEROMETER_RESOLUTION_10_BIT
Definition cfn_sal_dev_accelerometer.h:43
cfn_sal_dev_accelerometer_int_level_t
Definition cfn_sal_dev_accelerometer.h:107
@ CFN_SAL_DEV_ACCELEROMETER_INT_LEVEL_ACTIVE_LOW
Definition cfn_sal_dev_accelerometer.h:108
@ CFN_SAL_DEV_ACCELEROMETER_INT_LEVEL_ACTIVE_HIGH
Definition cfn_sal_dev_accelerometer.h:109
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_event_get(cfn_sal_dev_accelerometer_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_accelerometer.h:311
cfn_sal_dev_accelerometer_mode_t
Definition cfn_sal_dev_accelerometer.h:34
@ CFN_SAL_DEV_ACCELEROMETER_MODE_LOW_POWER
Definition cfn_sal_dev_accelerometer.h:36
@ CFN_SAL_DEV_ACCELEROMETER_MODE_NORMAL
Definition cfn_sal_dev_accelerometer.h:35
@ CFN_SAL_DEV_ACCELEROMETER_MODE_STANDBY
Definition cfn_sal_dev_accelerometer.h:37
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_event_enable(cfn_sal_dev_accelerometer_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_accelerometer.h:291
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_fifo(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data, size_t *count)
Definition cfn_sal_dev_accelerometer.h:369
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_callback_register(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_callback_t callback, void *user_arg)
Definition cfn_sal_dev_accelerometer.h:268
cfn_hal_error_code_t cfn_sal_dev_accelerometer_destruct(cfn_sal_dev_accelerometer_t *driver)
cfn_sal_dev_accelerometer_filter_t
Definition cfn_sal_dev_accelerometer.h:50
@ CFN_SAL_DEV_ACCELEROMETER_FILTER_NONE
Definition cfn_sal_dev_accelerometer.h:51
@ CFN_SAL_DEV_ACCELEROMETER_FILTER_HIGH_PASS
Definition cfn_sal_dev_accelerometer.h:52
@ CFN_SAL_DEV_ACCELEROMETER_FILTER_LOW_PASS
Definition cfn_sal_dev_accelerometer.h:53
@ CFN_SAL_DEV_ACCELEROMETER_FILTER_BAND_PASS
Definition cfn_sal_dev_accelerometer.h:54
void(* cfn_sal_dev_accelerometer_callback_t)(cfn_sal_dev_accelerometer_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_accelerometer.h:166
#define CFN_SAL_DEV_TYPE_ACCELEROMETER
Definition cfn_sal_dev_accelerometer.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_error_disable(cfn_sal_dev_accelerometer_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_accelerometer.h:331
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_config_get(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_config_t *config)
Definition cfn_sal_dev_accelerometer.h:257
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_error_enable(cfn_sal_dev_accelerometer_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_accelerometer.h:321
cfn_hal_error_code_t cfn_sal_dev_accelerometer_construct(cfn_sal_dev_accelerometer_t *driver, const cfn_sal_dev_accelerometer_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_accelerometer_callback_t callback, void *user_arg)
cfn_sal_dev_accelerometer_int_pin_t
Definition cfn_sal_dev_accelerometer.h:93
@ CFN_SAL_DEV_ACCELEROMETER_INT_PIN_1
Definition cfn_sal_dev_accelerometer.h:94
@ CFN_SAL_DEV_ACCELEROMETER_INT_PIN_2
Definition cfn_sal_dev_accelerometer.h:95
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_event_disable(cfn_sal_dev_accelerometer_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_accelerometer.h:301
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_init(cfn_sal_dev_accelerometer_t *driver)
Definition cfn_sal_dev_accelerometer.h:227
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_accelerometer_api_s)
cfn_sal_dev_accelerometer_fifo_mode_t
Definition cfn_sal_dev_accelerometer.h:84
@ CFN_SAL_DEV_ACCELEROMETER_FIFO_MODE_STREAM
Definition cfn_sal_dev_accelerometer.h:87
@ CFN_SAL_DEV_ACCELEROMETER_FIFO_MODE_TRIGGER
Definition cfn_sal_dev_accelerometer.h:88
@ CFN_SAL_DEV_ACCELEROMETER_FIFO_MODE_BYPASS
Definition cfn_sal_dev_accelerometer.h:85
@ CFN_SAL_DEV_ACCELEROMETER_FIFO_MODE_FIFO
Definition cfn_sal_dev_accelerometer.h:86
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_power_state_set(cfn_sal_dev_accelerometer_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_accelerometer.h:281
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_raw(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data_out)
Definition cfn_sal_dev_accelerometer.h:361
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_get_id(cfn_sal_dev_accelerometer_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_accelerometer.h:403
struct cfn_sal_dev_accelerometer_s cfn_sal_dev_accelerometer_t
Definition cfn_sal_dev_accelerometer.h:163
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_6d_orientation(cfn_sal_dev_accelerometer_t *driver, uint8_t *orientation_code)
Definition cfn_sal_dev_accelerometer.h:394
cfn_sal_dev_accelerometer_range_t
Definition cfn_sal_dev_accelerometer.h:58
@ CFN_SAL_DEV_ACCELEROMETER_RANGE_4G
Definition cfn_sal_dev_accelerometer.h:60
@ CFN_SAL_DEV_ACCELEROMETER_RANGE_2G
Definition cfn_sal_dev_accelerometer.h:59
@ CFN_SAL_DEV_ACCELEROMETER_RANGE_16G
Definition cfn_sal_dev_accelerometer.h:62
@ CFN_SAL_DEV_ACCELEROMETER_RANGE_8G
Definition cfn_sal_dev_accelerometer.h:61
CFN_HAL_INLINE void cfn_sal_dev_accelerometer_handle_interrupt(cfn_sal_dev_accelerometer_t *driver)
Definition cfn_sal_dev_accelerometer.h:411
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_mg(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data_out)
Definition cfn_sal_dev_accelerometer.h:353
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_get_status(cfn_sal_dev_accelerometer_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_accelerometer.h:378
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_read_step_counter(cfn_sal_dev_accelerometer_t *driver, uint32_t *steps)
Definition cfn_sal_dev_accelerometer.h:386
cfn_sal_dev_accelerometer_int_mode_t
Definition cfn_sal_dev_accelerometer.h:100
@ CFN_SAL_DEV_ACCELEROMETER_INT_MODE_OPEN_DRAIN
Definition cfn_sal_dev_accelerometer.h:102
@ CFN_SAL_DEV_ACCELEROMETER_INT_MODE_PUSH_PULL
Definition cfn_sal_dev_accelerometer.h:101
CFN_HAL_INLINE void cfn_sal_dev_accelerometer_populate(cfn_sal_dev_accelerometer_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_accelerometer_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_accelerometer_config_t *config, cfn_sal_dev_accelerometer_callback_t callback, void *user_arg)
Definition cfn_sal_dev_accelerometer.h:206
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_error_get(cfn_sal_dev_accelerometer_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_accelerometer.h:341
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_config_set(cfn_sal_dev_accelerometer_t *driver, const cfn_sal_dev_accelerometer_config_t *config)
Definition cfn_sal_dev_accelerometer.h:246
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_accelerometer_deinit(cfn_sal_dev_accelerometer_t *driver)
Definition cfn_sal_dev_accelerometer.h:237
cfn_sal_dev_accelerometer_odr_t
Definition cfn_sal_dev_accelerometer.h:66
@ CFN_SAL_DEV_ACCELEROMETER_ODR_10_HZ
Definition cfn_sal_dev_accelerometer.h:68
@ CFN_SAL_DEV_ACCELEROMETER_ODR_100_HZ
Definition cfn_sal_dev_accelerometer.h:71
@ CFN_SAL_DEV_ACCELEROMETER_ODR_50_HZ
Definition cfn_sal_dev_accelerometer.h:70
@ CFN_SAL_DEV_ACCELEROMETER_ODR_1_HZ
Definition cfn_sal_dev_accelerometer.h:67
@ CFN_SAL_DEV_ACCELEROMETER_ODR_25_HZ
Definition cfn_sal_dev_accelerometer.h:69
@ CFN_SAL_DEV_ACCELEROMETER_ODR_400_HZ
Definition cfn_sal_dev_accelerometer.h:73
@ CFN_SAL_DEV_ACCELEROMETER_ODR_1000_HZ
Definition cfn_sal_dev_accelerometer.h:74
@ CFN_SAL_DEV_ACCELEROMETER_ODR_200_HZ
Definition cfn_sal_dev_accelerometer.h:72
Accelerometer Virtual Method Table (VMT).
Definition cfn_sal_dev_accelerometer.h:175
cfn_hal_api_base_t base
Definition cfn_sal_dev_accelerometer.h:176
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_accelerometer_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_accelerometer.h:190
cfn_hal_error_code_t(* read_xyz_raw)(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data_out)
Definition cfn_sal_dev_accelerometer.h:181
void(* handle_interrupt)(cfn_sal_dev_accelerometer_t *driver)
Definition cfn_sal_dev_accelerometer.h:193
cfn_hal_error_code_t(* read_6d_orientation)(cfn_sal_dev_accelerometer_t *driver, uint8_t *orientation_code)
Definition cfn_sal_dev_accelerometer.h:189
cfn_hal_error_code_t(* read_xyz_mg)(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data_out)
Definition cfn_sal_dev_accelerometer.h:179
cfn_hal_error_code_t(* read_fifo)(cfn_sal_dev_accelerometer_t *driver, cfn_sal_dev_accelerometer_data_t *data, size_t *count)
Definition cfn_sal_dev_accelerometer.h:185
cfn_hal_error_code_t(* read_step_counter)(cfn_sal_dev_accelerometer_t *driver, uint32_t *steps)
Definition cfn_sal_dev_accelerometer.h:188
cfn_hal_error_code_t(* get_id)(cfn_sal_dev_accelerometer_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_accelerometer.h:191
Definition cfn_sal_dev_accelerometer.h:144
cfn_sal_dev_accelerometer_resolution_t resolution
Definition cfn_sal_dev_accelerometer.h:146
cfn_sal_dev_accelerometer_mode_t mode
Definition cfn_sal_dev_accelerometer.h:145
bool significant_motion_enable
Definition cfn_sal_dev_accelerometer.h:158
void * custom
Definition cfn_sal_dev_accelerometer.h:160
cfn_sal_dev_accelerometer_bw_t bandwidth
Definition cfn_sal_dev_accelerometer.h:148
cfn_sal_dev_accelerometer_int_config_t int1_config
Definition cfn_sal_dev_accelerometer.h:153
cfn_sal_dev_accelerometer_int_config_t int2_config
Definition cfn_sal_dev_accelerometer.h:154
bool pedometer_enable
Definition cfn_sal_dev_accelerometer.h:157
cfn_sal_dev_accelerometer_range_t range
Definition cfn_sal_dev_accelerometer.h:149
uint8_t fifo_watermark
Definition cfn_sal_dev_accelerometer.h:152
cfn_sal_dev_accelerometer_odr_t odr
Definition cfn_sal_dev_accelerometer.h:147
cfn_sal_dev_accelerometer_tap_config_t tap_config
Definition cfn_sal_dev_accelerometer.h:155
bool orientation_6d_enable
Definition cfn_sal_dev_accelerometer.h:159
cfn_sal_dev_accelerometer_filter_t filter
Definition cfn_sal_dev_accelerometer.h:150
cfn_sal_dev_accelerometer_fifo_mode_t fifo_mode
Definition cfn_sal_dev_accelerometer.h:151
cfn_sal_dev_accelerometer_freefall_config_t freefall_config
Definition cfn_sal_dev_accelerometer.h:156
Definition cfn_sal_dev_accelerometer.h:123
int32_t z
Definition cfn_sal_dev_accelerometer.h:126
int32_t y
Definition cfn_sal_dev_accelerometer.h:125
int32_t x
Definition cfn_sal_dev_accelerometer.h:124
Definition cfn_sal_dev_accelerometer.h:137
uint16_t time_ms
Definition cfn_sal_dev_accelerometer.h:140
uint16_t threshold_mg
Definition cfn_sal_dev_accelerometer.h:139
bool enable
Definition cfn_sal_dev_accelerometer.h:138
Definition cfn_sal_dev_accelerometer.h:115
cfn_sal_dev_accelerometer_int_level_t level
Definition cfn_sal_dev_accelerometer.h:117
uint32_t event_mask
Definition cfn_sal_dev_accelerometer.h:119
cfn_sal_dev_accelerometer_int_mode_t mode
Definition cfn_sal_dev_accelerometer.h:116
Definition cfn_sal_dev_accelerometer.h:130
uint8_t threshold
Definition cfn_sal_dev_accelerometer.h:133
bool double_tap
Definition cfn_sal_dev_accelerometer.h:132
bool enable
Definition cfn_sal_dev_accelerometer.h:131
Generic physical mapping for services.
Definition cfn_sal_types.h:26