aboutsummaryrefslogtreecommitdiffstats
path: root/os/ex
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2018-02-26 16:28:43 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2018-02-26 16:28:43 +0000
commit70fb3b40569070168d85a65ede1ca8112a9394f8 (patch)
tree647ee84eb90b6d984e850e4772b4ea3dbe3bc1f1 /os/ex
parente8dda5f8eea2d59fa92e124327e4b2f7885d75ad (diff)
downloadChibiOS-70fb3b40569070168d85a65ede1ca8112a9394f8.tar.gz
ChibiOS-70fb3b40569070168d85a65ede1ca8112a9394f8.tar.bz2
ChibiOS-70fb3b40569070168d85a65ede1ca8112a9394f8.zip
Modified sensor classes, not complete yet.
git-svn-id: https://svn.code.sf.net/p/chibios/svn2/trunk@11550 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/ex')
-rw-r--r--os/ex/ST/lsm303dlhc.c3
-rw-r--r--os/ex/ST/lsm303dlhc.h62
2 files changed, 22 insertions, 43 deletions
diff --git a/os/ex/ST/lsm303dlhc.c b/os/ex/ST/lsm303dlhc.c
index 111cdb7e5..6ec94796c 100644
--- a/os/ex/ST/lsm303dlhc.c
+++ b/os/ex/ST/lsm303dlhc.c
@@ -605,16 +605,19 @@ static msg_t comp_set_full_scale(void *ip, lsm303dlhc_comp_fs_t fs) {
}
static const struct BaseSensorVMT vmt_sensor = {
+ (size_t)0,
sens_get_axes_number, sens_read_raw, sens_read_cooked
};
static const struct LSM303DLHCAcceleromerVMT vmt_accelerometer = {
+ (size_t)0,
acc_get_axes_number, acc_read_raw, acc_read_cooked,
acc_set_bias, acc_reset_bias, acc_set_sensivity, acc_reset_sensivity,
acc_set_full_scale
};
static const struct LSM303DLHCCompassVMT vmt_compass = {
+ (size_t)0,
comp_get_axes_number, comp_read_raw, comp_read_cooked,
comp_set_bias, comp_reset_bias, comp_set_sensivity, comp_reset_sensivity,
comp_set_full_scale
diff --git a/os/ex/ST/lsm303dlhc.h b/os/ex/ST/lsm303dlhc.h
index 168746398..991c0eb3d 100644
--- a/os/ex/ST/lsm303dlhc.h
+++ b/os/ex/ST/lsm303dlhc.h
@@ -571,56 +571,35 @@ typedef struct {
} LSM303DLHCConfig;
/**
- * @brief @p LSM303DLHC accelerometer subsystem specific methods.
+ * @brief @p LSM303DLHC subsystem specific methods.
*/
-#define _lsm303dlhc_accelerometer_methods_alone \
+#define _lsm303dlhc_methods_alone \
/* Change full scale value of LSM303DLHC accelerometer subsystem .*/ \
- msg_t (*set_full_scale)(void *instance, lsm303dlhc_acc_fs_t fs);
-
-/**
- * @brief @p LSM303DLHC accelerometer subsystem specific methods with
- * inherited ones.
- */
-#define _lsm303dlhc_accelerometer_methods \
- _base_accelerometer_methods \
- _lsm303dlhc_accelerometer_methods_alone
-
-/**
- * @brief @p LSM303DLHC compass subsystem specific methods.
- */
-#define _lsm303dlhc_compass_methods_alone \
+ msg_t (*set_acc_full_scale)(void *instance, lsm303dlhc_acc_fs_t fs);
/* Change full scale value of LSM303DLHC compass subsystem .*/ \
- msg_t (*set_full_scale)(void *instance, lsm303dlhc_comp_fs_t fs);
-
-/**
- * @brief @p LSM303DLHC compass subsystem specific methods with inherited ones.
- */
-#define _lsm303dlhc_compass_methods \
- _base_compass_methods \
- _lsm303dlhc_compass_methods_alone
+ msg_t (*set_comp_full_scale)(void *instance, lsm303dlhc_comp_fs_t fs);
/**
- * @extends BaseAccelerometerVMT
- *
- * @brief @p LSM303DLHC accelerometer virtual methods table.
+ * @brief @p LSM303DLHC subsystem specific methods with inherited ones.
*/
-struct LSM303DLHCAcceleromerVMT {
- _lsm303dlhc_accelerometer_methods
-};
+#define _lsm303dlhc_methods \
+ _base_object_methods \
+ _lsm303dlhc_methods_alone
/**
- * @extends BaseCompassVMT
+ * @extends BaseObjectVMT
*
- * @brief @p LSM303DLHC compass virtual methods table.
+ * @brief @p LSM303DLHC virtual methods table.
*/
-struct LSM303DLHCCompassVMT {
- _lsm303dlhc_compass_methods
+struct LSM303DLHCVMT {
+ _lsm303dlhc_methods
};
/**
* @brief @p LSM303DLHCDriver specific data.
*/
#define _lsm303dlhc_data \
+ _base_sensor_data \
/* Driver state.*/ \
lsm303dlhc_state_t state; \
/* Current configuration data.*/ \
@@ -642,15 +621,12 @@ struct LSM303DLHCCompassVMT {
* @brief LSM303DLHC 6-axis accelerometer/compass class.
*/
struct LSM303DLHCDriver {
- /** @brief BaseSensor Virtual Methods Table. */
- const struct BaseSensorVMT *vmt_sensor;
- _base_sensor_data
- /** @brief LSM303DLHC Accelerometer Virtual Methods Table. */
- const struct LSM303DLHCAcceleromerVMT *vmt_accelerometer;
- _base_accelerometer_data
- /** @brief LSM303DLHC Compass Virtual Methods Table. */
- const struct LSM303DLHCCompassVMT *vmt_compass;
- _base_compass_data
+ /** @brief Virtual Methods Table.*/
+ const struct LSM303DLHCVMT *vmt;
+ /** @brief Accelerometer interface.*/
+ BaseAccelerometer accelerometer_if;
+ /** @brief Compass interface.*/
+ BaseCompass compass_if;
_lsm303dlhc_data
};