From af584417cc90abf90a30669eaa0bb7004c3d3448 Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Fri, 23 Feb 2024 12:37:06 +0100 Subject: [PATCH] sensors: WRITE-ME! Fixes #478. --- images/generic_sensor_model.png | Bin 29047 -> 52565 bytes images/generic_sensor_model.svg | 4503 +++++++++++++++++++++++-------- index.bs | 182 +- 3 files changed, 3556 insertions(+), 1129 deletions(-) diff --git a/images/generic_sensor_model.png b/images/generic_sensor_model.png index 6bd30a43fa2a05a09dbc2125447e44197c0df5bf..2750a58c90b2f880db8248088a7fd9d7a3bd97e7 100644 GIT binary patch literal 52565 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 *pMn70XvMMgofG@x-35?qi zaaR!;IbQTCj~e9Z2e;oez8=y*OY}-2y``QrTANwpf?q>aj0haLQB*Bt?FkH^mli7^ z?g++3-ALlPW(wZt7XDC1awZ@l4u^BT=@Tfg5v@^^;PiA z;y@S1+!Fub3z8#X2SR4vA-?}@#9c&Y-~A*w0brxlOJNPdLTfo!xB@JE>C1O4C@b<53KawU|NAGj7 - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Browsing Context 1 - - - - - - - - - - - - - - - - - Accelerometer : Sensor - - - - - - - - - - - frequency = 1 Hz - - - - - - - - - - - - - - - - - - - - - - - - - - - - state = activated - - - - - - - - - - - - - - - - - Accelerometer : Sensor - - - - - - - - - - - frequency = 10 Hz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - state = activated - - - - - - - - - - - - - - - - - Platform Sensor - - - - - - - - - - - requested sampling frequency = 10 Hz - - - - - - - - - - - activated sensor objects - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - latest reading - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Browsing Context 2 - - - - - - - - - - - - - - - - - Accelerometer : Sensor - - - - - - - - - - - frequency = 1 Hz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - state = activated - - - - - - - - - - - - - - - - - Platform Sensor - - - - - - - - - - - requested sampling frequency = 1 Hz - - - - - - - - - - - activated sensor objects - - - - - - - - - - - - - - - - - - - - - - - - - - - - latest reading - - - - - - - - - - - - - - - - - Accelerometer : Sensor - - - - - - - - - - - frequency = 1 Hz - - - - - - - - - - - - - - - - - - state = idle - - - - - - - - - - - X - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Y - - - - - - - - - - - Z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Device Sensor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document 1 + + + + + + + + + + + + + + + + + Accelerometer : Sensor + + + + + + + + + + + frequency = 1 Hz + + + + + + + + + + + + + + + + + + + + + + + + + + + + state = activated + + + + + + + + + + + + + + + + + Accelerometer : Sensor + + + + + + + + + + + frequency = 10 Hz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + state = activated + + + + + + + + + + + + + + + + + Platform Sensor + + + + + + + + + + + sampling frequency = 10 Hz + + + + + + + + + + + activated sensor objects + + + + + + + + + + + + + + + + + latest reading + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document 2 + + + + + + + + + + + + + + + + + Accelerometer : Sensor + + + + + + + + + + + frequency = 1 Hz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + state = activated + + + + + + + + + + + + + + + + + Platform Sensor + + + + + + + + + + + sampling frequency = 1 Hz + + + + + + + + + + + activated sensor objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + latest reading + + + + + + + + + + + + + + + + + Accelerometer : Sensor + + + + + + + + + + + frequency = 1 Hz + + + + + + + + + + + + + + + + + + state = idle + + + + + + + + + + + X + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Y + + + + + + + + + + + Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device Sensor - - \ No newline at end of file + diff --git a/index.bs b/index.bs index 4ca0562..ca27dd3 100644 --- a/index.bs +++ b/index.bs @@ -698,8 +698,8 @@ define ways to uniquely identify each one. For the purpose of this specification, a [=platform sensor=]'s sampling frequency is defined as a frequency at which a [=platform sensor=] obtains [=sensor readings=] from the -underlying [=device sensor=]. The way such [=sensor readings=] are obtained is -[=implementation-defined=]. +underlying [=device sensor=]. It is represented as a number, initially 0. The way such [=sensor +readings=] are obtained is [=implementation-defined=]. The [=platform sensor=]'s [=sampling frequency=] may not correspond to the [=device sensor=]'s actual sampling rate, which, for the purpose of this specification, is opaque. @@ -800,12 +800,15 @@ A [=sensor type=] may have the following associated data:

