Add hinge sensor1 and hinge sensor2
Bug: 155646965
Test: run emualtor, check dumpsys sensor list
Change-Id: Iecf2361c190bf5a470e60923240050ca9876d5be
diff --git a/sensors/multihal_sensors.h b/sensors/multihal_sensors.h
index 7532226..80ed6a3 100644
--- a/sensors/multihal_sensors.h
+++ b/sensors/multihal_sensors.h
@@ -77,6 +77,8 @@
float lastLightValue = kSensorNoValue;
float lastRelativeHumidityValue = kSensorNoValue;
float lastHingeAngle0Value = kSensorNoValue;
+ float lastHingeAngle1Value = kSensorNoValue;
+ float lastHingeAngle2Value = kSensorNoValue;
};
static bool activateQemuSensorImpl(int pipe, int sensorHandle, bool enabled);
diff --git a/sensors/multihal_sensors_qemu.cpp b/sensors/multihal_sensors_qemu.cpp
index a56dc15..a07d569 100644
--- a/sensors/multihal_sensors_qemu.cpp
+++ b/sensors/multihal_sensors_qemu.cpp
@@ -234,6 +234,30 @@
}
parsed = true;
}
+ } else if (const char* values = testPrefix(buf, end, "hinge-angle1", ':')) {
+ if (sscanf(values, "%f", &payload->scalar) == 1) {
+ if (!approximatelyEqual(state->lastHingeAngle1Value,
+ payload->scalar, 0.001)) {
+ event.timestamp = nowNs + state->timeBiasNs;
+ event.sensorHandle = kSensorHandleHingeAngle1;
+ event.sensorType = SensorType::HINGE_ANGLE;
+ postSensorEvent(event);
+ state->lastHingeAngle1Value = payload->scalar;
+ }
+ parsed = true;
+ }
+ } else if (const char* values = testPrefix(buf, end, "hinge-angle2", ':')) {
+ if (sscanf(values, "%f", &payload->scalar) == 1) {
+ if (!approximatelyEqual(state->lastHingeAngle2Value,
+ payload->scalar, 0.001)) {
+ event.timestamp = nowNs + state->timeBiasNs;
+ event.sensorHandle = kSensorHandleHingeAngle2;
+ event.sensorType = SensorType::HINGE_ANGLE;
+ postSensorEvent(event);
+ state->lastHingeAngle2Value = payload->scalar;
+ }
+ 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 06f98fe..245379f 100644
--- a/sensors/sensor_list.cpp
+++ b/sensors/sensor_list.cpp
@@ -35,6 +35,8 @@
"magnetic-field-uncalibrated",
"gyroscope-uncalibrated",
"hinge-angle0",
+ "hinge-angle1",
+ "hinge-angle2",
};
const SensorInfo kAllSensors[] = {
@@ -254,6 +256,44 @@
.flags = SensorFlagBits::DATA_INJECTION |
SensorFlagBits::ON_CHANGE_MODE |
SensorFlagBits::WAKE_UP
+ },
+ {
+ .sensorHandle = kSensorHandleHingeAngle1,
+ .name = "Goldfish hinge sensor1 (in degrees)",
+ .vendor = kAospVendor,
+ .version = 1,
+ .type = SensorType::HINGE_ANGLE,
+ .typeAsString = "android.sensor.hinge_angle",
+ .maxRange = 360,
+ .resolution = 1.0,
+ .power = 3.0,
+ .minDelay = 10000,
+ .fifoReservedEventCount = 0,
+ .fifoMaxEventCount = 0,
+ .requiredPermission = "",
+ .maxDelay = 500000,
+ .flags = SensorFlagBits::DATA_INJECTION |
+ SensorFlagBits::ON_CHANGE_MODE |
+ SensorFlagBits::WAKE_UP
+ },
+ {
+ .sensorHandle = kSensorHandleHingeAngle2,
+ .name = "Goldfish hinge sensor2 (in degrees)",
+ .vendor = kAospVendor,
+ .version = 1,
+ .type = SensorType::HINGE_ANGLE,
+ .typeAsString = "android.sensor.hinge_angle",
+ .maxRange = 360,
+ .resolution = 1.0,
+ .power = 3.0,
+ .minDelay = 10000,
+ .fifoReservedEventCount = 0,
+ .fifoMaxEventCount = 0,
+ .requiredPermission = "",
+ .maxDelay = 500000,
+ .flags = SensorFlagBits::DATA_INJECTION |
+ SensorFlagBits::ON_CHANGE_MODE |
+ SensorFlagBits::WAKE_UP
}};
constexpr int kSensorNumber = sizeof(kAllSensors) / sizeof(kAllSensors[0]);
diff --git a/sensors/sensor_list.h b/sensors/sensor_list.h
index 771adf2..b74fce9 100644
--- a/sensors/sensor_list.h
+++ b/sensors/sensor_list.h
@@ -34,6 +34,8 @@
constexpr int kSensorHandleMagneticFieldUncalibrated = 9;
constexpr int kSensorHandleGyroscopeFieldUncalibrated = 10;
constexpr int kSensorHandleHingeAngle0 = 11;
+constexpr int kSensorHandleHingeAngle1 = 12;
+constexpr int kSensorHandleHingeAngle2 = 13;
int getSensorNumber();
bool isSensorHandleValid(int h);