iNEMO inertial module: 3D accelerometer and 3D gyroscope.

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   X_NUCLEO_IKS01A3 X_NUCLEO_IKS01A3

Revision:
4:77faf76e3cd8
Parent:
3:4274d9103f1d
diff -r 4274d9103f1d -r 77faf76e3cd8 LSM6DSOSensor.h
--- a/LSM6DSOSensor.h	Wed Jul 24 14:19:35 2019 +0000
+++ b/LSM6DSOSensor.h	Thu Oct 29 12:50:52 2020 +0000
@@ -48,6 +48,7 @@
 #include "lsm6dso_reg.h"
 #include "MotionSensor.h"
 #include "GyroSensor.h"
+#include "mbed.h"
 #include <assert.h>
 
 /* Defines -------------------------------------------------------------------*/
@@ -71,6 +72,19 @@
     LSM6DSO_INT2_PIN,
 } LSM6DSO_Interrupt_Pin_t;
 
+typedef enum
+{
+  LSM6DSO_ACC_HIGH_PERFORMANCE_MODE,
+  LSM6DSO_ACC_LOW_POWER_NORMAL_MODE,
+  LSM6DSO_ACC_ULTRA_LOW_POWER_MODE
+} LSM6DSO_ACC_Operating_Mode_t;
+
+typedef enum
+{
+  LSM6DSO_GYRO_HIGH_PERFORMANCE_MODE,
+  LSM6DSO_GYRO_LOW_POWER_NORMAL_MODE
+} LSM6DSO_GYRO_Operating_Mode_t;
+
 typedef struct {
     unsigned int FreeFallStatus : 1;
     unsigned int TapStatus : 1;
@@ -105,7 +119,9 @@
     virtual int get_x_odr(float *odr);
     virtual int get_g_odr(float *odr);
     virtual int set_x_odr(float odr);
+    virtual int set_x_odr_with_mode(float odr, LSM6DSO_ACC_Operating_Mode_t mode);
     virtual int set_g_odr(float odr);
+    virtual int set_g_odr_with_mode(float odr, LSM6DSO_GYRO_Operating_Mode_t mode);
     virtual int get_x_fs(float *full_scale);
     virtual int get_g_fs(float *full_scale);
     virtual int set_x_fs(float full_scale);