Sensor

-The current [=browsing context=]'s [=platform sensor=] must have: -- An associated [=ordered set|set=] of activated sensor objects, - which is initially [=set/is empty|empty=]; -- An associated latest reading [=ordered map|map=], which holds the - latest available [=sensor readings=]. -- An associated [=sensor type=]. +A [=platform sensor=], defined in [[#concepts-sensors]], must have the following associated data: +- A [=sampling frequency=] (a number), initially 0. +- A [=device sensor=] to which it is connected. +- A [=ordered set|set=] of activated sensor objects, which is initially empty. +- A latest reading [=map=], which holds the latest available [=sensor readings=]. +- A [=sensor type=]. + +As used in this specification, a [=platform sensor=] is always bound to a {{Document}} (see +[[#extensions-to-document-interface]]). Any time a new [=sensor reading=] for a [=platform sensor=] is obtained and if the user agent [=can expose sensor readings=] to the current [=/navigable=]'s [=navigable/active document=], @@ -858,23 +861,37 @@ To get a platform sensor's sampling bounds given a [=platform sensor= This example illustrates a possible implementation of the described [[#model|Model]]. In the diagram below several [=activated sensor objects|activated=] {{Sensor}} objects from two -different [=browsing contexts=] interact with a single [=device sensor=]. +different [=documents=] interact with a single [=device sensor=]. Generic Sensor Model The {{Sensor}} object in "idle" [[#sensor-lifecycle|state]] is not among the [=platform sensor=]'s [=activated sensor objects=] and thus it does not interact with the [=device sensor=]. -In this example there is a [=platform sensor=] instance per [=browsing context=]. +There is one [=platform sensor=] per [=document=]. The [=latest reading=] [=ordered map|map=] is shared between {{Sensor}} objects from the -same [=browsing context|context=] and is updated at a rate equal to the requested [=sampling frequency=] +same [=document=] and is updated at a rate equal to the requested [=sampling frequency=] of the corresponding [=platform sensor=].

API

+

Extensions to the Document interface

+ +The {{Document}} interface must have a \[[sensorMapping]] +internal slot, a [=map=] of [=sensor types=] to [=platform sensors=]. + +
+This specification defines the following [=unloading document cleanup steps=] given a {{Document}} +|document|: + +1. [=list/For each=] |platformSensor| of |document|.{{Document/[[sensorMapping]]}}'s [=map/values=]: + 1. If |platformSensor|'s [=device sensor=] is not a [=virtual sensor=], [=continue=]. + 1. [=set/Remove=] |platformSensor| from |platformSensor|'s [=device sensor=]'s [=virtual sensor/connected platform sensors=]. + +

The Sensor Interface

@@ -1285,43 +1302,52 @@ to {{SensorErrorEventInit}}.

Connect to sensor

