diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-05-12 08:37:08 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-05-12 20:30:57 (GMT) |
| commit | e679896281f3032994f5b998a21140475d167695 (patch) | |
| tree | 702b7714dd847573963c5b802afa936ff1cadb7b /src/systemtask/SystemTask.h | |
| parent | 1d0023b502563d486a6e8c5d6dffbfdcd4e94c2a (diff) | |
Optimized accelerometer access via system task functions.
Diffstat (limited to 'src/systemtask/SystemTask.h')
| -rw-r--r-- | src/systemtask/SystemTask.h | 29 |
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); - } - }; } } |
