diff options
author | Hsin-Yi Chen <hsinyichen@google.com> | 2020-12-03 18:12:58 +0800 |
---|---|---|
committer | Hsin-Yi Chen <hsinyichen@google.com> | 2020-12-03 18:45:56 +0800 |
commit | eac1775c010bce8a9ac1426fb27c209ed3d69ab9 (patch) | |
tree | a286b9dee8610b2495b58db4e86240c30f70e9da /sensors/common/default/2.X/Sensor.cpp | |
parent | 375f7d743d3be275520c9cf95ebef8f73f632476 (diff) |
Set default value for pressure sensor
This commit fixes the following CTS failures:
CtsSensorTestCases:android.hardware.cts.SensorBatchingTests#testPressure*
CtsSensorTestCases:android.hardware.cts.SingleSensorTests#testPressure*
Test: atest VtsHalSensorsV2_0TargetTest
Test: atest VtsHalSensorsV2_1TargetTest
Test: atest CtsSensorTestCases
Bug: 169548171
Change-Id: I2e8ab93d6174c6191497436bf7e7c6a43d34de3f
Diffstat (limited to 'sensors/common/default/2.X/Sensor.cpp')
-rw-r--r-- | sensors/common/default/2.X/Sensor.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/sensors/common/default/2.X/Sensor.cpp b/sensors/common/default/2.X/Sensor.cpp index 870980fa75..4701579364 100644 --- a/sensors/common/default/2.X/Sensor.cpp +++ b/sensors/common/default/2.X/Sensor.cpp @@ -26,6 +26,7 @@ namespace sensors { namespace V2_X { namespace implementation { +using ::android::hardware::sensors::V1_0::EventPayload; using ::android::hardware::sensors::V1_0::MetaDataEventType; using ::android::hardware::sensors::V1_0::OperationMode; using ::android::hardware::sensors::V1_0::Result; @@ -133,20 +134,13 @@ bool Sensor::isWakeUpSensor() { } std::vector<Event> Sensor::readEvents() { - // For an accelerometer sensor type, default the z-direction - // value to -9.8 - float zValue = (mSensorInfo.type == SensorType::ACCELEROMETER) - ? -9.8 : 0.0; - std::vector<Event> events; Event event; event.sensorHandle = mSensorInfo.sensorHandle; event.sensorType = mSensorInfo.type; event.timestamp = ::android::elapsedRealtimeNano(); - event.u.vec3.x = 0; - event.u.vec3.y = 0; - event.u.vec3.z = zValue; - event.u.vec3.status = SensorStatus::ACCURACY_HIGH; + memset(&event.u, 0, sizeof(event.u)); + readEventPayload(event.u); events.push_back(event); return events; } @@ -194,7 +188,7 @@ std::vector<Event> OnChangeSensor::readEvents() { for (auto iter = events.begin(); iter != events.end(); ++iter) { Event ev = *iter; - if (ev.u.vec3 != mPreviousEvent.u.vec3 || !mPreviousEventSet) { + if (!mPreviousEventSet || memcmp(&mPreviousEvent.u, &ev.u, sizeof(ev.u)) != 0) { outputEvents.push_back(ev); mPreviousEvent = ev; mPreviousEventSet = true; @@ -221,6 +215,13 @@ AccelSensor::AccelSensor(int32_t sensorHandle, ISensorsEventCallback* callback) mSensorInfo.flags = static_cast<uint32_t>(SensorFlagBits::DATA_INJECTION); }; +void AccelSensor::readEventPayload(EventPayload& payload) { + payload.vec3.x = 0; + payload.vec3.y = 0; + payload.vec3.z = -9.8; + payload.vec3.status = SensorStatus::ACCURACY_HIGH; +} + PressureSensor::PressureSensor(int32_t sensorHandle, ISensorsEventCallback* callback) : Sensor(callback) { mSensorInfo.sensorHandle = sensorHandle; @@ -240,6 +241,10 @@ PressureSensor::PressureSensor(int32_t sensorHandle, ISensorsEventCallback* call mSensorInfo.flags = 0; }; +void PressureSensor::readEventPayload(EventPayload& payload) { + payload.scalar = 1013.25f; +} + MagnetometerSensor::MagnetometerSensor(int32_t sensorHandle, ISensorsEventCallback* callback) : Sensor(callback) { mSensorInfo.sensorHandle = sensorHandle; |