summaryrefslogtreecommitdiffstats
path: root/libsensors/mlsdk/mllite/mldmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsensors/mlsdk/mllite/mldmp.h')
-rw-r--r--libsensors/mlsdk/mllite/mldmp.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/libsensors/mlsdk/mllite/mldmp.h b/libsensors/mlsdk/mllite/mldmp.h
new file mode 100644
index 0000000..ff3d24e
--- /dev/null
+++ b/libsensors/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 */
+/**
+ * @}
+**/