summaryrefslogtreecommitdiffstats
path: root/libsensors/mlsdk/mllite/compass.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsensors/mlsdk/mllite/compass.h')
-rw-r--r--libsensors/mlsdk/mllite/compass.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/libsensors/mlsdk/mllite/compass.h b/libsensors/mlsdk/mllite/compass.h
new file mode 100644
index 0000000..f0bdb58
--- /dev/null
+++ b/libsensors/mlsdk/mllite/compass.h
@@ -0,0 +1,92 @@
+/*
+ $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: compass.h 5629 2011-06-11 03:13:08Z mcaramello $
+ *
+ *******************************************************************************/
+
+#ifndef COMPASS_H
+#define COMPASS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mltypes.h"
+#include "mpu.h"
+#ifdef INV_INCLUDE_LEGACY_HEADERS
+#include "compass_legacy.h"
+#endif
+ /* ------------ */
+ /* - Defines. - */
+ /* ------------ */
+
+#define YAS_MAX_FILTER_LEN (20)
+#define YAS_DEFAULT_FILTER_LEN (20)
+#define YAS_DEFAULT_FILTER_THRESH (300) /* 300 nT */
+#define YAS_DEFAULT_FILTER_NOISE (2000 * 2000) /* standard deviation 2000 nT */
+
+ /* --------------- */
+ /* - Structures. - */
+ /* --------------- */
+
+struct yas_adaptive_filter {
+ int num;
+ int index;
+ int len;
+ float noise;
+ float sequence[YAS_MAX_FILTER_LEN];
+};
+
+struct yas_thresh_filter {
+ float threshold;
+ float last;
+};
+
+typedef struct {
+ struct yas_adaptive_filter adap_filter[3];
+ struct yas_thresh_filter thresh_filter[3];
+} yas_filter_handle_t;
+
+typedef struct {
+ int (*init)(yas_filter_handle_t *t);
+ int (*update)(yas_filter_handle_t *t, float *input, float *output);
+} yas_filter_if_s;
+
+ /* --------------------- */
+ /* - Function p-types. - */
+ /* --------------------- */
+
+ unsigned char inv_compass_present(void);
+ unsigned char inv_get_compass_slave_addr(void);
+ inv_error_t inv_get_compass_data(long *data);
+ inv_error_t inv_set_compass_bias(long *bias);
+ unsigned short inv_get_compass_id(void);
+ inv_error_t inv_set_compass_offset(void);
+ inv_error_t inv_compass_check_range(void);
+ inv_error_t inv_compass_write_reg(unsigned char reg, unsigned char val);
+ inv_error_t inv_compass_read_reg(unsigned char reg, unsigned char *val);
+ inv_error_t inv_compass_read_scale(long *val);
+
+ int yas_filter_init(yas_filter_if_s *f);
+
+#ifdef __cplusplus
+}
+#endif
+#endif // COMPASS_H