1ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/******************************************************************************
2ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * $Id: AKFS_Measure.h 580 2012-03-29 09:56:21Z yamada.rj $
3ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda ******************************************************************************
4ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda *
5ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Copyright (C) 2012 Asahi Kasei Microdevices Corporation, Japan
6ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda *
7ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Licensed under the Apache License, Version 2.0 (the "License");
8ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * you may not use this file except in compliance with the License.
9ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * You may obtain a copy of the License at
10ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda *
11ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda *      http://www.apache.org/licenses/LICENSE-2.0
12ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda *
13ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * Unless required by applicable law or agreed to in writing, software
14ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * distributed under the License is distributed on an "AS IS" BASIS,
15ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * See the License for the specific language governing permissions and
17ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda * limitations under the License.
18ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda */
19ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#ifndef AKFS_INC_MEASURE_H
20ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AKFS_INC_MEASURE_H
21ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
22ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/* Include files for AK8975 library. */
23ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#include "AKFS_Compass.h"
24ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
25ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Constant definition ******************************************************/
268486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_X	(-100)
27ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AK8975_SELFTEST_MAX_X	100
28ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
298486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_Y	(-100)
30ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define AK8975_SELFTEST_MAX_Y	100
31ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
328486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MIN_Z	(-1000)
338486a35c06351c0a67bb44775f2d9bc0a70ebbc7Chih-Hung Hsieh#define AK8975_SELFTEST_MAX_Z	(-300)
34ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
35ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_ACC(a)	((int)((a) * 720 / 9.8f))
36ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_MAG(m)	((int)((m) / 0.06f))
37ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#define CONVERT_ORI(o)	((int)((o) * 64))
38ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
39ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Type declaration *********************************************************/
40ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
41ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Global variables *********************************************************/
42ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
43ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda/*** Prototype of function ****************************************************/
44ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_ReadAK8975FUSEROM(
45ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda		uint8 regs[3]
46ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda);
47ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
48ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_SelfTest(void);
49ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
50ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudastruct timespec AKFS_CalcSleep(
51ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const struct timespec* end,
52ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const struct timespec* start,
53ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const int64_t minimum
54ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda);
55ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
56ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudaint16 AKFS_GetInterval(
57ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda		uint16*  flag,
58ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda		int64_t* minimum
59ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda);
60ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
61ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudavoid AKFS_OutputResult(
62ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const	uint16			flag,
63ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const	AKSENSOR_DATA*	acc,
64ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const	AKSENSOR_DATA*	mag,
65ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda	const	AKSENSOR_DATA*	ori
66ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda);
67ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
68ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masudavoid AKFS_MeasureLoop(void);
69ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
70ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda#endif
71ab17e987e7f5371df91fe4e137fcf9041489ffdfTsuyoshi Masuda
72