forked from boschsensortec/BMI08x_SensorAPI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bmi085.h
154 lines (143 loc) · 5.57 KB
/
bmi085.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/**
* Copyright (C) 2017 - 2018 Bosch Sensortec GmbH
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* Neither the name of the copyright holder nor the names of the
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
* OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
*
* The information provided is believed to be accurate and reliable.
* The copyright holder assumes no responsibility
* for the consequences of use
* of such information nor for any infringement of patents or
* other rights of third parties which may result from its use.
* No license is granted by implication or otherwise under any patent or
* patent rights of the copyright holder.
*
* @file bmi085.h
* @date 24 Aug 2018
* @version 1.2.0
*
*/
/*! \file bmi085.h
\brief Sensor Driver for BMI085 family of sensors */
#ifndef BMI085_H_
#define BMI085_H_
#ifdef __cplusplus
extern "C"
{
#endif
/**********************************************************************************/
/* header includes */
/**********************************************************************************/
/* header files */
#include "bmi08x_defs.h"
#if BMI08X_FEATURE_BMI085 == 1
/**********************************************************************************/
/* (extern) variable declarations */
/**********************************************************************************/
/**********************************************************************************/
/* function prototype declarations */
/*!
* @brief This API is the entry point for bmi085 sensors.
* It performs the selection of I2C/SPI read mechanism according to the
* selected interface and reads the chip-id of accel & gyro sensors.
*
* @param[in,out] dev : Structure instance of bmi08x_dev.
*
* @note : Refer user guide for detailed info.
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_init(struct bmi08x_dev *dev);
/*!
* @brief This API uploads the bmi085 config file onto the device.
*
* @param[in,out] dev : Structure instance of bmi08x_dev.
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_apply_config_file(struct bmi08x_dev *dev);
/*!
* @brief This API is used to enable/disable the data synchronization
* feature.
*
* @param[in] sync_cfg : configure sync feature
* @param[in] dev : Structure instance of bmi08x_dev.
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_configure_data_synchronization(struct bmi08x_data_sync_cfg sync_cfg, struct bmi08x_dev *dev);
/*!
* @brief This API is used to enable/disable and configure the anymotion
* feature.
*
* @param[in] anymotion_cfg : configure anymotion feature
* @param[in] dev : Structure instance of bmi08x_dev.
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_configure_anymotion(struct bmi08x_anymotion_cfg anymotion_cfg, const struct bmi08x_dev *dev);
/*!
* @brief This API reads the synchronized accel & gyro data from the sensor,
* store it in the bmi085_sensor_data structure instance
* passed by the user.
*
* @param[out] accel : Structure pointer to store accel data
* @param[out] gyro : Structure pointer to store gyro data
* @param[in] dev : Structure instance of bmi08x_dev.
*
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_get_synchronized_data(struct bmi08x_sensor_data *accel, struct bmi08x_sensor_data *gyro,
const struct bmi08x_dev *dev);
/*!
* @brief This API configures the synchronization interrupt
* based on the user settings in the bmi08x_int_cfg
* structure instance.
*
* @param[in] int_config : Structure instance of accel bmi08_int_cfg.
* @param[in] dev : Structure instance of bmi08x_dev.
* @note : Refer user guide for detailed info.
*
* @return Result of API execution status
* @retval zero -> Success / -ve value -> Error
*/
int8_t bmi085_set_data_sync_int_config(const struct bmi08x_int_cfg *int_config, const struct bmi08x_dev *dev);
#endif
#ifdef __cplusplus
}
#endif
#endif /* BMI085_H_ */
/** @}*/