summaryrefslogtreecommitdiff
path: root/src/systemtask
diff options
context:
space:
mode:
authorMichele Bini <michele.bini@gmail.com>2022-05-12 08:37:08 (GMT)
committerMichele Bini <michele.bini@gmail.com>2022-05-12 20:30:57 (GMT)
commite679896281f3032994f5b998a21140475d167695 (patch)
tree702b7714dd847573963c5b802afa936ff1cadb7b /src/systemtask
parent1d0023b502563d486a6e8c5d6dffbfdcd4e94c2a (diff)
Optimized accelerometer access via system task functions.
Diffstat (limited to 'src/systemtask')
-rw-r--r--src/systemtask/SystemTask.h29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h
index f141b01..d04cd53 100644
--- a/src/systemtask/SystemTask.h
+++ b/src/systemtask/SystemTask.h
@@ -94,6 +94,19 @@ namespace Pinetime {
return isSleeping;
}
+ // For accelerator-based games
+ template <typename X, typename Y, typename Z> inline void ObtainAccel(X& x, Y& y, Z& z) {
+ motionSensor.ObtainAccel(x,y,z);
+ }
+
+ template <typename X> inline void ObtainMotionSensorTemperature(X& x) {
+#ifndef INFINISIM
+ x = motionSensor.getTemperature();
+#else
+ x = 23;
+#endif
+ }
+
private:
TaskHandle_t taskHandle;
@@ -118,9 +131,7 @@ namespace Pinetime {
Pinetime::Controllers::NotificationManager& notificationManager;
Pinetime::Controllers::MotorController& motorController;
Pinetime::Drivers::Hrs3300& heartRateSensor;
- public:
Pinetime::Drivers::Bma421& motionSensor;
- private:
Pinetime::Controllers::Settings& settingsController;
Pinetime::Controllers::HeartRateController& heartRateController;
Pinetime::Controllers::MotionController& motionController;
@@ -151,20 +162,6 @@ namespace Pinetime {
static constexpr TickType_t batteryMeasurementPeriod = pdMS_TO_TICKS(10 * 60 * 1000);
SystemMonitor monitor;
-
- public:
- inline double ReadGXYZ(double &X, double &Y, double &Z) const {
- auto motionValues = motionSensor.Process();
- // motionController.Update(motionValues.x, motionValues.y, motionValues.z);
- X = motionValues.x; Y = motionValues.y; Z = motionValues.z;
- return std::sqrt(X*X + Y*Y + Z*Z);
- }
-
- inline double ReadG() const {
- double x, y, z;
- return ReadGXYZ(x,y,z);
- }
-
};
}
}