1c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro/*
2c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro $License:
3c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.
4c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    See included License.txt for License information.
5c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro $
6c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro */
7c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#include "mltypes.h"
8c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
9c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#ifndef INV_HAL_OUTPUTS_H__
10c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#define INV_HAL_OUTPUTS_H__
11c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
12c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#ifdef __cplusplus
13c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaroextern "C" {
14c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#endif
15c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
16c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_orientation(float *values, int8_t *accuracy,
17c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                         inv_time_t * timestamp);
18c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_accelerometer(float *values, int8_t *accuracy,
19c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                           inv_time_t * timestamp);
20c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_gyroscope(float *values, int8_t *accuracy,
21c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                       inv_time_t * timestamp);
22c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_gyroscope_raw(float *values, int8_t *accuracy,
23c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                       inv_time_t * timestamp);
24c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_magnetic_field(float *values, int8_t *accuracy,
25c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                            inv_time_t * timestamp);
26c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro	int inv_get_sensor_type_magnetic_field_raw(float *values, int8_t *accuracy,
27c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                            inv_time_t * timestamp);
28c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_rotation_vector(float *values, int8_t *accuracy,
29c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro            inv_time_t * timestamp);
30c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
31c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_linear_acceleration(float *values,
32c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro            int8_t *accuracy,
33c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro            inv_time_t * timestamp);
34c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_gravity(float *values, int8_t *accuracy,
35c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                     inv_time_t * timestamp);
36c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
37c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_orientation_6_axis(float *values, int8_t *accuracy,
38c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                         inv_time_t * timestamp);
39c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_orientation_geomagnetic(float *values, int8_t *accuracy,
40c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                         inv_time_t * timestamp);
41c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_rotation_vector_6_axis(float *values, int8_t *accuracy,
42c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                         inv_time_t * timestamp);
43c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    int inv_get_sensor_type_geomagnetic_rotation_vector(float *values, int8_t *accuracy,
44c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro                                         inv_time_t * timestamp);
45c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
46c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    inv_error_t inv_enable_hal_outputs(void);
47c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    inv_error_t inv_disable_hal_outputs(void);
48c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    inv_error_t inv_init_hal_outputs(void);
49c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    inv_error_t inv_start_hal_outputs(void);
50c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    inv_error_t inv_stop_hal_outputs(void);
51c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
52c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    // Set data rates for virtual sensors
53c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_linear_acceleration_sample_rate(long sample_rate_us);
54c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_orientation_sample_rate(long sample_rate_us);
55c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_rotation_vector_sample_rate(long sample_rate_us);
56c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_gravity_sample_rate(long sample_rate_us);
57c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_orientation_6_axis_sample_rate(long sample_rate_us);
58c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_orientation_geomagnetic_sample_rate(long sample_rate_us);
59c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_rotation_vector_6_axis_sample_rate(long sample_rate_us);
60c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro    void inv_set_geomagnetic_rotation_vector_sample_rate(long sample_rate_us);
61c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
62c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#ifdef __cplusplus
63c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro}
64c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#endif
65c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro
66c3d4ca9f2df5ddf9894b36d1554fdfc95d625d3fNick Vaccaro#endif                          // INV_HAL_OUTPUTS_H__
67