- : input :: |sensor|, a {{Sensor}} object. :: |global|, a [=/global object=]. : output - :: True if |sensor| was associated with a [=platform sensor=], + :: True if a [=platform sensor=] was successfully connected to a [=device sensor=], false otherwise. - 1. Let |platformSensor| be null. + 1. Let |document| be |sensor|'s [=relevant global object=]'s [=associated document=]. 1. Let |type| be |sensor|'s associated [=sensor type=]. - 1. Let |virtualSensorType| be |sensor|'s associated [=virtual sensor type=], or null if it is not set. - 1. Let |topLevelTraversable| be |global|'s [=Window/navigable=]'s [=navigable/top-level - traversable=]. - 1. If |virtualSensorType| is not null and |topLevelTraversable|'s [=virtual sensor mapping=] [=map/contains=] |virtualSensorType|: - 1. Let |virtualSensor| be |topLevelTraversable|'s [=virtual sensor mapping=][|virtualSensorType|]. - 1. If |virtualSensor|'s [=virtual sensor/can provide readings flag=] is true, set |platformSensor| - to a [=platform sensor=] corresponding to |virtualSensor|. - - Note: If the [=virtual sensor/can provide readings flag=] is false, |platformSensor| will - remain null and this algorithm will return false. + 1. Let |platformSensor| be null. + 1. If |document|.{{Document/[[sensorMapping]]}} [=map/contains=] |type|, set |platformSensor| + to |document|.{{Document/[[sensorMapping]]}}[|type|]. 1. Otherwise: - 1. If the device has a single [=device sensor=] which can provide [=sensor - readings|readings=] for |type|, then - 1. Set |platformSensor| to a [=platform sensor=] corresponding - to this [=device sensor=]. - 1. If the device has multiple [=device sensors=] which can provide [=sensor - readings|readings=] for |type|, then - 1. If |type| has an associated [=default sensor=], then - 1. Set |platformSensor| to a [=platform sensor=] corresponding to this [=default - sensor|default device sensor=]. - 1. If |platformSensor| is null, return false. + 1. Let |deviceSensor| be null. + 1. Let |virtualSensorType| be |type|'s associated [=virtual sensor type=], or null if it is not set. + 1. Let |topLevelTraversable| be |global|'s [=Window/navigable=]'s [=navigable/top-level + traversable=]. + 1. If |virtualSensorType| is not null and |topLevelTraversable|'s [=virtual sensor mapping=] [=map/contains=] |virtualSensorType|: + 1. Let |virtualSensor| be |topLevelTraversable|'s [=virtual sensor mapping=][|virtualSensorType|]. + 1. If |virtualSensor|'s [=virtual sensor/can provide readings flag=] is true, set |deviceSensor| + to |virtualSensor|. + + Note: If the [=virtual sensor/can provide readings flag=] is false, |deviceSensor| will + remain null and this algorithm will return false. + 1. Otherwise: + 1. If the device has a single [=device sensor=] which can provide [=sensor + readings|readings=] for |type|, then + 1. Set |deviceSensor| to said [=device sensor=]. + 1. If the device has multiple [=device sensors=] which can provide [=sensor + readings|readings=] for |type|, then + 1. If |type| has an associated [=default sensor=], then + 1. Set |deviceSensor| to this [=default sensor|default device sensor=]. + 1. If |deviceSensor| is null, return false. + 1. Set |platformSensor| to a new [=platform sensor=] whose [=device sensor=] is + |deviceSensor| and whose [=sensor type=] is |type|. + 1. If |deviceSensor| is a [=virtual sensor=], [=set/append=] |platformSensor| to + |deviceSensor|'s [=virtual sensor/connected platform sensors=]. + 1. Run any [=implementation-defined=] steps to connect |platformSensor| to |deviceSensor|. + 1. Set |document|.{{Document/[[sensorMapping]]}}[|type|] to |platformSensor|. 1. Let |bounds| be the result of invoking [=get a platform sensor's sampling bounds=] with |platformSensor|. 1. If |sensor|.{{Sensor/[[frequency]]}} is null, set it to an [=implementation-defined=] value dependent on |type|. 1. If |sensor|.{{Sensor/[[frequency]]}} is less than |bounds|[0], set it to |bounds|[0]. 1. If |sensor|.{{Sensor/[[frequency]]}} is greater than |bounds|[1], set it to |bounds|[1]. + 1. Set |sensor|'s associated [=platform sensor=] to |platformSensor|. 1. Return true.
@@ -1389,19 +1415,28 @@ to {{SensorErrorEventInit}}. :: None 1. If |platformSensor|'s set of [=activated sensor objects=] [=set/is empty=], - 1. Set |platformSensor|'s [=sampling frequency=] to null. + 1. Set |platformSensor|'s [=sampling frequency=] to 0. 1. [=map/For each=] |key| → value of |platformSensor|'s [=latest reading=]. 1. [=map/Set=] |platformSensor|'s [=latest reading=][|key|] to null. - 1. Update the [=implementation-defined=] way in which [=sensor readings=] are obtained - from |platformSensor| to no longer provide [=sensor readings|readings=]. + 1. If |platformSensor|'s [=device sensor=] is a [=virtual sensor=], + 1. [=set/Remove=] |platformSensor| from |platformSensor|'s [=device sensor=]'s [=virtual sensor/connected platform sensors=]. + 1. Update the [=implementation-defined=] way in which |platformSensor| obtains [=sensor + readings=] from its [=device sensor=] so that it stops obtaining new readings. 1. Return. - 1. Set |platformSensor|'s [=sampling frequency=] to an [=implementation-defined=] value based - on the {{Sensor/[[frequency]]}} values of the items in its [=activated sensor objects=] - [=ordered set|set=]. + 1. Let |previousFrequency| be |platformSensor|'s [=sampling frequency=]. 1. Let |bounds| be the result of invoking [=get a platform sensor's sampling bounds=] with |platformSensor|. - 1. [=Assert=]: |platformSensor|'s [=sampling frequency=] is greater than or equal to - |bounds|[0] and less than or equal to |bounds|[1]. + 1. Set |platformSensor|'s [=sampling frequency=] to an [=implementation-defined=] value based + on the {{Sensor/[[frequency]]}} values of the items in its [=activated sensor objects=] + [=ordered set|set=]. The value must be greater than or equal to |bounds|[0] and less than or + equal to |bounds|[1]. + 1. If |previousFrequency| is 0, + 1. If |platformSensor|'s [=device sensor=] is a [=virtual sensor=], + 1. Let |virtualSensor| be |platformSensor|'s [=device sensor=]. + 1. If |virtualSensor|'s [=virtual sensor/latest saved reading=] is not null: + 1. In an [=implementation-defined=] way, make |virtualSensor|'s [=virtual sensor/latest saved reading=] available to |platformSensor|. + 1. In an [=implementation-defined=] way, make |platformSensor| start obtaining readings + from its [=device sensor=].

Update latest reading

@@ -1589,21 +1624,23 @@ entirely defined by users.

Virtual Sensors

A virtual sensor simulates the behavior of a [=device sensor=] in controlled ways. It -reports [=sensor readings=] to zero or more [=platform sensors=] connected to it. +reports [=sensor readings=] to zero or more [=platform sensor-likes=] connected to it. + +This section also defines the auxiliary concept of a platform sensor-like, which +is either: +- A [=platform sensor=] as defined in this specification, or +- Any type that has an associated [=sampling frequency=] (a number), an associated [=device sensor=] + and which makes use of a [=virtual sensor=]'s [=virtual sensor/latest saved reading=]. + +Note: The only reason we use [=platform sensor-like=] in this section is compatibility with +[[ORIENTATION-EVENT]], which does not use the [=sensor type=] and [=platform sensor=] definitions +from this specification but whose Automation section needs to integrate with this one. A [=virtual sensor=] has the following associated data: - A can provide readings flag (a [=boolean=]). -- A requested sampling frequency (a number). Just like a regular - [=device sensor=]'s actual sampling frequency is opaque, a [=virtual sensor=]'s [=virtual - sensor/requested sampling frequency=] is an [=implementation-defined=] value that lies within the - bounds set by the [=virtual sensor/minimum sampling frequency=] and the [=virtual sensor/maximum - sampling frequency=]. If a [=virtual sensor=] is not providing readings to any [=platform - sensor=], its [=virtual sensor/requested sampling frequency=] is 0. - - Note: [=virtual sensor/Requested sampling frequency=]'s value depends, among other things, on - whether connected [=platform sensors=] have requested a certain sampling frequency (which might - differ per [=platform sensor=]), or whether they are polling the [=virtual sensor=], in which case - no sampling frequency might have been requested at all. +- Connected platform sensors (an [=ordered set=] of [=platform + sensor-likes=], initially empty). +- Latest saved reading (an [=ordered map=]-or-null, initially null). - A minimum sampling frequency (a number). A [=virtual sensor=] is a [=device sensor=], so this corresponds to the [=device sensor=]'s [=device sensor/minimum sampling frequency=]. @@ -1611,6 +1648,8 @@ A [=virtual sensor=] has the following associated data: [=device sensor=], so this corresponds to the [=device sensor=]'s [=device sensor/maximum sampling frequency=]. +### Auxiliary concepts ### {#virtual-sensor-auxiliary-concepts} + A virtual sensor type is a string that represents a sensor of a given type. The per-type virtual sensor metadata is an [=ordered map=] of [=virtual sensor @@ -1777,16 +1816,17 @@ properties: "`requestedSamplingFrequency`" {{Number}} - The [=virtual sensor=]'s [=virtual sensor/requested sampling frequency=] + The highest [=sampling frequency=] among a [=virtual sensor=]'s [=virtual sensor/connected + platform sensors=] -Note: See [[#concepts-sampling-and-reporting-frequencies]] for some constraints on [=sampling -frequency=] as well as the explanation about why a [=virtual sensor/requested sampling frequency=] -is an [=implementation-defined=] value in [[#virtual-sensors]]. In general, it is only safe to -assume that the value lies within the bounds set by the [=virtual sensor=]'s [=virtual -sensor/minimum sampling frequency=] and [=virtual sensor/maximum sampling frequency=]. +Note: As noted in [[#concepts-sampling-and-reporting-frequencies]], a [=device sensor=]'s actual +sampling frequency is opaque. "`requestedSamplingFrequency`" provides information about one or more +[=platform sensor-likes=]' [=sampling frequency=], not a [=device sensor=]'s actual sampling frequency. +The main purposes of this property are to help validate a [=platform sensor-like=]'s [=sampling +frequency=] and allow other frequencies to be derived from it.
The [=remote end steps=] are: @@ -1796,9 +1836,13 @@ sensor/minimum sampling frequency=] and [=virtual sensor/maximum sampling freque 1. If |topLevelVirtualSensorMapping| does not [=map/contain=] |virtualSensorType|, return [=error=] with [=WebDriver error code=] [=invalid argument=]. 1. Let |virtualSensor| be |topLevelVirtualSensorMapping|[|virtualSensorType|]. + 1. Let |frequency| be 0. + 1. [=set/For each=] |platformSensor| of |virtualSensor|'s [=virtual sensor/connected platform + sensors=]: + 1. If |platformSensor|'s [=sampling frequency=] is greater than |frequency|, set + |frequency| to |platformSensor|'s [=sampling frequency=]. 1. Let |info| be a new {{Object}}. - 1. Invoke [=set a property=] on |info| with "`requestedSamplingFrequency`" and |virtualSensor|'s - [=virtual sensor/requested sampling frequency=]. + 1. Invoke [=set a property=] on |info| with "`requestedSamplingFrequency`" and |frequency|. 1. Return [=success=] with data |info|.
@@ -1817,11 +1861,11 @@ sensor/minimum sampling frequency=] and [=virtual sensor/maximum sampling freque -This [=extension command=] makes a new [=sensor reading=] available to [=platform sensors=]. +This [=extension command=] makes a new [=sensor reading=] available to [=platform sensor-likes=]. Note: A [=virtual sensor=] acts like a [=device sensor=], so the [=sensor reading=] produced here -still has to be processed by a [=platform sensor=], which might discard it due to, for example, a -[=sensor type=]'s [=threshold check algorithm=] or [=can expose sensor readings=]'s result. +still has to be processed by a [=platform sensor-like=], which might discard it due to, for example, +a [=sensor type=]'s [=threshold check algorithm=] or [=can expose sensor readings=]'s result. @@ -1860,8 +1904,12 @@ still has to be processed by a [=platform sensor=], which might discard it due t parsing algorithm=] with |reading|. 1. If |parsedReading| is **undefined**, return [=error=] with [=WebDriver error code=] [=invalid argument=]. - 1. In an [=implementation-defined=] way, make |parsedReading| available so that it can be - obtained by [=platform sensors=] connected to |virtualSensor|. + 1. Set |parsedReading|["timestamp"] to the [=unsafe shared current time=]. + 1. Set |virtualSensor|'s [=virtual sensor/latest saved reading=] to |parsedReading|. + 1. [=set/For each=] |platformSensor| of |virtualSensor|'s [=virtual sensor/connected platform + sensors=]: + 1. In an [=implementation-defined=] way, make |virtualSensor|'s [=virtual sensor/latest + saved reading=] available so that it can be obtained by |platformSensor|. 1. Return [=success=] with data `null`.
Properties of the `parameters` argument used by this algorithm