- From: Rick Waldron <waldron.rick@gmail.com>
- Date: Fri, 7 Dec 2012 12:45:26 -0500
- To: Anne van Kesteren <annevk@annevk.nl>
- Cc: public-device-apis <public-device-apis@w3.org>
- Message-ID: <CAHfnhfqL4ypSyCkvqXbC4Lk7A6bWOSVr47h3-2axy--6tAQqxA@mail.gmail.com>
On Fri, Dec 7, 2012 at 5:39 AM, Anne van Kesteren <annevk@annevk.nl> wrote: > > If your device is not doing anything, e.g. completely stationary, > these sensors would theoretically not change and you would never be > able to get the actual state. That might be a mostly academic problem, > but this seems like another set of events that violate the spirit of > DOM Events. Kinda ambivalent on whether that's good or bad, but I > think it at least ought to be pointed out more clearly. And perhaps we > ought to define this more explicitly by having some kind of hook in > addEventListener? > I've been thinking about this since the last call yesterday as well. Early in my development of the Johnny-Five framework, I decided that all sensors must: 1. Generate events - sensor.on("change", .... ); // Any change to the reading value(s) - sensor.on("read", .... ); // Every sensor reading 2. Allow value read accessors - sensor.value; // sensors w/ a single value - sensor.axis.{ x, y, z } // multiple values (ie. accelerometer, as shown here) 3. Stream (in progress) - http://maxogden.com/node-streams.html But of course, this design is meant to facilitate an arbitrary number of sensors, eg. you might have an array of 4 proximity or sonar sensors on a robot to aid in navigation. This level of scalability may not seem practical for mobile devices, but then I'm reminded of navigator.getUserMedia that was originally spec'ed with no thought about multiple cameras—implementations then have to figure it out. I understand there is platform precedence to consider, ie. DeviceMotion and DeviceOrientation APIs and this nicely matches, but If I was asked to start from scratch, I'd start with a Proximity (or DeviceProximity...something similar) constructor that initialized proximity objects that had properties: max, min and value and could dispatch events by inheriting EventTarget. I have no expectation that the current system would be changed like this, so consider this entirely "just for fun". :) Rick
Received on Friday, 7 December 2012 17:46:16 UTC