From 091b30ded1afbf8fbdfa5768bf3b287de5b7c023 Mon Sep 17 00:00:00 2001 From: roccomarco Date: Sat, 5 Mar 2016 11:29:58 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9021 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/lib/peripherals/include/hal_accelerometer.h | 96 +++++++++++++++++++++ os/hal/lib/peripherals/include/hal_compass.h | 99 ++++++++++++++++++++++ os/hal/lib/peripherals/include/hal_gyroscope.h | 2 +- 3 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 os/hal/lib/peripherals/include/hal_accelerometer.h create mode 100644 os/hal/lib/peripherals/include/hal_compass.h (limited to 'os/hal/lib/peripherals') diff --git a/os/hal/lib/peripherals/include/hal_accelerometer.h b/os/hal/lib/peripherals/include/hal_accelerometer.h new file mode 100644 index 000000000..b4d8cfb40 --- /dev/null +++ b/os/hal/lib/peripherals/include/hal_accelerometer.h @@ -0,0 +1,96 @@ +/* + ChibiOS - Copyright (C) 2016 Rocco Marco Guglielmi + + 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. +*/ + +/** + * @file hal_accelerometer.h + * @brief Generic accelerometer interface header. + * + * @addtogroup HAL_ACCELEROMETER + * @{ + */ + +#ifndef _HAL_ACCELEROMETER_H_ +#define _HAL_ACCELEROMETER_H_ + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief @p BaseAccelerometer virtual methods table. + */ +struct BaseAccelerometerVMT { + _base_accelerometer_methods +}; + +/** + * @brief Base accelerometer class. + * @details This class represents a generic a generic accelerometer. + */ +typedef struct { + /** @brief Virtual Methods Table.*/ + const struct BaseAccelerometerVMT *vmt; + _base_sensor_data +} BaseAccelerometer; + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/** + * @brief BaseAccelerometer specific methods. + */ +#define _base_accelerometer_methods \ + _base_sensor_methods \ + /* Remove the calibration data.*/ \ + msg_t (*reset_calibration)(void); \ + /* Invokes the calibration procedure.*/ \ + msg_t (*calibrate)(void); + +/** + * @brief @p BaseAccelerometer specific data. + * @note It is empty because @p BaseAccelerometer is only an interface + * without implementation. + */ +#define _base_accelerometer_data + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _HAL_ACCELEROMETER_H_ */ + +/** @} */ diff --git a/os/hal/lib/peripherals/include/hal_compass.h b/os/hal/lib/peripherals/include/hal_compass.h new file mode 100644 index 000000000..53899953a --- /dev/null +++ b/os/hal/lib/peripherals/include/hal_compass.h @@ -0,0 +1,99 @@ +/* + ChibiOS - Copyright (C) 2016 Rocco Marco Guglielmi + + 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. +*/ + +/** + * @file hal_compass.h + * @brief Generic compass interface header. + * + * @addtogroup HAL_COMPASS + * @{ + */ + +#ifndef _HAL_COMPASS_H_ +#define _HAL_COMPASS_H_ + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief @p BaseCompass virtual methods table. + */ + +struct BaseCompassVMT { + _base_compass_methods +}; + +/** + * @brief Base compass class. + * @details This class represents a generic compass. + */ +typedef struct { + /** @brief Virtual Methods Table.*/ + const struct BaseCompassVMT *vmt; + _base_compass_data + +} BaseCompass; + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/** + * @brief BaseCompass specific methods. + */ + +#define _base_compass_methods \ + _base_sensor_methods \ + /* Remove the calibration data.*/ \ + msg_t (*reset_calibration)(void); \ + /* Invokes the calibration procedure.*/ \ + msg_t (*calibrate)(void); + +/** + * @brief @p BaseCompass specific data. + * @note It is empty because @p BaseCompass is only an interface + * without implementation. + */ +#define _base_compass_data + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _HAL_COMPASS_H_ */ + +/** @} */ diff --git a/os/hal/lib/peripherals/include/hal_gyroscope.h b/os/hal/lib/peripherals/include/hal_gyroscope.h index da38e29e2..c593f8fe6 100644 --- a/os/hal/lib/peripherals/include/hal_gyroscope.h +++ b/os/hal/lib/peripherals/include/hal_gyroscope.h @@ -50,7 +50,7 @@ struct BaseGyroscopeVMT { /** * @brief Base gyroscope class. - * @details This class represents a generic gyroscope MEMS. + * @details This class represents a generic gyroscope. */ typedef struct { /** @brief Virtual Methods Table.*/ -- cgit v1.2.3