- From: <Cathy.Chan@nokia.com>
- Date: Mon, 12 Sep 2011 18:56:10 +0000
- To: <anssi.kostiainen@nokia.com>, <public-device-apis@w3.org>
- Message-ID: <A46437648ECB3D4F852B077AFF9099F50158B75D@008-AM1MPN1-051.mgdnok.nokia.com>
Thank you Anssi for the update.
I think the changes would be sufficient to remove the potential ambiguities.
It's fine to go without describing the processing model.
A couple additional comments on the table for the attribute values
1. The rows for critical/low have different meaning from that for ok: for
critical, it is to be interpreted as {isPlugged is false AND level <
critical_threshold}, whereas for ok, it is to be interpreted as {isPlugged
is true OR level > low_threshold}. To keep this table format, we need two
separate rows for ok, one for {isPlugged is false and level > low_threshold}
and another for {isPlugged is true} (with any value of level).
2. The boundary cases of level=critical_threshold and level=low_threshold
are missing. My bad for the oversight in the first place.
Regards, Cathy.
-----Original Message-----
From: Anssi Kostiainen [mailto:anssi.kostiainen@nokia.com]
Sent: Monday, September 12, 2011 7:53 AM
To: public-device-apis@w3.org WG; Chan Cathy (Nokia-CIC/Boston)
Subject: Re: [battery] Still some questions on battery status
Hi,
On 9.9.2011, at 23.59, ext Cathy.Chan@nokia.com wrote:
> I don't necessarily argue with that design and usage, but I would
> argue that it's not clearly presented. If there's room for
> misinterpretation, there's probably room for improvement.
>
> IMHO the confusion comes from basing the definition of a state (the
> status
> attribute) on the definition of a state change (the battery
> critical/low/ok events). To me, that seems a bit backward. I would
> rather define the exact conditions under which the status attribute is
> assigned each of the defined values, and define that the events are
> triggered when the value of the status attribute changes.
The spec is written with the following processing model in mind:
1. isPlugged and/or level changes, values are set 2. if the stated
conditions are met status attribute changes its value to "low", "critical"
or "ok" and a battery{low|critical|ok} event is dispatched 3. a
batterystatus event is dispatched
I'd guess that if you're implementing this API, you'd be listening to some
platform-level API in step 0 for isPlugged and level changes (in the
playground demo I was listening to change events on input elements).
Would it make things clearer if the above-mentioned processing model would
be in the spec?
> Based on Robin's explanation and Anssi's battery events playground
> (which is very useful by the way, so thanks Anssi), my understanding
> is that for the status attribute:
> critical: isPlugged is false and level < critical_threshold
> low: isPlugged is false and critical_threshold < level <
> low_threshold
> ok: isPlugged is true or level > low_threshold
> null: level is null
> Those conditions should go into the definition for the status attribute.
Thanks, I added this to the spec as a table under the status attribute
definition.
> If I were allowed to pick one more nit, I would also say that the
> status attribute does more than "represents how much of the internal
> power source remains", as isPlugged also plays a role in its value.
Changed to: "Represents the battery status of the hosting device".
Thanks for the feedback.
-Anssi
Received on Monday, 12 September 2011 18:56:56 UTC