diff options
Diffstat (limited to 'mlsdk/mllite/mldmp.h')
-rw-r--r-- | mlsdk/mllite/mldmp.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/mlsdk/mllite/mldmp.h b/mlsdk/mllite/mldmp.h new file mode 100644 index 0000000..f519798 --- /dev/null +++ b/mlsdk/mllite/mldmp.h @@ -0,0 +1,96 @@ +/* + $License: + Copyright 2011 InvenSense, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + $ + */ +/***************************************************************************** * + * $Id: mldmp.h 5629 2011-06-11 03:13:08Z mcaramello $ + ******************************************************************************/ + +/** + * @defgroup MLDMP + * @brief + * + * These are the top level functions that define how to load the MPL. In order + * to use most of the features, the DMP must be loaded with some code. The + * loading procedure takes place when calling inv_dmp_open with a given DMP set + * function, after having open the serial communication with the device via + * inv_serial_start(). + * The DMP set function will load the DMP memory and enable a certain + * set of features. + * + * First select a DMP version from one of the released DMP sets. + * These could be: + * - DMP default to load and use the default DMP code featuring pedometer, + * gestures, and orientation. Use inv_dmp_open(). + * - DMP pedometer stand-alone to load and use the standalone pedometer + * implementation. Use inv_open_low_power_pedometer(). + * <!-- - DMP EIS ... Use inv_eis_open_dmp(). --> + * + * After inv_dmp_openXXX any number of appropriate initialization and configuration + * routines can be called. Each one of these routines will return an error code + * and will check to make sure that it is compatible with the the DMP version + * selected during the call to inv_dmp_open. + * + * Once the configuration is complete, make a call to inv_dmp_start(). This will + * finally turn on the DMP and run the code previously loaded. + * + * While the DMP is running, all data fetching, polling or other functions can + * be called and will return valid data. Some parameteres can be changed while + * the DMP is runing, while others cannot. Therefore it is important to always + * check the return code of each function. Check the error code list in mltypes + * to know what each returned error corresponds to. + * + * When no more motion processing is required, the library can be shut down and + * the DMP turned off. We can do that by calling inv_dmp_close(). Note that + * inv_dmp_close() will not close the serial communication automatically, which will + * remain open an active, in case another module needs to be loaded instead. + * If the intention is shutting down the MPL as well, an explicit call to + * inv_serial_stop() following inv_dmp_close() has to be made. + * + * The MPL additionally implements a basic state machine, whose purpose is to + * give feedback to the user on whether he is following all the required + * initialization steps. If an anomalous transition is detected, the user will + * be warned by a terminal message with the format: + * + * <tt>"Error : illegal state transition from STATE_1 to STATE_3"</tt> + * + * @{ + * @file mldmp.h + * @brief Top level entry functions to the MPL library with DMP support + */ + +#ifndef MLDMP_H +#define MLDMP_H +#ifdef INV_INCLUDE_LEGACY_HEADERS +#include "mldmp_legacy.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + inv_error_t inv_dmp_open(void); + inv_error_t inv_dmp_start(void); + inv_error_t inv_dmp_stop(void); + inv_error_t inv_dmp_close(void); + +#ifdef __cplusplus +} +#endif +#endif /* MLDMP_H */ +/** + * @} +**/ |