- From: Rick Waldron via GitHub <sysbot+gh@w3.org>
- Date: Wed, 07 Dec 2016 20:56:30 +0000
- To: public-device-apis-log@w3.org
> But if there is no object involved, such as sensor.x, then:
> ...
> There is much less chance to get confused in this case.
Yep, that's how J5 is designed as well.
--------------
I've never been a fan of the `sensor.reading.foo` design, but was
always willing to accept that certain changes would need to be made to
accomodate the platform. I'm happy to see that we're circling back
before fully committing to the existing design.
The design that @tobie suggested above, which had this example:
```js
let gyro = new Gyroscope({ frequency: 240 });
gyro.start();
gyro.onchange = _ => {
console.log("Rotation rate around the X-axis " + gyro.x);
console.log("Rotation rate around the Y-axis " + gyro.y);
console.log("Rotation rate around the Z-axis " + gyro.z);
};
gyro.onerror = event => console.log(event.error.name,
event.error.message);
```
Satisfies criteria 1, 2 and 3. Here's how:
> 1. high-frequency low-latency use-cases (e.g. head-tracking for VR),
We already know why, it's because there is no excessive allocation and
therefore no excessive GC demands.
> 2. operating over multiple, sequential sensor readings in (near-)
realtime (e.g. Kalman filters),
> 3. storing sensor reading for further processing at a later stage,
either locally or remotely.
Application code can easily copy the values from the properties and
store them for later, if they want to do so:
```js
let cache = [];
gyro.onchange = _ => {
cache.push({ x, y, z } = gyro);
};
```
... Any amount of historic data can be kept or discarded as needed by
the application (re: criteria 2)
--
GitHub Notification of comment by rwaldron
Please view or discuss this issue at
https://github.com/w3c/sensors/issues/153#issuecomment-265570801 using
your GitHub account
Received on Wednesday, 7 December 2016 20:56:37 UTC