- From: Philip Gladstone <pgladstone@cisco.com>
- Date: Wed, 15 Dec 2010 16:58:39 -0500
- To: public-device-apis@w3.org
- Message-ID: <4D093A0F.4060003@cisco.com>
Hi I note the the StorageUnit property does not include flash memory. Since this is the most common sort of memory in phones (and probably in next years laptops in the form of SSDs), it seems a pity to use TYPE_UNKNOWN. I also have a philosophical objection to TYPE_UNKNOWN as it occurs in many places in this document. In some cases the type may really be unknown, but in most cases it is really TYPE_OTHER (such as the flash example). You may want to consider whether to add a TYPE_OTHER to each (effective) enumeration, or whether to define an extension mechanism to allow new technology to be adequately represented. In section 4.4 Power, it is clear that a very simple model of power is being assumed. It isn't obvious how you would fit an integrated solar charger for a cellphone (or e-book reader) into this model. When the sun is shining, is 'isExternal' true or false? Since the values of isCharging and isExternal have specific relationships, this gets complicated very quickly. If the solar charger was external, would this make a difference? I have seen laptops with fuel cells and batteries, and even one with a hand-crank. I would define the terms as follows; |level| of type float, readonly, nullable Specifies how much of the internal energy source remains, scaled as follows. A value of 0 means that the stored energy level is at a point where the system will enter shutdown mode, and 1 indicates that the system's stored energy level is maximal. Negative values are only likely during the system shutdown process. Any threshold parameter used in a watch function to monitor this property applies to this attribute. /No exceptions./ |timeRemaining| of type unsigned long, readonly, nullable Represents the estimated time remaining in seconds before the system enters shutdown mode, based on net current power consumption (which may be averaged over a short period of time) and how much stored energy remains. Ifthis valueis|null|, this means that there is essentially infinite time remaining. /No exceptions./ |isExternal| of type boolean, readonly If |true| the device is currently receiving any power from an external source. If |false| the device is not receiving power from an external source. /No exceptions./ |isCharging| of type boolean, readonly Indicates whether the internal stored energy level is currently increasing. If isExternal is |false|, this valu//e is likely to be |false|, meaning that the system is consuming net positive power, and the stored energy source is therefore depleting. /No exceptions./ In the case of the section 4.7 Network, there seems to be an assumption that there is only a single connection to the network. This isn't the case for nearly all systems today. Also, with the advent of v6, each interface will have multiple ip addresses (probably at least one v4 address and probably at least two v6 addresses). This doesn't seem obviously representable in this schema. Even if the interface was changed to return multiple Network property objects, it isn't clear whether it will return interfaces that are down. For example, would it return a TYPE_IEEE802_11 object if the Wifi was not currently associated to an access point (or a member of an adhoc network)? I suggest that having a way to enumerate the down interfaces will be useful. Further, there are logical interfaces such as VPNs or general tunnels as might be used in an I-WLAN implementation. It is not clear how to represent these. I also note that an application cannot tell what interface will be used for any particular network operation as it does not have access to the routing table. A use case might be to delay downloading large images while connected over GSM (and only show thumbnails) but show the full images if connected over 802_11. The problem is that the app cannot tell whether the connection to a particular data source will use GSM or 802_11. For example, if the 802_11 interface is associated to a public access point, there probably needs to be some sort of captive portal remediation before connectivity is established to the Internet. If the user chooses not to pay, then the connection will remain up at layer 2, but not able to communicate with the Internet. Thanks for reading this far... Philip -- Philip Gladstone Distinguished Engineer Product Development pgladstone@cisco.com Phone: +1 978-ZEN-TOAD (+1 978 936 8623) Google: +1 978 800 1010 Ham radio: N1DQ Blog: http://wwwin-blogs.cisco.com/pgladsto/ Cisco.com - http://www.cisco.com This email may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply email and delete all copies of this message. For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/index.html
Received on Wednesday, 15 December 2010 21:59:12 UTC