Skip to content

Commit c2333ad

Browse files
committed
Improve description of the construction application scenario
1 parent c9395b5 commit c2333ad

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

draft-ietf-asdf-instance-information.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -616,11 +616,15 @@ Other specifications may define additional use cases instance-related messages c
616616

617617
## Construction
618618

619-
In SDF models, we can specify a Thing's configurable parameters via `sdfProperty` definitions for which Construction Messages can provide concrete values.
620-
{{code-sdf-construction-sdf-context}} shows an example for such an SDF model.
621-
In this example, the `unit` quality of the `temperature` property has to be considered a construction parameter, as a connection to the `unit` property is established via the `sdfParameters` map using a JSON Pointer.
619+
In SDF models, we can treat a Thing's `sdfProperty` definitions as construction parameters.
620+
Construction messages can serve as an ecosystem-independent way for initializing properties, epecially those that are specified as non-writable.
622621

623-
If the `unit` is not initialized during construction, it falls back to the default `Cel` for degrees Celcius.
622+
{{code-sdf-construction-sdf-context}} shows an example for an SDF model where the `ipAddress` and `deviceIdentity` are supposed to be initialized at construction time, since they are required and not writable via regular interactions during runtime.
623+
As the `unit` property has a default value (`Cel` for degrees Celcius), it does not have to be initialized during construction.
624+
However, for all of these properties, a reconfiguration during runtime is possible.
625+
626+
In this example, the `deviceIdentity` would be retrievable like a "regular", but immutable property affordance.
627+
While the `ipAddress` might be used for interaction affordances (e.g., by other models that build upon this one), the `temperature` property is "importing" the value of the `unit` property via a new quality called `sdfParameters`, where pairs of quality names and JSON pointers are used to import values from `sdfProperty` definitions.
624628

625629
~~~ sdf
626630
namespace:
@@ -649,16 +653,16 @@ sdfObject:
649653
firmwareVersion:
650654
type: string
651655
temperature:
656+
writable: false
652657
type: number
653658
sdfParameters:
654659
unit: "#/sdfObject/sensor/sdfProperty/unit"
655660
~~~
656661
{:sdf #code-sdf-construction-sdf-context
657662
title="Example for SDF model with constructors"}
658663

659-
Based on the SDF model above, a Construction Message such as the one shown in {{code-sdf-construction-message}} can trigger a construction process.
664+
Based on the SDF model above, a Construction Message such as the one shown in {{code-sdf-construction-message}} can trigger the construction process.
660665
As indicated via `sdfRequired`, this process must include the initialization of an IP address as well as the device's identity definitions.
661-
Initializing the `unit` quality is only required if the `temperature` property is present, which is expressed by the JSON pointer within the property's `sdfRequired` definition.
662666

663667
## Protocol Binding Information
664668

0 commit comments

Comments
 (0)