Add tests to verify that sensor requests and direct connections are
invalidated after initialize is called on the Sensors HAL.
Bug: 120857563
Test: Builds, tests pass against default implementation
Change-Id: I690bc5168dfa9adb7b5e08fd6ddac49f68366846
WakeLockQueueFlagBits is used to signal between the framework and the
HAL whenever events are available on the Wake Lock FMQ. The
introduction of this type allows for the HAL to utilize blocking calls
when reading the Wake Lock FMQ, if desired.
Also removes stale reference to WakeLockEvent.
Bug: 122528664
Test: Builds, verified Sensors 2.0 default implementation reads events
when they become available on the Wake Lock FMQ
Change-Id: Ia83bd1642b8f6aa8ea86da05e83f4040c6e593bb
If the Wake Lock thread is running, stop it whenever initialize() is
called in order to prevent an invalid Wake Lock Queue from being read.
Also disable all sensors whenever initialize() is called to ensure
that stale sensor registrations are properly cleaned up.
Bug: 122468928
Test: Sensors HAL 2.0 tests run without crashing
Change-Id: I5fb55628545adbb481da6fcda157c78cff834134
Updates the documentation for the initialize() function and defines
the requirements for using the Event FMQ's writeBlocking function
which requires both a read and write notification.
Also adds requirement for the Sensors HAL to cleanup active sensor
requests and direct connections whenever initialize is called.
Bug: 120857563
Test: Builds
Change-Id: I11c8f7404d27e9ab21f9314523faebc1970b9f0c
Acquire a wake lock in the Sensors 2.0 Default implementation whenever
there are outstanding WAKE_UP events. Release the wake lock whenever
the number of oustanding WAKE_UP events is zero or at least
SensorTimeout::WAKE_LOCK_SECONDS seconds have elapsed since the
previous WAKE_UP event was written to the Event FMQ.
Bug: 111070257
Test: Builds, wake lock is acquired and released as expected.
Change-Id: I7c57724430144fd4022646d1fef1b1fa8bc4235d
Implements Direct Channel tests for Sensors HAL 2.0. The tests verify
that the interface has been implemented correctly and that expected
values are returned. These tests are not intended to verify that the
rate at which sensor events are generated is correct.
Also, correctly return -1 as the channel handle if direct report is
not supported.
Bug: 115969174
Test: Tests pass against default implementation
Change-Id: I31b3211268701665757b03d5ee4ba2316f461282
Implements VTS tests for Sensors HAL 2.0 DATA_INJECTION mode. Ensures
that if a sensor reports that it supports data injection, events that
are injected while in data injection mode are written back to the
Event FMQ. Ensures that AdditionalInfo events not written to the
Event FMQ.
Bug: 115969174
Test: Data injection tests pass against default Sensors HAL 2.0
Change-Id: I350956b759e14abfff73de4e20384524bbc00a0f
Implements data injection support for the default Sensors HAL 2.0.
Allows events to be injected into the Sensors HAL and these events be
written back to the Event FMQ.
Bug: 111070257
Test: Passes data injection VTS tests
Change-Id: If652417ec0df4148ffb5be3d5dd8bc6f0be65467
Adds support for the Sensors HAL to use writeBlocking when sending
sensor events to the framework.
Bug: 111070257
Test: Builds, verified that if the default implementation is modified
to use a writeBlocking call, the framework receives events, and
the HAL blocks if the Event FMQ is full.
Change-Id: I62fc654513afe98901b1e65bdf422af276d22663
Implements new VTS tests to verify that Sensors HAL 2.0 activate
function behaves as expected and returns the correct values.
Bug: 115969174
Test: Tests pass against default implementation
Change-Id: I3dbc86b0c9df3958f11bae4eff925d1869319738
Verify that the batch function is correctly implemented for Sensors
HAL 2.0. This test ensures that the interface is properly implemented,
not that sensors generate events at the requested rate.
Bug: 115969174
Test: Builds, new test passes against default implementation
Change-Id: I607ff18f59d1ba73aa972ed46b04332892772355
The former HAL documentation incorrectly documented (Geomag)-RV
sensor data as Vec4, although an accuracy field is expected according
to the Android sensor docs. Former default HAL implementation has set
the accuracy value to zero, preventing apps from getting this value.
This change guides OEMs to use the Vec4 + accuracy when converting
(Geomag)-RV sensor events. The default HAL implementation passes
this extra data now (ag/5224072), but clients of the former
implementation will still get the data it needs if assuming
the Vec4 sensor data format.
Bug: 116874058
Test: Compile only
Change-Id: I6a5c8a48dd372c3d4682ed5329f7f87862746cb9
Also applies formatter.
Bug: 116874058
Test: Compile and verify apps can receive the accuracy
field
Change-Id: I2535a5a9315ac3d343dcdf6010d3ae74288dfcd4
All events in the temporary event buffer were being saved during
testing. This caused some events to be saved multiple times. This
patch ensures that only new events are saved.
Bug: 115969174
Test: Verified duplicate events are not received
Change-Id: Ia2c7df7273456700e0da2ddd927f7daf42e69334
Implements the activate and batch functions for the default Sensors
2.0 implementation.
Bug: 111070257
Test: Builds
Change-Id: I5987ab722cdd97c7cd7ff466d6d989794171b851
Implements default functions for a Sensors 2.0 HAL that does not
support direct channel operation.
Although Sensors 2.0 supports direct channel operation, it is not a
requirement unless a device supports High Fidelity Sensors. A direct
channel implementation is vendor-specific, and therefore, the default
implementation does not provide a reference implementation.
A default implementation is able to be found in Sensors 1.0 since
direct channel operation has not changed between Sensors 1.0 and 2.0.
Bug: 111070257
Test: Builds
Change-Id: I1c4ef0cd9d4bd4b7ae3212358f9493c28c2798f4
Auto-generated default implementation for Sensors HAL 2.0 via
hidl-gen and cleaned up formatting.
Modifies Android.bp for binderized HAL implementation which includes:
- Adding service.cpp
- Adding android.hardware.sensors@2.0-service.rc
android.hardware.sensors@2.0-service.rc was copied and updated from
the sensors@1.0 default implementation.
Bug: 111070257
Test: Builds
Change-Id: I6a939511ff6b4011cfe95bd26c3093ad18f26f5a
Adds a test to Sensors 2.0 to ensure that if the initialize function
is called twice, then the FMQs used in the second call receive events.
Bug: 115969174
Test: New test passes (SensorsHidlTest#CallInitializeTwice)
Change-Id: I21a9307397eca1f2be93a826db89d24002e848c0
Properly initialize the test environment for Sensors HAL 2.0 by
constructing and reading from FMQs.
Bug: 115969174
Test: Builds, VTS tests run (some pass) against locally modified
sensors HAL
Change-Id: Id959e50c18b643d2693c90bac15710ed6f34b1b4
Copy the VTS tests for Sensors 1.0 into the 2.0 directory to provide a
starting point for 2.0 tests. Updates references to 2.0 from 1.0 where
necessary.
Bug: 115969174
Test: Builds
Change-Id: Ia385552c208087175272627c65b9096cdb8f4afa
Also applies formatter.
Bug: 116874058
Test: Compile and verify apps can receive the accuracy
field
Change-Id: I2535a5a9315ac3d343dcdf6010d3ae74288dfcd4
Extracts SensorsTestSharedMemory so that it can be used by other
versions of the sensors tests.
Bug: 111070257
Test: Build
Change-Id: I03df7462302d4ab0ea647e0d7688a46bf0e06dc1