summaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2021-06-19 20:27:59 +0200
committerGitHub <noreply@github.com>2021-06-19 20:27:59 +0200
commitc6dca25b9fa30af989baf748f6c32b38eaa95bac (patch)
tree587308fdb9d1bfd7e19a6232316891f196163413 /src/components
parente90e8c7426f9a44e696b208a5b393a60476a3d43 (diff)
Add support for BMA425 acceleration sensor. (#440)
* Add support for BMA425 acceleration sensor.
Diffstat (limited to 'src/components')
-rw-r--r--src/components/motion/MotionController.cpp7
-rw-r--r--src/components/motion/MotionController.h14
2 files changed, 21 insertions, 0 deletions
diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp
index e9ee314b..b0dbada4 100644
--- a/src/components/motion/MotionController.cpp
+++ b/src/components/motion/MotionController.cpp
@@ -34,3 +34,10 @@ bool MotionController::ShouldWakeUp(bool isSleeping) {
void MotionController::IsSensorOk(bool isOk) {
isSensorOk = isOk;
}
+void MotionController::Init(Pinetime::Drivers::Bma421::DeviceTypes types) {
+ switch(types){
+ case Drivers::Bma421::DeviceTypes::BMA421: this->deviceType = DeviceTypes::BMA421; break;
+ case Drivers::Bma421::DeviceTypes::BMA425: this->deviceType = DeviceTypes::BMA425; break;
+ default: this->deviceType = DeviceTypes::Unknown; break;
+ }
+}
diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h
index 3a238262..ff715093 100644
--- a/src/components/motion/MotionController.h
+++ b/src/components/motion/MotionController.h
@@ -1,11 +1,18 @@
#pragma once
#include <cstdint>
+#include <drivers/Bma421.h>
namespace Pinetime {
namespace Controllers {
class MotionController {
public:
+ enum class DeviceTypes{
+ Unknown,
+ BMA421,
+ BMA425,
+ };
+
void Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps);
int16_t X() const {
@@ -27,6 +34,12 @@ namespace Pinetime {
return isSensorOk;
}
+ DeviceTypes DeviceType() const {
+ return deviceType;
+ }
+
+ void Init(Pinetime::Drivers::Bma421::DeviceTypes types);
+
private:
uint32_t nbSteps;
int16_t x;
@@ -34,6 +47,7 @@ namespace Pinetime {
int16_t z;
int16_t lastYForWakeUp = 0;
bool isSensorOk = false;
+ DeviceTypes deviceType = DeviceTypes::Unknown;
};
}
} \ No newline at end of file