17494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall/*
27494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall $License:
37494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.
47494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    See included License.txt for License information.
57494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall $
67494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall */
77494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
87494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#ifndef MLDMP_MAGDISTURB_H__
97494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#define MLDMP_MAGDISTURB_H__
107494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
117494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#include "mltypes.h"
127494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
137494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#ifdef __cplusplus
147494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrallextern "C" {
157494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#endif
167494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
177494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    int inv_check_magnetic_disturbance(unsigned long delta_time, const long *quat,
187494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall        const long *compass, const long *gravity);
197494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
207494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    void inv_track_dip_angle(int mode, float currdip);
217494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
227494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_enable_magnetic_disturbance(void);
237494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_disable_magnetic_disturbance(void);
247494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    int inv_get_magnetic_disturbance_state();
257494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_set_magnetic_disturbance(int time_ms);
267494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_disable_dip_tracking(void);
277494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_enable_dip_tracking(void);
287494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    inv_error_t inv_init_magnetic_disturbance(void);
297494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
307494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall    float Mag3ofNormalizedLong(const long *x);
317494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
327494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#ifdef __cplusplus
337494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall}
347494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#endif
357494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
367494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall
377494581689b0fc1d8addd016b1c92d74d01f5ad4JP Abgrall#endif // MLDMP_MAGDISTURB_H__
38