summaryrefslogtreecommitdiff
path: root/sensors
diff options
context:
space:
mode:
authorMohammad Saboorian <msab@google.com>2021-12-15 21:08:53 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-12-15 21:08:53 +0000
commit201588159b3ee64aab20f34ca36a02ff65547821 (patch)
tree726a983ea89db0efb0a3c967602a504ed3936d19 /sensors
parenta9b1125901bc8c38ce29ddea2a4914a9e0cb124e (diff)
parent82f7edcc5ce4919d0d203651e75096dac96c4b05 (diff)
downloadgoldfish-201588159b3ee64aab20f34ca36a02ff65547821.tar.gz
Merge "Trigger WRIST_TILT sensor on each new data" am: bafb5d5104 am: 82f7edcc5c
Original change: https://android-review.googlesource.com/c/device/generic/goldfish/+/1924087 Change-Id: Iec25bd6866963102940371929495799ba578ec3e
Diffstat (limited to 'sensors')
-rw-r--r--sensors/multihal_sensors.h2
-rw-r--r--sensors/multihal_sensors_qemu.cpp13
-rw-r--r--sensors/sensor_list.cpp3
3 files changed, 12 insertions, 6 deletions
diff --git a/sensors/multihal_sensors.h b/sensors/multihal_sensors.h
index 9b57bc61..57f63683 100644
--- a/sensors/multihal_sensors.h
+++ b/sensors/multihal_sensors.h
@@ -85,7 +85,7 @@ private:
float lastHingeAngle1Value = kSensorNoValue;
float lastHingeAngle2Value = kSensorNoValue;
float lastHeartRateValue = kSensorNoValue;
- float lastWristTiltValue = kSensorNoValue;
+ float lastWristTiltMeasurement = -1;
};
bool isSensorHandleValid(int sensorHandle) const;
diff --git a/sensors/multihal_sensors_qemu.cpp b/sensors/multihal_sensors_qemu.cpp
index d34ad804..dbdb8597 100644
--- a/sensors/multihal_sensors_qemu.cpp
+++ b/sensors/multihal_sensors_qemu.cpp
@@ -274,17 +274,22 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe,
parsed = true;
}
} else if (const char* values = testPrefix(buf, end, "wrist-tilt", ':')) {
- if (sscanf(values, "%f", &payload->scalar) == 1) {
- if (!approximatelyEqual(state->lastWristTiltValue,
- payload->scalar, 0.001)) {
+ long measurementId;
+ int args = sscanf(values, "%f:%ld", &payload->scalar, &measurementId);
+ if (args == 2) {
+ if (state->lastWristTiltMeasurement != measurementId) {
event.timestamp = nowNs + state->timeBiasNs;
event.sensorHandle = kSensorHandleWristTilt;
event.sensorType = SensorType::WRIST_TILT_GESTURE;
postSensorEvent(event);
- state->lastWristTiltValue = payload->scalar;
+ state->lastWristTiltMeasurement = measurementId;
}
+ }
+ if (args >= 1) {
+ // Skip if the measurement id is not included.
parsed = true;
}
+
} else if (const char* values = testPrefix(buf, end, "guest-sync", ':')) {
long long value;
if ((sscanf(values, "%lld", &value) == 1) && (value >= 0)) {
diff --git a/sensors/sensor_list.cpp b/sensors/sensor_list.cpp
index 9ed37db3..b51cd68c 100644
--- a/sensors/sensor_list.cpp
+++ b/sensors/sensor_list.cpp
@@ -334,7 +334,8 @@ const SensorInfo kAllSensors[] = {
.fifoMaxEventCount = 0,
.maxDelay = 500000,
.flags = SensorFlagBits::DATA_INJECTION |
- SensorFlagBits::SPECIAL_REPORTING_MODE
+ SensorFlagBits::SPECIAL_REPORTING_MODE |
+ SensorFlagBits::WAKE_UP
}};
constexpr int kSensorNumber = sizeof(kAllSensors) / sizeof(kAllSensors[0]);