Skip to content

Commit

Permalink
Add automation support via WebDriver (#124)
Browse files Browse the repository at this point in the history
This PR integrates with the automation concepts defined in
https://w3c.github.io/sensors/#automation to allow providing motion or
orientation readings via virtual sensors through the WebDriver extension
commands defined there.

IMPORTANT: This does not mean that this specification requires
implementations to support the Generic Sensor API specification and its
derived specifications. Only the Automation section is being referenced, and
when necessary some algorithms and definitions are being duplicated here,
especially for Device Motion automation.

The definitions of the "accelerometer", "linear-acceleration", "gyroscope",
"absolute-orientation", and "relative-orientation" virtual sensor types have
been moved here from their original specifications. As suggested in #124 and
similarly to what has been discussed in PRs #121 and #123, since this
specification is further along the Rec track and is implemented by more
engines, it makes sense to have the exported definitions here and reference
them from the other specs instead.

Device Motion:
- Readings are controlled via the "accelerometer", "linear-acceleration" and
  "gyroscope" virtual sensor types.

Device Orientation:
- The "absolute-orientation" and "relative-orientation" virtual sensor types
  are defined in this specification, along with a parsing algorithm that
  reads alpha, beta and gamma doubles.
  Compared to device motion, however, we have an additional problem in that
  device orientation data is provided in Euler angles and Orientation Sensor
  uses quaternions.
  The idea is to parse readings by reading alpha/beta/gamma keys from the
  WebDriver extension command and use them in the "fire orientation event"
  algorithm and skip using quaternions altogether. The Orientation Sensor
  spec can then augment the "parse orientation data reading" algorithm with
  the required steps to both 1) accept a "quaternion" key in the WebDriver
  extension command (and convert it to Euler angles as well) and 2) derive a
  quaternion from the alpha/beta/gamma Euler angles.

Fixes #122.
  • Loading branch information
rakuco authored Jan 4, 2024
1 parent bbf9831 commit 96a3179
Showing 1 changed file with 164 additions and 29 deletions.
Loading

0 comments on commit 96a3179

Please sign in to comment.