summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Pontus Lidman <lidman@google.com> 2023-07-21 21:33:06 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-07-21 21:33:06 +0000
commit5dae10e59e24bb1de01cc61e30e7a7dd3003cb6f (patch)
tree870a52abb18412e35a774be8e213d9880dddb2b4
parentf320f1d9127102d83e88d0591f7c54a588ecdb5a (diff)
parentdc176d9931b37be327c1091744e4cb6b51b50245 (diff)
Merge "Make maximum sensor fusion rate tunable." into main am: dc176d9931
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2668025 Change-Id: Ia26151b0c9ce45c759b0c927956d17e887f11461 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/sensorservice/SensorFusion.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/services/sensorservice/SensorFusion.cpp b/services/sensorservice/SensorFusion.cpp
index e27b52b23e..5c00260008 100644
--- a/services/sensorservice/SensorFusion.cpp
+++ b/services/sensorservice/SensorFusion.cpp
@@ -19,6 +19,7 @@
#include "SensorService.h"
#include <android/util/ProtoOutputStream.h>
+#include <cutils/properties.h>
#include <frameworks/base/core/proto/android/service/sensor_service.proto.h>
namespace android {
@@ -60,10 +61,12 @@ SensorFusion::SensorFusion()
mGyro = uncalibratedGyro;
}
- // 200 Hz for gyro events is a good compromise between precision
- // and power/cpu usage.
- mEstimatedGyroRate = 200;
- mTargetDelayNs = 1000000000LL/mEstimatedGyroRate;
+ // Wearable devices will want to tune this parameter
+ // to 100 (Hz) in device.mk to save some power.
+ int32_t value = property_get_int32(
+ "sensors.aosp_low_power_sensor_fusion.maximum_rate", 200);
+ mEstimatedGyroRate = static_cast<float>(value);
+ mTargetDelayNs = 1000000000LL / mEstimatedGyroRate;
for (int i = 0; i<NUM_FUSION_MODE; ++i) {
mFusions[i].init(i);