Equivalent WoT TD definition

PropertyAffordance

Description

In OPC UA variables are used to represent values which may be simple or complex. Variables are defined by VariableTypes. Variables are always defined as Properties or DataVariables of other Nodes in the AddressSpace.

Similarly, in a TD a property affordance represents a simple or complex value that can be read / written / observed.

Not all discovered UA Variables are recommended to transformed as TD properties, especially Variables that are part of a UA Method (InputArguments, OutputArguments).

It is recommended to transform only UA variables into TD properties, which represent a standalone data point (e.g., dynamic values such as sensor or status values, static values that are not part of an HasProperty relationship).

If an UA Variable is part of a logical complex definition (e.g., latitude Variable is component of an UA Object with the name GPS), it is recommended to annotate the property with the uav:componentOf term to make clear, that the TD property is part of a parent object (e.g., GPS). This may be important to trigger the client to make an atomic read by readmultipleproperties of all members that belongs to an UA Object (e.g., latitude and longitude).

Snippet example in OPC UA (e.g., as nodeset)

<UAVariable DataType="Double" NodeId="ns=3;i=6125" BrowseName="3:ActualPosition" ParentNodeId="ns=3;i=5058"> <DisplayName>Actual Position</DisplayName> ….

Transformed usage in a TD definition (as snippet)

"properties": {

"3:ActualPosition": { "title": "Actual Position", "type": "number",

Alternative:

"properties": {

"3:ActualPosition": {

"@type": ["uav:variable"], "title": "Actual Position",

"type": "number",