diff options
Diffstat (limited to 'sensors/algo/common/compass/AKFS_Device.c')
| -rw-r--r-- | sensors/algo/common/compass/AKFS_Device.c | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/sensors/algo/common/compass/AKFS_Device.c b/sensors/algo/common/compass/AKFS_Device.c deleted file mode 100644 index 75c36c3..0000000 --- a/sensors/algo/common/compass/AKFS_Device.c +++ /dev/null @@ -1,150 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan - * - * 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. - * - ******************************************************************************/ -#include "AKFS_Device.h" - -/******************************************************************************/ -/*! Initialize #AKFVEC array. - @return #AKFS_SUCCESS on success. Otherwise the return value is #AKFS_ERROR. - @param[in] ndata - @param[out] vdata - */ -int16 AKFS_InitBuffer( - const int16 ndata, /*!< Size of vector buffer */ - AKFVEC vdata[] /*!< Vector buffer */ -) -{ - int i; - - /* size check */ - if (ndata <= 0) { - return AKFS_ERROR; - } - - for (i = 0; i < ndata; i++) { - vdata[i].u.x = AKFS_INIT_VALUE_F; - vdata[i].u.y = AKFS_INIT_VALUE_F; - vdata[i].u.z = AKFS_INIT_VALUE_F; - } - - return AKFS_SUCCESS; -} - -/******************************************************************************/ -/*! Shift #AKFVEC array. - @return #AKFS_SUCCESS on success. Otherwise the return value is #AKFS_ERROR. - @param[in] len - @param[in] shift - @param[in/out] v - */ -int16 AKFS_BufShift( - const int16 len, /*!< size of buffer */ - const int16 shift, /*!< shift size */ - AKFVEC v[] /*!< buffer */ -) -{ - int16 i; - - if ((shift < 1) || (len < shift)) { - return AKFS_ERROR; - } - for (i = len-1; i >= shift; i--) { - v[i] = v[i-shift]; - } - return AKFS_SUCCESS; -} - -/******************************************************************************/ -/*! Rotate vector according to the specified layout pattern number. - @return #AKFS_SUCCESS on success. Otherwise the return value is #AKFS_ERROR. - @param[in] pat - @param[in/out] vec - */ -int16 AKFS_Rotate( - const AKFS_PATNO pat, - AKFVEC *vec -) -{ - AKFLOAT tmp; - switch (pat) { - /* Obverse */ - case PAT1: - /* This is Android default */ - break; - case PAT2: - tmp = vec->u.x; - vec->u.x = vec->u.y; - vec->u.y = -tmp; - break; - case PAT3: - vec->u.x = -(vec->u.x); - vec->u.y = -(vec->u.y); - break; - case PAT4: - tmp = vec->u.x; - vec->u.x = -(vec->u.y); - vec->u.y = tmp; - break; - /* Reverse */ - case PAT5: - vec->u.x = -(vec->u.x); - vec->u.z = -(vec->u.z); - break; - case PAT6: - tmp = vec->u.x; - vec->u.x = vec->u.y; - vec->u.y = tmp; - vec->u.z = -(vec->u.z); - break; - case PAT7: - vec->u.y = -(vec->u.y); - vec->u.z = -(vec->u.z); - break; - case PAT8: - tmp = vec->u.x; - vec->u.x = -(vec->u.y); - vec->u.y = -tmp; - vec->u.z = -(vec->u.z); - break; - default: - return AKFS_ERROR; - } - - return AKFS_SUCCESS; -} - -/******************************************************************************/ -/*! Rotate vector according to the specified layout matrix. - @return #AKFS_SUCCESS on success. Otherwise the return value is #AKFS_ERROR. - @param[in] pat - @param[in/out] vec - */ -int16 AKFS_RotateMat( - const int16 layout[3][3], - AKFVEC *vec -) -{ - AKFVEC tmp; - - tmp.u.x = layout[0][0]*vec->u.x + layout[0][1]*vec->u.y + layout[0][2]*vec->u.z; - tmp.u.y = layout[1][0]*vec->u.x + layout[1][1]*vec->u.y + layout[1][2]*vec->u.z; - tmp.u.z = layout[2][0]*vec->u.x + layout[2][1]*vec->u.y + layout[2][2]*vec->u.z; - - *vec = tmp; - - return AKFS_SUCCESS; -} |
