diff options
Diffstat (limited to 'peripheral/sensors/edison_arduino')
4 files changed, 13 insertions, 0 deletions
diff --git a/peripheral/sensors/edison_arduino/Sensor.cpp b/peripheral/sensors/edison_arduino/Sensor.cpp index e44ff60..8a93b81 100644 --- a/peripheral/sensors/edison_arduino/Sensor.cpp +++ b/peripheral/sensors/edison_arduino/Sensor.cpp @@ -21,6 +21,8 @@ /* maximum delay: 1000ms */ const int64_t kMaxDelay = 1000000000; +/* Gravitational acceleration constant in m/s^2 */ +const float Sensor::kGravitationalAcceleration = 9.81f; Sensor::Sensor() : acquisitionThread(nullptr), handle(-1), type(-1), delay(kMaxDelay) {} diff --git a/peripheral/sensors/edison_arduino/Sensor.hpp b/peripheral/sensors/edison_arduino/Sensor.hpp index a1c2663..d28a398 100644 --- a/peripheral/sensors/edison_arduino/Sensor.hpp +++ b/peripheral/sensors/edison_arduino/Sensor.hpp @@ -118,6 +118,11 @@ class Sensor { */ int64_t getDelay() { return delay; } + /** + * Gravitational acceleration constant in m/s^2 + */ + static const float kGravitationalAcceleration; + protected: /** diff --git a/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp b/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp index c63ffaa..0947b25 100644 --- a/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp +++ b/peripheral/sensors/edison_arduino/sensors/MMA7660Accelerometer.cpp @@ -45,6 +45,9 @@ MMA7660Accelerometer::~MMA7660Accelerometer() {} int MMA7660Accelerometer::pollEvents(sensors_event_t* data, int count) { getAcceleration(&data->acceleration.x, &data->acceleration.y, &data->acceleration.z); + data->acceleration.x *= Sensor::kGravitationalAcceleration; + data->acceleration.y *= Sensor::kGravitationalAcceleration; + data->acceleration.z *= Sensor::kGravitationalAcceleration; return 1; } diff --git a/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp b/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp index 446de3c..f8ba355 100644 --- a/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp +++ b/peripheral/sensors/edison_arduino/sensors/MPU9150Accelerometer.cpp @@ -47,6 +47,9 @@ MPU9150Accelerometer::~MPU9150Accelerometer() {} int MPU9150Accelerometer::pollEvents(sensors_event_t* data, int count) { update(); getAccelerometer(&data->acceleration.x, &data->acceleration.y, &data->acceleration.z); + data->acceleration.x *= Sensor::kGravitationalAcceleration; + data->acceleration.y *= Sensor::kGravitationalAcceleration; + data->acceleration.z *= Sensor::kGravitationalAcceleration; return 1; } |