diff options
Diffstat (limited to '60xx/mlsdk/mllite/mlcontrol.h')
-rw-r--r-- | 60xx/mlsdk/mllite/mlcontrol.h | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/60xx/mlsdk/mllite/mlcontrol.h b/60xx/mlsdk/mllite/mlcontrol.h deleted file mode 100644 index a834fc6..0000000 --- a/60xx/mlsdk/mllite/mlcontrol.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - $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. - $ - */ -/******************************************************************************* - * - * $RCSfile: mlcontrol.h,v $ - * - * $Date: 2011-06-10 20:13:08 -0700 (Fri, 10 Jun 2011) $ - * - * $Revision: 5629 $ - * - *******************************************************************************/ - -/*******************************************************************************/ -/** @defgroup INV_CONTROL - - The Control processes gyroscopes and accelerometers to provide control - signals that can be used in user interfaces to manipulate objects such as - documents, images, cursors, menus, etc. - - @{ - @file mlcontrol.h - @brief Header file for the Control Library. -*/ -/******************************************************************************/ -#ifndef MLCONTROL_H -#define MLCONTROL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include "mltypes.h" -#include "ml.h" -#ifdef INV_INCLUDE_LEGACY_HEADERS -#include "mlcontrol_legacy.h" -#endif - - /* ------------ */ - /* - Defines. - */ - /* ------------ */ - - /*******************************************************************************/ - /* Control Signals. */ - /*******************************************************************************/ - -#define INV_CONTROL_1 0x0001 -#define INV_CONTROL_2 0x0002 -#define INV_CONTROL_3 0x0004 -#define INV_CONTROL_4 0x0008 - - /*******************************************************************************/ - /* Control Functions. */ - /*******************************************************************************/ - -#define INV_GRID 0x0001 // Indicates that the user will be controlling a system that - // has discrete steps, such as icons, menu entries, pixels, etc. -#define INV_SMOOTH 0x0002 // Indicates that noise from unintentional motion should be filtered out. -#define INV_DEAD_ZONE 0x0004 // Indicates that a dead zone should be used, below which sensor data is set to zero. -#define INV_HYSTERESIS 0x0008 // Indicates that, when INV_GRID is selected, hysteresis should be used to prevent - // the control signal from switching rapidly across elements of the grid.</dd> - - /*******************************************************************************/ - /* Integral reset options. */ - /*******************************************************************************/ - -#define INV_NO_RESET 0x0000 -#define INV_RESET 0x0001 - - /*******************************************************************************/ - /* Data select options. */ - /*******************************************************************************/ - -#define INV_CTRL_SIGNAL 0x0000 -#define INV_CTRL_GRID_NUM 0x0001 - - /*******************************************************************************/ - /* Control Axis. */ - /*******************************************************************************/ -#define INV_CTRL_PITCH 0x0000 // (INV_PITCH >> 1) -#define INV_CTRL_ROLL 0x0001 // (INV_ROLL >> 1) -#define INV_CTRL_YAW 0x0002 // (INV_YAW >> 1) - - /*******************************************************************************/ - /* control_params structure default values. */ - /*******************************************************************************/ - -#define MLCTRL_SENSITIVITY_0_DEFAULT 128 -#define MLCTRL_SENSITIVITY_1_DEFAULT 128 -#define MLCTRL_SENSITIVITY_2_DEFAULT 128 -#define MLCTRL_SENSITIVITY_3_DEFAULT 128 -#define MLCTRL_FUNCTIONS_DEFAULT 0 -#define MLCTRL_CONTROL_SIGNALS_DEFAULT 0 -#define MLCTRL_PARAMETER_ARRAY_0_DEFAULT 0 -#define MLCTRL_PARAMETER_ARRAY_1_DEFAULT 0 -#define MLCTRL_PARAMETER_ARRAY_2_DEFAULT 0 -#define MLCTRL_PARAMETER_ARRAY_3_DEFAULT 0 -#define MLCTRL_PARAMETER_AXIS_0_DEFAULT 0 -#define MLCTRL_PARAMETER_AXIS_1_DEFAULT 0 -#define MLCTRL_PARAMETER_AXIS_2_DEFAULT 0 -#define MLCTRL_PARAMETER_AXIS_3_DEFAULT 0 -#define MLCTRL_GRID_THRESHOLD_0_DEFAULT 1 -#define MLCTRL_GRID_THRESHOLD_1_DEFAULT 1 -#define MLCTRL_GRID_THRESHOLD_2_DEFAULT 1 -#define MLCTRL_GRID_THRESHOLD_3_DEFAULT 1 -#define MLCTRL_GRID_MAXIMUM_0_DEFAULT 0 -#define MLCTRL_GRID_MAXIMUM_1_DEFAULT 0 -#define MLCTRL_GRID_MAXIMUM_2_DEFAULT 0 -#define MLCTRL_GRID_MAXIMUM_3_DEFAULT 0 -#define MLCTRL_GRID_CALLBACK_DEFAULT 0 - - /* --------------- */ - /* - Structures. - */ - /* --------------- */ - - /**************************************************************************/ - /* Control Parameters Structure. */ - /**************************************************************************/ - - struct control_params { - // Sensitivity of control signal 1, 2, 3, and 4. - unsigned short sensitivity[4]; - // Indicates what functions will be used. Can be a bitwise OR of INV_GRID, - // ML_SMOOT, INV_DEAD_ZONE, and INV_HYSTERISIS. - unsigned short functions; - // Indicates which parameter array is being assigned to a control signal. - // Must be one of INV_GYROS, INV_ANGULAR_VELOCITY, or - // INV_ANGULAR_VELOCITY_WORLD. - unsigned short parameterArray[4]; - // Indicates which axis of the parameter array will be used. Must be - // INV_ROLL, INV_PITCH, or INV_YAW. - unsigned short parameterAxis[4]; - // Threshold of the control signal at which the grid number will be - // incremented or decremented. - long gridThreshold[4]; - // Maximum grid number for the control signal. - long gridMaximum[4]; - // User defined callback that will trigger when the grid location changes. - void (*gridCallback) ( - // Indicates which control signal crossed a grid threshold. Must be - // one of INV_CONTROL_1, INV_CONTROL_2, INV_CONTROL_3 or INV_CONTROL_4. - unsigned short controlSignal, - // An array of four numbers representing the grid number for each - // control signal. - long *gridNum, - // An array of four numbers representing the change in grid number - // for each control signal. - long *gridChange); - }; - - struct control_obj { - - long gridNum[4]; // Current grid number for each control signal. - long controlInt[4]; // Current data for each control signal. - long lastGridNum[4]; // Previous grid number - unsigned char controlDir[4]; // Direction of control signal - long gridChange[4]; // Change in grid number - - long mlGridNumDMP[4]; - long gridNumOffset[4]; - long prevDMPGridNum[4]; - - }; - - /* --------------------- */ - /* - Function p-types. - */ - /* --------------------- */ - - /**************************************************************************/ - /* ML Control Functions. */ - /**************************************************************************/ - - unsigned short inv_get_control_params(struct control_params *params); - unsigned short inv_set_control_params(struct control_params *params); - - /*API for handling control signals */ - inv_error_t inv_set_control_sensitivity(unsigned short controlSignal, - long sensitivity); - inv_error_t inv_set_control_func(unsigned short function); - inv_error_t inv_get_control_signal(unsigned short controlSignal, - unsigned short reset, long *data); - inv_error_t inv_get_grid_num(unsigned short controlSignal, - unsigned short reset, long *data); - inv_error_t inv_set_grid_thresh(unsigned short controlSignal, - long threshold); - inv_error_t inv_set_grid_max(unsigned short controlSignal, long maximum); - inv_error_t - inv_set_grid_callback(void (*func) - (unsigned short controlSignal, long *gridNum, - long *gridChange)); - inv_error_t inv_set_control_data(unsigned short controlSignal, - unsigned short parameterArray, - unsigned short parameterNum); - inv_error_t inv_get_control_data(long *controlSignal, long *gridNum, - long *gridChange); - inv_error_t inv_update_control(struct inv_obj_t *inv_obj); - inv_error_t inv_enable_control(void); - inv_error_t inv_disable_control(void); - -#ifdef __cplusplus -} -#endif -#endif /* MLCONTROL_H */ |