1/* 2 quat_accuracy_monitor.h 3 $License: 4 Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved. 5 See included License.txt for License information. 6 $ 7 */ 8 9/******************************************************************************* 10 * 11 * $Id:$ 12 * 13 ******************************************************************************/ 14 15#ifndef QUAT_ACCURARCY_MONITOR_H__ 16#define QUAT_ACCURARCY_MONITOR_H__ 17 18#include "mltypes.h" 19 20#ifdef __cplusplus 21extern "C" { 22#endif 23enum accuracy_signal_type_e { 24 TYPE_NAV_QUAT, 25 TYPE_GAM_QUAT, 26 TYPE_NAV_QUAT_ADVANCED, 27 TYPE_GAM_QUAT_ADVANCED, 28 TYPE_NAV_QUAT_BASIC, 29 TYPE_GAM_QUAT_BASIC, 30 TYPE_MAG, 31 TYPE_GYRO, 32 TYPE_ACCEL, 33}; 34 35inv_error_t inv_init_quat_accuracy_monitor(void); 36 37void set_accuracy_threshold(enum accuracy_signal_type_e type, double threshold); 38double get_accuracy_threshold(enum accuracy_signal_type_e type); 39void set_accuracy_weight(enum accuracy_signal_type_e type, int weight); 40int get_accuracy_weight(enum accuracy_signal_type_e type); 41 42int8_t get_accuracy_accuracy(enum accuracy_signal_type_e type); 43 44void inv_reset_quat_accuracy(void); 45double get_6axis_correction_term(void); 46double get_9axis_correction_term(void); 47int get_9axis_accuracy_state(); 48 49void set_6axis_error_average(double value); 50double get_6axis_error_bound(void); 51double get_compass_correction(void); 52double get_9axis_error_bound(void); 53 54float get_confidence_interval(void); 55void set_compass_uncertainty(float value); 56 57inv_error_t inv_enable_quat_accuracy_monitor(void); 58inv_error_t inv_disable_quat_accuracy_monitor(void); 59inv_error_t inv_start_quat_accuracy_monitor(void); 60inv_error_t inv_stop_quat_accuracy_monitor(void); 61 62double get_compassNgravity(void); 63double get_init_compassNgravity(void); 64 65float inv_heading_accuracy_check(float orient[3], float *heading, int8_t *accuracy); 66 67#ifdef __cplusplus 68} 69#endif 70 71#endif // QUAT_ACCURARCY_MONITOR_H__ 72