Skip to content
Snippets Groups Projects
Commit 78206d85 authored by ankraft's avatar ankraft
Browse files

Merge branch 'MAS-2018-0082-Introducing_Product' into WI-0081-Smart_Device_Template_4_0

parents 9a442e33 291f6adb
Branches RDM-2019-0009-SDT_4_0_–_Align_spelling_of_import
No related tags found
No related merge requests found
...@@ -46,6 +46,7 @@ This section provides an overview about the SDT 4.0 definitions and element hier ...@@ -46,6 +46,7 @@ This section provides an overview about the SDT 4.0 definitions and element hier
|Domain | Unique name, or "wrapper" which acts like a namespace, set by the organization creating the SDT, allowing reference to a package of definitions for the contained ModuleClasses and device definitions. Can be referenced when extending ModuleClasses. It has two possible uses: to select the scope of a technology domain, or to set the scope of a use case domain (like Home, SmartGrid, etc) | |Domain | Unique name, or "wrapper" which acts like a namespace, set by the organization creating the SDT, allowing reference to a package of definitions for the contained ModuleClasses and device definitions. Can be referenced when extending ModuleClasses. It has two possible uses: to select the scope of a technology domain, or to set the scope of a use case domain (like Home, SmartGrid, etc) |
| Device | Physical, addressable, identifiable appliance/sensor/actuator. | | Device | Physical, addressable, identifiable appliance/sensor/actuator. |
| Sub-Device | A device (usually one of several) which may be embedded in a Device and/or is addressed via another Device. | | Sub-Device | A device (usually one of several) which may be embedded in a Device and/or is addressed via another Device. |
| Product| A concrete device model with deterministic Device Properties and ModuleClasses (no optionality). It's deemed as an specialized implementation of a DeviceClass but not yet an device instance. Examples are the shopping items (e.g. a smart watch) in an online digital store that can be ordered (but not necessarily manufactured) by a customer. |
| ModuleClass | Specification of a single service with one or more service methods, the involved abstracted data model and related events. The expectation is that each separate service which may be used in many kinds of Devices (like PowerON/OFF, Open/Close, ...) will be described by a ModuleClass which can be re-used in many Device definitions. | | ModuleClass | Specification of a single service with one or more service methods, the involved abstracted data model and related events. The expectation is that each separate service which may be used in many kinds of Devices (like PowerON/OFF, Open/Close, ...) will be described by a ModuleClass which can be re-used in many Device definitions. |
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
[Domain](#Domain) [Domain](#Domain)
[Device](#Device) | [SubDevice](#SubDevice) [Device](#Device) | [SubDevice](#SubDevice)
[Product](#Product)
[Property](#Property) [Property](#Property)
[ModuleClass](#ModuleClass) [ModuleClass](#ModuleClass)
   [Action](#Action)    [Action](#Action)
...@@ -75,6 +76,7 @@ It can also be used to collect all specified [ModuleClasses](#ModuleClasses) ...@@ -75,6 +76,7 @@ It can also be used to collect all specified [ModuleClasses](#ModuleClasses)
--- ---
<a name="Device"/></a> <a name="Device"/></a>
### Device ### Device
![](images/Device.png) ![](images/Device.png)
...@@ -115,6 +117,7 @@ An example for a compound device is a connected power-strip where each of the s ...@@ -115,6 +117,7 @@ An example for a compound device is a connected power-strip where each of the s
--- ---
<a name="SubDevice"/></a> <a name="SubDevice"/></a>
### SubDevice ### SubDevice
*SubDevices* are optional components of a [Device](#Device). They represent physical sub-devices and services inside another device (the *Device*). *SubDevices* are optional components of a [Device](#Device). They represent physical sub-devices and services inside another device (the *Device*).
...@@ -143,8 +146,119 @@ An example for a compound device is a connected power-strip where each of the s ...@@ -143,8 +146,119 @@ An example for a compound device is a connected power-strip where each of the s
</SubDevice> </SubDevice>
--- ---
<a name="Product"/></a>
### Product
![](images/Product.png)
In real life of device manufacturing, there is an important concept of *Product* under a certain *DeviceClass*. For example, oneM2M may specify a generic *DeviceClass* called 'deviceSmartBracelt' with many fancy features (*ModuleClasses*). Based on the same *DeviceClass*, company A may design a *Product* called 'X-Fit' with only the *ModuleClass* of 'stepCounter' and the instantiated *Property* value of 'Manufacturer = Company A', while company B may design a *Product* called 'Y-Wristband' with the *ModuleClasses* of 'stepCounter' and 'heartRateMonitor' and the instantiated *Property* value of 'Manufacturer = Company B'. Those two *Products* are different but follow the same *DeviceClass*.
On the other hand, a *Product* is **NOT** yet a real device instance of that *DeviceClass*. It may not have an instantiated *Properties* like device-id, date-of-manufacturing, and the firmware/software-version, etc. It can be ordered by the customers, but not necessarily instantiated or manufactured.
In short, a *Product* is a concrete device model with deterministic Device Properties and ModuleClasses (no optionality). It's deemed as an specialized implementation of a *DeviceClass* but not yet an device instance. Examples are the shopping items in an online digital store that can be ordered (but not necessarily manufactured) by a customer.
A *Product* can be defined by implementing the functionalities of an existing *DeviceClass* (while removing unimplemented optional *Properties* and *ModuleClasses*), extending from an existing *DeviceClass* (adding new *Properties* and *ModuleClasses*), or from scratch (without basing on any *DeviceClass*).
#### Attributes
- **id** : The identifier for that *Product*. The identifier must be unique at least in the scope of the domain, but the final scope is also influenced by implementing technologies. Required.
#### Elements
All elements of *DeviceClass* can be reused in *Product*, but the *optional* attribute of those elements is not applicable (ignored if present).
- **[Doc](#Documentation)** : Documentation for the *Product*. Optional.
- **[Properties](#Property)** : Further meta-data (or properties) about the *Product*. Optional.
- **[ModuleClasses](#ModuleClass)** : A list of *Module* components that are local to the *Product*. Optional.
- **[SubDevices](#SubDevice)** : A list of *SubDevice* components. Optional.
- **[DeviceClass](#DeviceClass)** : Reference to a *DeviceClass* which is implemented by this *Product*. Optional.
The element has the following attributes:
- **domain** : Identifier / Reference of the [Domain](#Domain) of the implemented *DeviceClass*. Optional if in the same domain.
- **class** : Name of the *DeviceClass* in the [Domain](#Domain) that is extended. Required for this element.
The element has the following child elements:
- **ImplementedModuleClasses** : A list of names of the implemented optional [ModuleClasses](#ModuleClass) in the [DeviceClass](#DeviceClass) that is extended. Optional. If not present, only mandatory [ModuleClasses](#ModuleClass) are implemented. If present, both the listed optional [ModuleClasses](#ModuleClass) and the mandatory [ModuleClass](#ModuleClass) are implemented.
- **ImplementedProperties** : A list of name-value pairs of the implemented optional device [Properties](#Property) in the [DeviceClass](#DeviceClass) that is extended. Optional. If not present, only mandatory [Properties](#Property) are implemented. If present, both the listed optional [Properties](#Property) and the mandatory [Properties](#Property) are implemented, and the values of those [Properties](#Property) are initiated as provided. In the case that the value of the [Properties](#Property) should not be initiated, the value can be omitted.
- **Extends** : Reference to a parent *Product* from which this *Product* is extended. Optional.
The element has the following attributes:
- **domain** : Identifier / Reference of the [Domain](#Domain) of the extended *Product*. Optional if in the same domain.
- **class** : *id* of the *Product* in the [Domain](#Domain) that is extended. Required for this element.
**Note**: New extended *Properties* and *ModuleClasses* **shall** have different names from those in the implemented *DeviceClass* if they're defined in the same *Domain*.
**Editor's Note**: the description of the optionality of the datapoints, properties, actions, events in the implemented ModuleClass is FFS.
#### XML Example
```
<Product id="myMseebProduct">
<DeviceClass domain="org.exampleDomain" class="MSEEB.root">
<ImplementedPropertyies>
<Property name="name" value="product-abc"/>
<Property name="vendor" value="xyz"/>
<Property name="SerialNumber"/>
</ImplementedProperties>
<ImplementedModuleClasses>
<MoudleClass name="rootPowerOnOff"/>
<MoudleClass name="power" />
</ImplementedModuleClasses>
</DeviceClass>
<Properties name="someNewProperty" value="someValue">
<Doc>...</Doc>
<SimpleType type="string" />
</Properties>
<ModuleClasses name="someNewModuleClass">
<Actions>
<!-- List of Actions goes here-->
</Actions>
<Events>
<!-- List of Events goes here-->
</Events>
<DataPoints>
<!-- List of DataPoints goes here-->
</DataPoints>
</ModuleClasses>
</Product>
```
#### JSON Example
```
{
"Product": {
"id": "myMseebProduct",
"DeviceClass": {
"domain": "org.exampleDomain",
"class": "MSEEB.root",
"ImplementedProperties": [{
"name": "name",
"value": "product-abc"
},
{
"name": "Vendor",
"value": "xyz"
},
{
"name": "SerialNumber"
}],
"ImplementedModuleClasses": ["rootPowerOnOff","power"]
},
"Properties": [{
"name": "someNewProperty",
"value": "someValue",
"Doc": "...",
"DataType": "..."
}],
"ModuleClasses": [{
"name": "someNewModuleClass",
"Actions": [],
"DataPoints": [],
"Events": []
}]
}
}
```
---
<a name="Property"/></a> <a name="Property"/></a>
### Property : Element of a *Device* or *ModuleClass* ### Property : Element of a *Device* or *ModuleClass*
![](images/Property.png) ![](images/Property.png)
...@@ -173,7 +287,8 @@ Since the *Properties* are highly varied, depending on industry segment, no atte ...@@ -173,7 +287,8 @@ Since the *Properties* are highly varied, depending on industry segment, no atte
--- ---
<a name="ModuleClass"/></a> <a name="ModuleClass"/></a>
### ModuleClass
### Module and ModuleClass
![](images/ModuleClass.png) ![](images/ModuleClass.png)
...@@ -197,7 +312,7 @@ Typical *ModuleClasses* might be equivalent to "power ON/OFF", "Open/Close", "Pa ...@@ -197,7 +312,7 @@ Typical *ModuleClasses* might be equivalent to "power ON/OFF", "Open/Close", "Pa
#### Elements #### Elements
- **[Doc](#Documentation)** : Documentation for the *Module* or *ModuleClass*. Optional. - **[Doc](#Documentation)** : Documentation for the *Module* or *ModuleClass*. Optional.
- **extends** : Reference to a another *ModuleClass* or *Module* which is extended with this *ModuleClass*. Optional. - **Extends** : Reference to a another *ModuleClass* or *Module* which is extended with this *ModuleClass*. Optional.
The element has the following attributes: The element has the following attributes:
- **domain** : Identifier / Reference of the [Domain](#Domain) of the extended *ModuleClass*. Required for this element. - **domain** : Identifier / Reference of the [Domain](#Domain) of the extended *ModuleClass*. Required for this element.
- **class** : Name of the *ModuleClass* in the [Domain](#Domain) that is extended. Required for this element. - **class** : Name of the *ModuleClass* in the [Domain](#Domain) that is extended. Required for this element.
...@@ -224,6 +339,7 @@ The element has the following attributes: ...@@ -224,6 +339,7 @@ The element has the following attributes:
--- ---
<a name="DataPoint"/></a> <a name="DataPoint"/></a>
### DataPoint : Element of *ModuleClass* and *Event* ### DataPoint : Element of *ModuleClass* and *Event*
![](images/DataPoint.png) ![](images/DataPoint.png)
...@@ -268,6 +384,7 @@ In EBNF: ...@@ -268,6 +384,7 @@ In EBNF:
--- ---
<a name="Action"/></a> <a name="Action"/></a>
### Action : Element of *ModuleClass* ### Action : Element of *ModuleClass*
![](images/Action.png) ![](images/Action.png)
...@@ -286,6 +403,7 @@ Note that systems which rely on RESTful operations need to carry out such comple ...@@ -286,6 +403,7 @@ Note that systems which rely on RESTful operations need to carry out such comple
- **Args** : Zero or more occurances of [argument](#Arg) definitions for an *Action*. Optional. - **Args** : Zero or more occurances of [argument](#Arg) definitions for an *Action*. Optional.
<a name="ActionExample"/></a> <a name="ActionExample"/></a>
#### Example #### Example
The following are two examples for actions implementing a getter and a setter for boolean values. The following are two examples for actions implementing a getter and a setter for boolean values.
...@@ -308,6 +426,7 @@ The following are two examples for actions implementing a getter and a setter fo ...@@ -308,6 +426,7 @@ The following are two examples for actions implementing a getter and a setter fo
--- ---
<a name="Event"/></a> <a name="Event"/></a>
### Event : Element of *ModuleClass* ### Event : Element of *ModuleClass*
![](images/Event.png) ![](images/Event.png)
...@@ -338,6 +457,7 @@ The following are two examples for actions implementing a getter and a setter fo ...@@ -338,6 +457,7 @@ The following are two examples for actions implementing a getter and a setter fo
--- ---
<a name="Arg"/></a> <a name="Arg"/></a>
### Arg : Element of *Action* ### Arg : Element of *Action*
![](images/Arg.png) ![](images/Arg.png)
...@@ -359,6 +479,7 @@ See [example above](#ActionExample). ...@@ -359,6 +479,7 @@ See [example above](#ActionExample).
--- ---
<a name="Data_Types"/></a> <a name="Data_Types"/></a>
### DataType ### DataType
The data type can be simple integers or string text, or rather complex, as shown below: The data type can be simple integers or string text, or rather complex, as shown below:
...@@ -385,6 +506,7 @@ The *DataType* element is a "container" for the various aspects of a type. ...@@ -385,6 +506,7 @@ The *DataType* element is a "container" for the various aspects of a type.
--- ---
<a name="Constraint"/></a> <a name="Constraint"/></a>
### Constraint : Element of DataType ### Constraint : Element of DataType
![](images/Constraint.png) ![](images/Constraint.png)
...@@ -410,6 +532,7 @@ The *TypeChoice* construct is required for syntactic reasons in the UML diagram ...@@ -410,6 +532,7 @@ The *TypeChoice* construct is required for syntactic reasons in the UML diagram
--- ---
<a name="SimpleType"/></a> <a name="SimpleType"/></a>
### SimpleType : Element of *TypeChoice* ### SimpleType : Element of *TypeChoice*
![](images/SimpleType.png) ![](images/SimpleType.png)
...@@ -437,6 +560,7 @@ If not stated otherwise datatypes should comply to the equivalent datatypes defi ...@@ -437,6 +560,7 @@ If not stated otherwise datatypes should comply to the equivalent datatypes defi
--- ---
<a name="StructType"/></a> <a name="StructType"/></a>
### StructType : Element of *TypeChoice* ### StructType : Element of *TypeChoice*
![](images/Struct.png) ![](images/Struct.png)
...@@ -450,6 +574,7 @@ The *StructType* element can be used to represent an ordered list of diverse Dat ...@@ -450,6 +574,7 @@ The *StructType* element can be used to represent an ordered list of diverse Dat
--- ---
<a name="ArrayType"/></a> <a name="ArrayType"/></a>
### ArrayType : Element of *TypeChoice* ### ArrayType : Element of *TypeChoice*
![](images/Array.png) ![](images/Array.png)
...@@ -462,6 +587,7 @@ The *ArrayType* element is provided for defining lists of data; the definition i ...@@ -462,6 +587,7 @@ The *ArrayType* element is provided for defining lists of data; the definition i
--- ---
<a name="Documentation"/></a> <a name="Documentation"/></a>
### Doc : Element for all Documentation ### Doc : Element for all Documentation
![](images/Doc.png) ![](images/Doc.png)
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="13.3"> <diagram program="umlet" version="14.2">
<help_text/> <help_text/>
<zoom_level>7</zoom_level> <zoom_level>8</zoom_level>
<element> <element>
<id>UMLNote</id> <id>UMLNote</id>
<coordinates> <coordinates>
<x>21</x> <x>1016</x>
<y>427</y> <y>520</y>
<w>217</w> <w>248</w>
<h>182</h> <h>208</h>
</coordinates> </coordinates>
<panel_attributes>bg=#FAF8C8 <panel_attributes>bg=#FAF8C8
fontsize=12 fontsize=12
...@@ -35,10 +35,10 @@ Cardinalities: ...@@ -35,10 +35,10 @@ Cardinalities:
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>105</x> <x>1120</x>
<y>497</y> <y>600</y>
<w>77</w> <w>88</w>
<h>28</h> <h>32</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
fontsize=10 fontsize=10
...@@ -49,10 +49,10 @@ m1=0..* ...@@ -49,10 +49,10 @@ m1=0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>105</x> <x>1120</x>
<y>525</y> <y>632</y>
<w>77</w> <w>88</w>
<h>21</h> <h>24</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;- <panel_attributes>lt=&lt;&lt;-
fontsize=10</panel_attributes> fontsize=10</panel_attributes>
...@@ -61,10 +61,10 @@ fontsize=10</panel_attributes> ...@@ -61,10 +61,10 @@ fontsize=10</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>651</x> <x>1200</x>
<y>770</y> <y>888</y>
<w>105</w> <w>120</w>
<h>154</h> <h>176</h>
</coordinates> </coordinates>
<panel_attributes>&lt;&lt;enumeration&gt;&gt; <panel_attributes>&lt;&lt;enumeration&gt;&gt;
BasicType BasicType
...@@ -85,10 +85,10 @@ uri</panel_attributes> ...@@ -85,10 +85,10 @@ uri</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>357</x> <x>864</x>
<y>833</y> <y>960</y>
<w>98</w> <w>112</w>
<h>56</h> <h>64</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;. <panel_attributes>lt=&lt;&lt;.
m1= 0,1 m1= 0,1
...@@ -98,10 +98,10 @@ m1= 0,1 ...@@ -98,10 +98,10 @@ m1= 0,1
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>357</x> <x>864</x>
<y>777</y> <y>896</y>
<w>98</w> <w>112</w>
<h>56</h> <h>64</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;. <panel_attributes>lt=&lt;&lt;.
m1= 0,1 m1= 0,1
...@@ -111,10 +111,10 @@ m1= 0,1 ...@@ -111,10 +111,10 @@ m1= 0,1
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>777</y> <y>896</y>
<w>133</w> <w>152</w>
<h>84</h> <h>96</h>
</coordinates> </coordinates>
<panel_attributes>DataType <panel_attributes>DataType
-- --
...@@ -129,10 +129,10 @@ fg=blue</panel_attributes> ...@@ -129,10 +129,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>126</x> <x>600</x>
<y>735</y> <y>848</y>
<w>490</w> <w>560</w>
<h>91</h> <h>104</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;. <panel_attributes>lt=&lt;&lt;.
m2=1..* m2=1..*
...@@ -142,10 +142,10 @@ m2=1..* ...@@ -142,10 +142,10 @@ m2=1..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>126</x> <x>600</x>
<y>735</y> <y>848</y>
<w>490</w> <w>560</w>
<h>133</h> <h>152</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;. <panel_attributes>lt=&lt;&lt;.
m2=1 m2=1
...@@ -155,10 +155,10 @@ m2=1 ...@@ -155,10 +155,10 @@ m2=1
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>441</x> <x>960</x>
<y>861</y> <y>992</y>
<w>133</w> <w>152</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>SimpleType <panel_attributes>SimpleType
-- --
...@@ -169,10 +169,10 @@ fg=blue</panel_attributes> ...@@ -169,10 +169,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>567</x> <x>1104</x>
<y>875</y> <y>1008</y>
<w>98</w> <w>112</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;- <panel_attributes>lt=&lt;&lt;-
m1= 1 m1= 1
...@@ -182,10 +182,10 @@ m1= 1 ...@@ -182,10 +182,10 @@ m1= 1
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>441</x> <x>960</x>
<y>917</y> <y>1056</y>
<w>133</w> <w>152</w>
<h>70</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>Constraint <panel_attributes>Constraint
-- --
...@@ -199,10 +199,10 @@ fg=blue</panel_attributes> ...@@ -199,10 +199,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>147</x> <x>624</x>
<y>847</y> <y>976</y>
<w>308</w> <w>352</w>
<h>98</h> <h>112</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0..* m1=0..*
...@@ -212,10 +212,10 @@ m1=0..* ...@@ -212,10 +212,10 @@ m1=0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>567</x> <x>1104</x>
<y>917</y> <y>1056</y>
<w>147</w> <w>168</w>
<h>56</h> <h>64</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;- <panel_attributes>lt=&lt;&lt;-
m1=1 m1=1
...@@ -225,10 +225,10 @@ m1=1 ...@@ -225,10 +225,10 @@ m1=1
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>441</x> <x>960</x>
<y>777</y> <y>896</y>
<w>133</w> <w>152</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>StructType <panel_attributes>StructType
-- --
...@@ -239,10 +239,10 @@ fg=blue</panel_attributes> ...@@ -239,10 +239,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>441</x> <x>960</x>
<y>819</y> <y>944</y>
<w>133</w> <w>152</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>ArrayType <panel_attributes>ArrayType
-- --
...@@ -253,10 +253,10 @@ fg=blue</panel_attributes> ...@@ -253,10 +253,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>357</x> <x>864</x>
<y>812</y> <y>936</y>
<w>98</w> <w>112</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;. <panel_attributes>lt=&lt;&lt;.
m1= 0,1 m1= 0,1
...@@ -267,13 +267,13 @@ m1= 0,1 ...@@ -267,13 +267,13 @@ m1= 0,1
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>672</y> <y>776</y>
<w>735</w> <w>840</w>
<h>28</h> <h>32</h>
</coordinates> </coordinates>
<panel_attributes>halign=center <panel_attributes>halign=center
SDT 3.0 - DataType SDT 4.0 - DataType
fontsize=24 fontsize=24
bg=gray bg=gray
lw=0.1</panel_attributes> lw=0.1</panel_attributes>
...@@ -282,12 +282,12 @@ lw=0.1</panel_attributes> ...@@ -282,12 +282,12 @@ lw=0.1</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>7</y> <y>16</y>
<w>840</w> <w>960</w>
<h>28</h> <h>32</h>
</coordinates> </coordinates>
<panel_attributes>SDT 3.0 - Basic Elements <panel_attributes>SDT 4.0 - Basic Elements
halign=center halign=center
fontsize=24 fontsize=24
bg=gray bg=gray
...@@ -297,10 +297,10 @@ lw=0.1</panel_attributes> ...@@ -297,10 +297,10 @@ lw=0.1</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>259</x> <x>752</x>
<y>126</y> <y>152</y>
<w>154</w> <w>176</w>
<h>133</h> <h>152</h>
</coordinates> </coordinates>
<panel_attributes>ModuleClass <panel_attributes>ModuleClass
-- --
...@@ -321,10 +321,10 @@ fg=blue ...@@ -321,10 +321,10 @@ fg=blue
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>497</x> <x>1024</x>
<y>126</y> <y>152</y>
<w>154</w> <w>176</w>
<h>77</h> <h>88</h>
</coordinates> </coordinates>
<panel_attributes>Action <panel_attributes>Action
-- --
...@@ -339,10 +339,10 @@ fg=blue</panel_attributes> ...@@ -339,10 +339,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>742</x> <x>1304</x>
<y>189</y> <y>224</y>
<w>119</w> <w>136</w>
<h>56</h> <h>64</h>
</coordinates> </coordinates>
<panel_attributes>Arg <panel_attributes>Arg
-- --
...@@ -355,10 +355,10 @@ fg=blue</panel_attributes> ...@@ -355,10 +355,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>644</x> <x>1192</x>
<y>189</y> <y>224</y>
<w>112</w> <w>128</w>
<h>28</h> <h>32</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..*</panel_attributes> m1= 0..*</panel_attributes>
...@@ -367,17 +367,17 @@ m1= 0..*</panel_attributes> ...@@ -367,17 +367,17 @@ m1= 0..*</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>126</y> <y>152</y>
<w>154</w> <w>176</w>
<h>77</h> <h>88</h>
</coordinates> </coordinates>
<panel_attributes>Domain <panel_attributes>Domain
-- --
*@ id : ID* *@ id : ID*
/- Doc : Doc/ /- Doc : Doc/
/* imports/ /* imports/
/* Modules : ModuleClass/ /* ModuleClasses : ModuleClass/
/* Devices : Device/ /* Devices : Device/
fg=blue</panel_attributes> fg=blue</panel_attributes>
<additional_attributes/> <additional_attributes/>
...@@ -385,10 +385,10 @@ fg=blue</panel_attributes> ...@@ -385,10 +385,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>126</y> <y>152</y>
<w>105</w> <w>120</w>
<h>63</h> <h>72</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..*</panel_attributes> m1= 0..*</panel_attributes>
...@@ -397,27 +397,27 @@ m1= 0..*</panel_attributes> ...@@ -397,27 +397,27 @@ m1= 0..*</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>308</y> <y>360</y>
<w>154</w> <w>176</w>
<h>70</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>SubDevice <panel_attributes>SubDevice
-- --
*@ id : Name* *@ id : Name*
/- Doc : Doc/ /- Doc : Doc/
/* Properties : Property/ /* Properties : Property/
/* Modules : Module/ /* ModuleClasses : ModuleClass/
fg=blue</panel_attributes> fg=blue</panel_attributes>
<additional_attributes/> <additional_attributes/>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>182</y> <y>216</y>
<w>49</w> <w>56</w>
<h>63</h> <h>72</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0..* m1=0..*
...@@ -427,10 +427,10 @@ m1=0..* ...@@ -427,10 +427,10 @@ m1=0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>315</y> <y>368</y>
<w>105</w> <w>120</w>
<h>49</h> <h>56</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..*</panel_attributes> m1= 0..*</panel_attributes>
...@@ -439,10 +439,10 @@ m1= 0..*</panel_attributes> ...@@ -439,10 +439,10 @@ m1= 0..*</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>742</x> <x>1304</x>
<y>357</y> <y>416</y>
<w>119</w> <w>136</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>Doc <panel_attributes>Doc
-- --
...@@ -452,10 +452,10 @@ fg=blue</panel_attributes> ...@@ -452,10 +452,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>406</x> <x>920</x>
<y>126</y> <y>152</y>
<w>105</w> <w>120</w>
<h>42</h> <h>48</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..* m1= 0..*
...@@ -465,10 +465,10 @@ m1= 0..* ...@@ -465,10 +465,10 @@ m1= 0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>686</x> <x>1240</x>
<y>350</y> <y>408</y>
<w>70</w> <w>80</w>
<h>35</h> <h>40</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0,1 m1=0,1
...@@ -478,10 +478,10 @@ m1=0,1 ...@@ -478,10 +478,10 @@ m1=0,1
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>406</x> <x>920</x>
<y>161</y> <y>192</y>
<w>105</w> <w>120</w>
<h>84</h> <h>96</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..* m1= 0..*
...@@ -491,10 +491,10 @@ m1= 0..* ...@@ -491,10 +491,10 @@ m1= 0..*
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>497</x> <x>1024</x>
<y>217</y> <y>256</y>
<w>154</w> <w>176</w>
<h>98</h> <h>112</h>
</coordinates> </coordinates>
<panel_attributes>DataPoint <panel_attributes>DataPoint
-- --
...@@ -513,10 +513,10 @@ fg=blue ...@@ -513,10 +513,10 @@ fg=blue
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>497</x> <x>1024</x>
<y>329</y> <y>384</y>
<w>154</w> <w>176</w>
<h>63</h> <h>72</h>
</coordinates> </coordinates>
<panel_attributes>Event <panel_attributes>Event
-- --
...@@ -531,67 +531,43 @@ fg=blue</panel_attributes> ...@@ -531,67 +531,43 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>406</x> <x>920</x>
<y>231</y> <y>272</y>
<w>105</w> <w>120</w>
<h>126</h> <h>144</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..* m1= 0..*
</panel_attributes> </panel_attributes>
<additional_attributes>130.0;150.0;80.0;150.0;80.0;10.0;10.0;10.0</additional_attributes> <additional_attributes>130.0;150.0;80.0;150.0;80.0;10.0;10.0;10.0</additional_attributes>
</element> </element>
<element>
<id>UMLClass</id>
<coordinates>
<x>259</x>
<y>280</y>
<w>154</w>
<h>21</h>
</coordinates>
<panel_attributes>Module
fg=blue</panel_attributes>
<additional_attributes/>
</element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>280</y> <y>272</y>
<w>105</w> <w>120</w>
<h>98</h> <h>168</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
</panel_attributes> </panel_attributes>
<additional_attributes>130.0;10.0;80.0;10.0;80.0;120.0;10.0;120.0</additional_attributes> <additional_attributes>130.0;10.0;80.0;10.0;80.0;190.0;10.0;190.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>322</x>
<y>252</y>
<w>21</w>
<h>42</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-
</panel_attributes>
<additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
</element> </element>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>21</x> <x>480</x>
<y>217</y> <y>256</y>
<w>154</w> <w>176</w>
<h>77</h> <h>88</h>
</coordinates> </coordinates>
<panel_attributes>Device <panel_attributes>DeviceClass
-- --
*@ id : Name* *@ id : Name*
/- Doc : Doc/ /- Doc : Doc/
/* Properties : Property/ /* Properties : Property/
/* Modules : Module/ /* ModuleClasses : ModuleClass/
/* SubDevices : SubDevice/ /* SubDevices : SubDevice/
fg=blue</panel_attributes> fg=blue</panel_attributes>
<additional_attributes/> <additional_attributes/>
...@@ -599,10 +575,10 @@ fg=blue</panel_attributes> ...@@ -599,10 +575,10 @@ fg=blue</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>280</y> <y>328</y>
<w>49</w> <w>48</w>
<h>56</h> <h>64</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0..* m1=0..*
...@@ -612,23 +588,23 @@ m1=0..* ...@@ -612,23 +588,23 @@ m1=0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>252</y> <y>272</y>
<w>105</w> <w>120</w>
<h>56</h> <h>48</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1= 0..* m1= 0..*
</panel_attributes> </panel_attributes>
<additional_attributes>130.0;50.0;80.0;50.0;80.0;10.0;10.0;10.0</additional_attributes> <additional_attributes>130.0;10.0;80.0;10.0;80.0;40.0;10.0;40.0</additional_attributes>
</element> </element>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>168</x> <x>648</x>
<y>266</y> <y>312</y>
<w>105</w> <w>120</w>
<h>70</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;.</panel_attributes> <panel_attributes>lt=&lt;.</panel_attributes>
<additional_attributes>130.0;80.0;60.0;80.0;60.0;10.0;10.0;10.0</additional_attributes> <additional_attributes>130.0;80.0;60.0;80.0;60.0;10.0;10.0;10.0</additional_attributes>
...@@ -636,10 +612,10 @@ m1= 0..* ...@@ -636,10 +612,10 @@ m1= 0..*
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>259</x> <x>752</x>
<y>315</y> <y>368</y>
<w>154</w> <w>176</w>
<h>77</h> <h>88</h>
</coordinates> </coordinates>
<panel_attributes>Property <panel_attributes>Property
-- --
...@@ -655,10 +631,10 @@ transparency=80</panel_attributes> ...@@ -655,10 +631,10 @@ transparency=80</panel_attributes>
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>644</x> <x>1192</x>
<y>217</y> <y>256</y>
<w>56</w> <w>64</w>
<h>147</h> <h>168</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0..* m1=0..*
...@@ -668,10 +644,10 @@ m1=0..* ...@@ -668,10 +644,10 @@ m1=0..*
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>406</x> <x>920</x>
<y>245</y> <y>288</y>
<w>49</w> <w>56</w>
<h>98</h> <h>112</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;. <panel_attributes>lt=&lt;.
m1=0..*</panel_attributes> m1=0..*</panel_attributes>
...@@ -680,10 +656,10 @@ m1=0..*</panel_attributes> ...@@ -680,10 +656,10 @@ m1=0..*</panel_attributes>
<element> <element>
<id>UMLClass</id> <id>UMLClass</id>
<coordinates> <coordinates>
<x>231</x> <x>720</x>
<y>777</y> <y>896</y>
<w>133</w> <w>152</w>
<h>70</h> <h>80</h>
</coordinates> </coordinates>
<panel_attributes>&lt;&lt;enumeration&gt;&gt; <panel_attributes>&lt;&lt;enumeration&gt;&gt;
TypeChoice TypeChoice
...@@ -698,14 +674,90 @@ Array : ArrayType ...@@ -698,14 +674,90 @@ Array : ArrayType
<element> <element>
<id>Relation</id> <id>Relation</id>
<coordinates> <coordinates>
<x>147</x> <x>624</x>
<y>784</y> <y>904</y>
<w>98</w> <w>112</w>
<h>63</h> <h>72</h>
</coordinates> </coordinates>
<panel_attributes>lt=&lt;&lt;- <panel_attributes>lt=&lt;&lt;-
m1= 1 m1= 1
</panel_attributes> </panel_attributes>
<additional_attributes>120.0;10.0;80.0;10.0;80.0;70.0;10.0;70.0</additional_attributes> <additional_attributes>120.0;10.0;80.0;10.0;80.0;70.0;10.0;70.0</additional_attributes>
</element> </element>
<element>
<id>UMLClass</id>
<coordinates>
<x>184</x>
<y>256</y>
<w>240</w>
<h>200</h>
</coordinates>
<panel_attributes>Product
--
*@ id : Name*
/- Doc : Doc/
/* Properties : Property/
/* ModuleClasses : ModuleClass/
/* SubDevices : SubDevice/
/- DeviceClass/
/ @domain : IDRF/
/ @class : id /
/ -ImplementedProperties : Property /
/ -ImplementedModuleClasses : ModuleClass /
/- Extends/
/ @domain : IDRF/
/ @class : id /
fg=blue</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>416</x>
<y>248</y>
<w>80</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;.
m1=0..1
</panel_attributes>
<additional_attributes>80.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>336</x>
<y>120</y>
<w>432</w>
<h>152</h>
</coordinates>
<panel_attributes>lt=&lt;.
m1= 0..*</panel_attributes>
<additional_attributes>520.0;50.0;440.0;50.0;440.0;10.0;10.0;10.0;10.0;170.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>336</x>
<y>432</y>
<w>432</w>
<h>72</h>
</coordinates>
<panel_attributes>lt=&lt;.
m1= 0..*</panel_attributes>
<additional_attributes>520.0;10.0;430.0;10.0;430.0;70.0;10.0;70.0;10.0;30.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>416</x>
<y>352</y>
<w>80</w>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;.
m1=0..*
</panel_attributes>
<additional_attributes>80.0;20.0;10.0;20.0</additional_attributes>
</element>
</diagram> </diagram>
SDT/schema4.0/docs/images/Product.png

10.9 KiB

SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png

57.1 KiB | W: | H:

SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png

73.1 KiB | W: | H:

SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png
SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png
SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png
SDT/schema4.0/docs/images/SDT_UML_Basic_Elements.png
  • 2-up
  • Swipe
  • Onion skin
SDT/schema4.0/docs/images/SDT_simplified.png

36.2 KiB | W: | H:

SDT/schema4.0/docs/images/SDT_simplified.png

72.7 KiB | W: | H:

SDT/schema4.0/docs/images/SDT_simplified.png
SDT/schema4.0/docs/images/SDT_simplified.png
SDT/schema4.0/docs/images/SDT_simplified.png
SDT/schema4.0/docs/images/SDT_simplified.png
  • 2-up
  • Swipe
  • Onion skin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment