ThingFacet is a reusable TQL component that defines the software interaction interactions with a "thing" or an aspect of a and represent the "thing" in the software. The A "thing" can be sensors, actuators or machines.
ThingFacet is one of the several types of of Model Facets. Model Facets also include DataFacets and AppFacets.
A ThingFacet has attributes and actions., devices, or a particular aspect or function of a more complex machine. A ThingFacet has a name, Model Attributes and Actions.
Attributes
Attributes are containers of values. They can be used to hold fixed information about the thing, such as manufacturer name or serial number, or to hold changing variable values, such as TempValue.
Actions define processes. In ThingFacets such processes often are about interacting with external things based a some communication protocol.
A special type of attributes is for the following purposes in ThingFacets:
(1) Store parameters required to make a protocol specific invocation to the thing, such as <
String
Name
=
"InterfacePort"
/>
(2) Store information received from the thing, such as <Number
Name
=
"TempValue"
/>
(The TempValue from the temperature sensor)
(3) Hold fixed information about the thing, such as <
String
Name
=
"Unit"
default
=
"Celsius"
/>
(4) Act as control variables - variable that can activate certain actions. They are called "actionable attributes". Actionable attributes are linked with one or more actions in the same ThingFacet by a modifier "KnownBy". For example: <
Number
Name
=
"TempValue"
KnownBy
=
"SerialReadAction"
/>
Actions
Action is where the processes to interact with things are defined.
Gliffy name ThingFacet
An example of Camera ThingFacet.