[modellib] Restructure and rename models to conform naming convention
Bug 546278
Change-Id: Ic0f4eee83307a7ae14eb0b6cfa3c85cd13d71a18
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/Attributes.room b/examples/org.eclipse.etrice.examples.c/model/Features/Attributes.room
index 7cde46e..00caa3a 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/Attributes.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/Attributes.room
@@ -1,10 +1,10 @@
RoomModel Attributes {
- import room.basic.types.boolean
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.uint32
- import room.basic.types.voidType
+ import etrice.api.types.boolean
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.uint32
+ import etrice.api.types.voidType
DataClass SimpleDataClass {
Attribute attribute1: int16
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/CommunicationAndExecutionTypes.room b/examples/org.eclipse.etrice.examples.c/model/Features/CommunicationAndExecutionTypes.room
index c050fff..153317e 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/CommunicationAndExecutionTypes.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/CommunicationAndExecutionTypes.room
@@ -1,8 +1,8 @@
RoomModel CommunicationAndExecutionTypes {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.uint32
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.uint32
DataClass AnotherSimpleDataClass {
Attribute attribute1: int16
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/DataTypes.room b/examples/org.eclipse.etrice.examples.c/model/Features/DataTypes.room
index 150eb54..0803222 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/DataTypes.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/DataTypes.room
@@ -1,11 +1,11 @@
RoomModel DataTypes {
// For PrimitiveType examples see Types.room
- import room.basic.types.boolean
- import room.basic.types.uint16
- import room.basic.types.uint32
- import room.basic.types.charPtr
- import room.basic.types.voidType
+ import etrice.api.types.boolean
+ import etrice.api.types.uint16
+ import etrice.api.types.uint32
+ import etrice.api.types.charPtr
+ import etrice.api.types.voidType
DataClass SimpleDataClass {
Attribute attribute1: uint16
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/Inheritance.room b/examples/org.eclipse.etrice.examples.c/model/Features/Inheritance.room
index 8690c44..769c0b4 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/Inheritance.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/Inheritance.room
@@ -1,6 +1,6 @@
RoomModel Inheritance {
- import room.basic.types.uint32
+ import etrice.api.types.uint32
ActorClass ActorSubClass extends ActorBaseClass {
// inherits all elements from super type hierarchy
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/Multiplicity.room b/examples/org.eclipse.etrice.examples.c/model/Features/Multiplicity.room
index 8219f79..e91c56b 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/Multiplicity.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/Multiplicity.room
@@ -1,7 +1,7 @@
RoomModel Multiplicity {
- import room.basic.types.char
- import room.basic.types.int16
+ import etrice.api.types.char
+ import etrice.api.types.int16
ActorClass ExampleMultiplicity {
Structure {
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/Operations.room b/examples/org.eclipse.etrice.examples.c/model/Features/Operations.room
index 860fded..065e24a 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/Operations.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/Operations.room
@@ -1,10 +1,10 @@
RoomModel Operations {
- import room.basic.types.boolean
- import room.basic.types.int32
- import room.basic.types.uint32
- import room.basic.types.charPtr
- import room.basic.types.voidType
+ import etrice.api.types.boolean
+ import etrice.api.types.int32
+ import etrice.api.types.uint32
+ import etrice.api.types.charPtr
+ import etrice.api.types.voidType
DataClass DataClassWithOperation {
Attribute attribute1: uint32
diff --git a/examples/org.eclipse.etrice.examples.c/model/Features/ProtocolClasses.room b/examples/org.eclipse.etrice.examples.c/model/Features/ProtocolClasses.room
index 2ab183e..7b89f1c 100644
--- a/examples/org.eclipse.etrice.examples.c/model/Features/ProtocolClasses.room
+++ b/examples/org.eclipse.etrice.examples.c/model/Features/ProtocolClasses.room
@@ -1,7 +1,7 @@
RoomModel ProtocolClasses {
- import room.basic.types.int16
- import room.basic.types.int32
+ import etrice.api.types.int16
+ import etrice.api.types.int32
// eventdriven ProtocolClass (asynchronous message passing, bidirectional)
eventdriven ProtocolClass ProtocolClassEvt {
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight/TrafficLight.room b/examples/org.eclipse.etrice.examples.c/model/TrafficLight/TrafficLight.room
index 05a2408..8423233 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight/TrafficLight.room
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight/TrafficLight.room
@@ -1,12 +1,12 @@
RoomModel TrafficLight {
- import room.basic.types.boolean
- import room.basic.types.char
- import room.basic.types.int32
- import room.basic.service.timing.PTimer
- import room.basic.service.tcp.PTcpPayload
- import room.basic.service.tcp.PTcpControl
- import room.basic.service.tcp.ATcpClient
+ import etrice.api.types.boolean
+ import etrice.api.types.char
+ import etrice.api.types.int32
+ import etrice.api.timer.PTimer
+ import etrice.api.tcp.PTcpPayload
+ import etrice.api.tcp.PTcpControl
+ import etrice.api.tcp.ATcpClient
ActorClass TestApplication ["The TestApplication contains the PedestrianTrafficLightController and its test harness."] {
Structure {
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/TrafficLight_step1.room b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/TrafficLight_step1.room
index bab0221..b4fd90d 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/TrafficLight_step1.room
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/TrafficLight_step1.room
@@ -1,7 +1,7 @@
RoomModel TrafficLight_step1 {
import TrafficLight.TestApplication
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.ATimerService
LogicalSystem TrafficLight {
SubSystemRef subSystem: TrafficLightStep1_Test
@@ -9,7 +9,7 @@
SubSystemClass TrafficLightStep1_Test {
ActorRef step1_TestApplication: TestApplication
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref step1_TestApplication satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/diagrams/TrafficLight_step1.TrafficLightStep1_Test.structure b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/diagrams/TrafficLight_step1.TrafficLightStep1_Test.structure
index bc8260e..45b9e1c 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/diagrams/TrafficLight_step1.TrafficLightStep1_Test.structure
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step1/diagrams/TrafficLight_step1.TrafficLightStep1_Test.structure
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep1_Test" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@connections.0/@link" verticalGridUnit="10" version="0.15.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep1_Test" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@children.0/@children.1/@children.3/@link //@connections.0/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
<businessObjects href="../TrafficLight_step1.room#SubSystemClass:TrafficLightStep1_Test"/>
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -256,20 +256,35 @@
<properties key="obj-type" value="port"/>
<properties key="inherited" value="false"/>
<properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="90">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="119">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$supervisionControl"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="supervisionControl"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="port"/>
+ <properties key="inherited" value="false"/>
+ <properties key="item-kind" value=""/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$timer"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="timer"/>
</children>
</children>
</children>
</children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.3/@anchors.0">
<properties key="obj-type" value="conn"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"/>
<link>
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/TrafficLight_step2.room b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/TrafficLight_step2.room
index 3261e37..385a094 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/TrafficLight_step2.room
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/TrafficLight_step2.room
@@ -1,14 +1,14 @@
RoomModel TrafficLight_step2 {
import TrafficLight.SingleTrafficLight
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.ATimerService
LogicalSystem TrafficLight {
SubSystemRef subSystem: TrafficLightStep2_SingleTrafficLight
}
SubSystemClass TrafficLightStep2_SingleTrafficLight {
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
ActorRef step2_SingleTrafficLight: SingleTrafficLight
LayerConnection ref step2_SingleTrafficLight satisfied_by timingService.timer
LogicalThread defaultThread
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/diagrams/TrafficLight_step2.TrafficLightStep2_SingleTrafficLight.structure b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/diagrams/TrafficLight_step2.TrafficLightStep2_SingleTrafficLight.structure
index 99a940c..911973c 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/diagrams/TrafficLight_step2.TrafficLightStep2_SingleTrafficLight.structure
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step2/diagrams/TrafficLight_step2.TrafficLightStep2_SingleTrafficLight.structure
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep2_SingleTrafficLight" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@connections.0/@link" verticalGridUnit="10" version="0.15.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep2_SingleTrafficLight" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@children.0/@children.1/@children.3/@link //@connections.0/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
<businessObjects href="../TrafficLight_step2.room#SubSystemClass:TrafficLightStep2_SingleTrafficLight"/>
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -256,17 +256,32 @@
<properties key="obj-type" value="port"/>
<properties key="inherited" value="false"/>
<properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="90">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$timer"/>
</link>
<anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="timer"/>
</children>
</children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="port"/>
+ <properties key="inherited" value="false"/>
+ <properties key="item-kind" value=""/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="119">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$supervisionControl"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="supervisionControl"/>
+ </children>
+ </children>
</children>
</children>
<connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.2/@anchors.0">
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/TrafficLight_step3.room b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/TrafficLight_step3.room
index 6a38264..87b5adc 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/TrafficLight_step3.room
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/TrafficLight_step3.room
@@ -1,14 +1,14 @@
RoomModel TrafficLight_step3 {
import TrafficLight.FlatReplication
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.ATimerService
LogicalSystem TrafficLight {
SubSystemRef subSystem: TrafficLightStep3_MultipleTrafficLights
}
SubSystemClass TrafficLightStep3_MultipleTrafficLights {
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
ActorRef step3_FlatReplication: FlatReplication
LayerConnection ref step3_FlatReplication satisfied_by timingService.timer
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/diagrams/TrafficLight_step3.TrafficLightStep3_MultipleTrafficLights.structure b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/diagrams/TrafficLight_step3.TrafficLightStep3_MultipleTrafficLights.structure
index 262ef7d..8015964 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/diagrams/TrafficLight_step3.TrafficLightStep3_MultipleTrafficLights.structure
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step3/diagrams/TrafficLight_step3.TrafficLightStep3_MultipleTrafficLights.structure
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep3_MultipleTrafficLights" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@connections.0/@link" verticalGridUnit="10" version="0.15.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep3_MultipleTrafficLights" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@children.0/@children.1/@children.3/@link //@connections.0/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
<businessObjects href="../TrafficLight_step3.room#SubSystemClass:TrafficLightStep3_MultipleTrafficLights"/>
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -256,20 +256,35 @@
<properties key="obj-type" value="port"/>
<properties key="inherited" value="false"/>
<properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="90">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="119">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$supervisionControl"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="supervisionControl"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="port"/>
+ <properties key="inherited" value="false"/>
+ <properties key="item-kind" value=""/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$timer"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="timer"/>
</children>
</children>
</children>
</children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.3/@anchors.0">
<properties key="obj-type" value="conn"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"/>
<link>
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/TrafficLight_step4.room b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/TrafficLight_step4.room
index 0b2dd28..9bed95d 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/TrafficLight_step4.room
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/TrafficLight_step4.room
@@ -1,14 +1,14 @@
RoomModel TrafficLight_step4 {
import TrafficLight.HierarchicalReplication
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.ATimerService
LogicalSystem TrafficLight {
SubSystemRef subSystem: TrafficLightStep4_MultipleTrafficLights
}
SubSystemClass TrafficLightStep4_MultipleTrafficLights {
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
ActorRef step4_HierarchicalReplication: HierarchicalReplication
LayerConnection ref step4_HierarchicalReplication satisfied_by timingService.timer
diff --git a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/diagrams/TrafficLight_step4.TrafficLightStep4_MultipleTrafficLights.structure b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/diagrams/TrafficLight_step4.TrafficLightStep4_MultipleTrafficLights.structure
index 2f2abfa..6a0a731 100644
--- a/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/diagrams/TrafficLight_step4.TrafficLightStep4_MultipleTrafficLights.structure
+++ b/examples/org.eclipse.etrice.examples.c/model/TrafficLight_step4/diagrams/TrafficLight_step4.TrafficLightStep4_MultipleTrafficLights.structure
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep4_MultipleTrafficLights" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.0/@children.2/@link //@connections.0/@link" verticalGridUnit="10" version="0.15.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of TrafficLightStep4_MultipleTrafficLights" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.0/@children.2/@link //@children.0/@children.0/@children.3/@link //@connections.0/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
<businessObjects href="../TrafficLight_step4.room#SubSystemClass:TrafficLightStep4_MultipleTrafficLights"/>
@@ -126,7 +126,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -136,13 +136,28 @@
<properties key="obj-type" value="port"/>
<properties key="inherited" value="false"/>
<properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="90">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="119">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$supervisionControl"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="supervisionControl"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="port"/>
+ <properties key="inherited" value="false"/>
+ <properties key="item-kind" value=""/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$timer"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="timer"/>
</children>
@@ -269,7 +284,7 @@
</children>
</children>
</children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.0/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="conn"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"/>
<link>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/DynAct1.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/DynAct1.room
index 82f9cd3..0da4fcb 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/DynAct1.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/DynAct1.room
@@ -1,6 +1,6 @@
RoomModel DynAct1 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/run_DynAct1.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/run_DynAct1.launch
index ac773d2..8c23771 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/run_DynAct1.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors1/run_DynAct1.launch
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.etrice.examples.java/src-gen/org/eclipse/etrice/examples/dynamicactors1/Node_nodeRef1_mainRunner.java"/>
+<listEntry value="/org.eclipse.etrice.examples.java/src-gen/DynAct1/Node_nodeRef1_mainRunner.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors1.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct1.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/DynAct2.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/DynAct2.room
index 9317f69..7432f74 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/DynAct2.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/DynAct2.room
@@ -1,7 +1,7 @@
RoomModel DynAct2 {
- import room.basic.types.int32
- import room.basic.types.string
+ import etrice.api.types.int32
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/run_DynAct2.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/run_DynAct2.launch
index c15f40f..6dfe859 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/run_DynAct2.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors2/run_DynAct2.launch
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.etrice.examples.java"/>
+<listEntry value="/org.eclipse.etrice.examples.java/src-gen/DynAct2/Node_nodeRef1_mainRunner.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
+<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors2.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct2.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/DynAct3.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/DynAct3.room
index a4f7434..bf2da73 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/DynAct3.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/DynAct3.room
@@ -1,6 +1,6 @@
RoomModel DynAct3 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/run_DynAct3.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/run_DynAct3.launch
index a555259..aff7a54 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/run_DynAct3.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors3/run_DynAct3.launch
@@ -7,6 +7,6 @@
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors3.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct3.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/DynAct4.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/DynAct4.room
index 3acbdca..670cc98 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/DynAct4.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/DynAct4.room
@@ -1,6 +1,6 @@
RoomModel DynAct4 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/run_DynAct4.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/run_DynAct4.launch
index 502caf0..695b938 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/run_DynAct4.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors4/run_DynAct4.launch
@@ -6,6 +6,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors4.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct4.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/DynAct5.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/DynAct5.room
index 0a009b1..a1e1681 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/DynAct5.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/DynAct5.room
@@ -1,6 +1,6 @@
RoomModel DynAct5 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/run_DynAct5.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/run_DynAct5.launch
index 58bb13b..5140633 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/run_DynAct5.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors5/run_DynAct5.launch
@@ -6,6 +6,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors5.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct5.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/DynAct6.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/DynAct6.room
index 61a0b1c..4730a28 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/DynAct6.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/DynAct6.room
@@ -1,6 +1,6 @@
RoomModel DynAct6 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/run_DynAct6.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/run_DynAct6.launch
index 307f7b4..c6e6aed 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/run_DynAct6.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors6/run_DynAct6.launch
@@ -7,6 +7,6 @@
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors6.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct6.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/DynAct7.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/DynAct7.room
index dff709d..5d5f6c6 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/DynAct7.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/DynAct7.room
@@ -1,6 +1,6 @@
RoomModel DynAct7 {
- import room.basic.types.string
+ import etrice.api.types.string
LogicalSystem LS {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/run_DynAct7.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/run_DynAct7.launch
index 9e6cb8f..05df0c8 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/run_DynAct7.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors7/run_DynAct7.launch
@@ -7,6 +7,6 @@
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors7.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct7.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/DynAct8.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/DynAct8.room
index e2905b6..5a42bb4 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/DynAct8.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/DynAct8.room
@@ -1,13 +1,13 @@
RoomModel DynAct8 {
- import room.basic.types.boolean
- import room.basic.types.char
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.types.string
+ import etrice.api.types.boolean
+ import etrice.api.types.char
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.types.string
LogicalSystem LogSys1 {
SubSystemRef main: Main
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/run_DynAct8.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/run_DynAct8.launch
index 0343bbf..83e4698 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/run_DynAct8.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors8/run_DynAct8.launch
@@ -6,6 +6,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors8.Node_nodeRef1_mainRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct8.Node_nodeRef1_mainRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/DynAct9.room b/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/DynAct9.room
index 38d06e4..5262e00 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/DynAct9.room
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/DynAct9.room
@@ -1,7 +1,7 @@
RoomModel DynAct9 {
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys1 {
SubSystemRef subSysRef1: SubSysClass1
@@ -9,7 +9,7 @@
SubSystemClass SubSysClass1 {
ActorRef actorRef1: PingPongTop
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref actorRef1 satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/run_DynAct9.launch b/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/run_DynAct9.launch
index 081d695..bf7c946 100644
--- a/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/run_DynAct9.launch
+++ b/examples/org.eclipse.etrice.examples.java/model/dynamicactors9/run_DynAct9.launch
@@ -6,6 +6,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.examples.dynamicactors9.Node_nodeRef1_subSysRef1Runner"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="DynAct9.Node_nodeRef1_subSysRef1Runner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.examples.java"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.examples.java/src/org/eclipse/etrice/examples/dynamicactors8/FilePersistor.java b/examples/org.eclipse.etrice.examples.java/src/DynAct8/FilePersistor.java
similarity index 97%
rename from examples/org.eclipse.etrice.examples.java/src/org/eclipse/etrice/examples/dynamicactors8/FilePersistor.java
rename to examples/org.eclipse.etrice.examples.java/src/DynAct8/FilePersistor.java
index 3c604ec..78bbfcc 100644
--- a/examples/org.eclipse.etrice.examples.java/src/org/eclipse/etrice/examples/dynamicactors8/FilePersistor.java
+++ b/examples/org.eclipse.etrice.examples.java/src/DynAct8/FilePersistor.java
@@ -1,4 +1,4 @@
-package org.eclipse.etrice.examples.dynamicactors8;
+package DynAct8;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
diff --git a/examples/org.eclipse.etrice.template.c/model/TemplateModel.room b/examples/org.eclipse.etrice.template.c/model/TemplateModel.room
index 06ae1ca..af294af 100644
--- a/examples/org.eclipse.etrice.template.c/model/TemplateModel.room
+++ b/examples/org.eclipse.etrice.template.c/model/TemplateModel.room
@@ -8,9 +8,9 @@
*/
RoomModel TemplateModel {
- import room.basic.types.*
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -18,7 +18,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.template.cpp/model/TemplateModel.room b/examples/org.eclipse.etrice.template.cpp/model/TemplateModel.room
index d1c4909..16ec7fd 100644
--- a/examples/org.eclipse.etrice.template.cpp/model/TemplateModel.room
+++ b/examples/org.eclipse.etrice.template.cpp/model/TemplateModel.room
@@ -8,9 +8,9 @@
*/
RoomModel TemplateModel {
- import room.basic.types.*
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -18,7 +18,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room b/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
index 0b7113c..4a31f1d 100644
--- a/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
+++ b/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
@@ -8,8 +8,8 @@
*/
RoomModel HelloWorld {
- import room.basic.types.*
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -17,7 +17,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.c/model/PingPong/PingPong.room b/examples/org.eclipse.etrice.tutorials.c/model/PingPong/PingPong.room
index cb03301..85a05a1 100644
--- a/examples/org.eclipse.etrice.tutorials.c/model/PingPong/PingPong.room
+++ b/examples/org.eclipse.etrice.tutorials.c/model/PingPong/PingPong.room
@@ -8,9 +8,9 @@
*/
RoomModel PingPong {
- import room.basic.types.*
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -18,7 +18,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.c/model/PingPong/diagrams/PingPongModel.SubSysClass.structure b/examples/org.eclipse.etrice.tutorials.c/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
index 6aa5231..f47f3ef 100644
--- a/examples/org.eclipse.etrice.tutorials.c/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
+++ b/examples/org.eclipse.etrice.tutorials.c/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of SubSysClass" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@connections.0/@link" verticalGridUnit="10" version="0.15.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of SubSysClass" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link //@children.0/@children.1/@children.2/@link //@children.0/@children.1/@children.3/@link //@connections.0/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
<businessObjects href="../PingPong.room#SubSystemClass:SubSysClass"/>
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -256,20 +256,35 @@
<properties key="obj-type" value="port"/>
<properties key="inherited" value="false"/>
<properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="90">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="119">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$supervisionControl"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="supervisionControl"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="port"/>
+ <properties key="inherited" value="false"/>
+ <properties key="item-kind" value=""/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../../../../../runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room#SPP:ATimerService$timer"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="15" y="6" font="//@fonts.0" value="timer"/>
</children>
</children>
</children>
</children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.0/@anchors.0" end="//@children.0/@children.1/@children.3/@anchors.0">
<properties key="obj-type" value="conn"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0"/>
<link>
diff --git a/examples/org.eclipse.etrice.tutorials.c/run_CurrentTutorial_WindowsMinGW.launch b/examples/org.eclipse.etrice.tutorials.c/run_CurrentTutorial_WindowsMinGW.launch
index bd5f0e6..ce67c60 100644
--- a/examples/org.eclipse.etrice.tutorials.c/run_CurrentTutorial_WindowsMinGW.launch
+++ b/examples/org.eclipse.etrice.tutorials.c/run_CurrentTutorial_WindowsMinGW.launch
@@ -13,4 +13,5 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
+<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
</launchConfiguration>
diff --git a/examples/org.eclipse.etrice.tutorials.cpp/model/HelloWorld/HelloWorld.room b/examples/org.eclipse.etrice.tutorials.cpp/model/HelloWorld/HelloWorld.room
index 2238b78..3187215 100644
--- a/examples/org.eclipse.etrice.tutorials.cpp/model/HelloWorld/HelloWorld.room
+++ b/examples/org.eclipse.etrice.tutorials.cpp/model/HelloWorld/HelloWorld.room
@@ -8,8 +8,8 @@
*/
RoomModel HelloWorld {
- import room.basic.types.*
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -17,7 +17,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/PingPong.room b/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/PingPong.room
index 3c4dd8c..f4f2ad3 100644
--- a/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/PingPong.room
+++ b/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/PingPong.room
@@ -8,9 +8,9 @@
*/
RoomModel PingPong {
- import room.basic.types.*
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -18,7 +18,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/diagrams/PingPongModel.SubSysClass.structure b/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
index c6fda12..1ff4cb3 100644
--- a/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
+++ b/examples/org.eclipse.etrice.tutorials.cpp/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -260,7 +260,7 @@
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../../../../org.eclipse.etrice.modellib.cpp/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="../../../../org.eclipse.etrice.modellib.cpp/model/TimingService.room#SPP:ATimerService$timer"/>
</link>
<anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
index 1149abb..6d53374 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
+++ b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
@@ -8,8 +8,8 @@
*/
RoomModel HelloWorld {
- import room.basic.types.*
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -17,7 +17,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/Mapping.etmap b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/Mapping.etmap
index 6e36b7f..420e4ce 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/Mapping.etmap
+++ b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/Mapping.etmap
Binary files differ
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/Mapping.etmap b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/Mapping.etmap
index 08d6d6d..6a6f938 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/Mapping.etmap
+++ b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/Mapping.etmap
Binary files differ
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/PingPong.room b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/PingPong.room
index 3ada391..2e7195d 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/PingPong.room
+++ b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/PingPong.room
@@ -8,9 +8,9 @@
*/
RoomModel PingPong {
- import room.basic.types.*
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.*
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem LogSys {
SubSystemRef subSystemRef: SubSysClass
@@ -18,7 +18,7 @@
SubSystemClass SubSysClass {
ActorRef topActor: TopActor
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref topActor satisfied_by timingService.timer
LogicalThread defaultThread
}
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/diagrams/PingPongModel.SubSysClass.structure b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
index 21a866c..397150b 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
+++ b/examples/org.eclipse.etrice.tutorials.java/model/PingPong/diagrams/PingPongModel.SubSysClass.structure
@@ -246,7 +246,7 @@
</anchors>
<children visible="true">
<properties key="actorref_graphic_element" value="name_shape"/>
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimingService)"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.3" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="180" height="80" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="timingService
(ATimerService)"/>
</children>
<children>
<properties key="actorref_graphic_element" value="size_shape"/>
@@ -260,7 +260,7 @@
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="18" height="18" x="21" y="21"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="file:/C:/Users/Juergen/workspaces/Eclipse-eTrice/eTrice-rt/org.eclipse.etrice.modellib.java/model/TimingService.room#SPP:ATimingService$timer"/>
+ <businessObjects href="file:/C:/Users/Juergen/workspaces/Eclipse-eTrice/eTrice-rt/org.eclipse.etrice.modellib.java/model/TimingService.room#SPP:ATimerService$timer"/>
</link>
<anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
diff --git a/runtime/org.eclipse.etrice.modellib.c/build.gradle b/runtime/org.eclipse.etrice.modellib.c/build.gradle
index 627b368..bc3d86c 100644
--- a/runtime/org.eclipse.etrice.modellib.c/build.gradle
+++ b/runtime/org.eclipse.etrice.modellib.c/build.gradle
@@ -7,9 +7,11 @@
}
def models = [
- 'model/PInterrupt.room',
- 'model/TcpService.room',
- 'model/TimingService.room',
+ 'model/etrice/api/interrupt.room',
+ 'model/etrice/api/logger.room',
+ 'model/etrice/api/tcp.room',
+ 'model/etrice/api/testcontrol.room',
+ 'model/etrice/api/timer.room',
'model/etrice/api/contracts/monitors.room'
]
diff --git a/runtime/org.eclipse.etrice.modellib.c/gen_modellib_c.launch b/runtime/org.eclipse.etrice.modellib.c/gen_modellib_c.launch
index cb2bf68..8f2dd9f 100644
--- a/runtime/org.eclipse.etrice.modellib.c/gen_modellib_c.launch
+++ b/runtime/org.eclipse.etrice.modellib.c/gen_modellib_c.launch
@@ -5,18 +5,27 @@
<booleanAttribute key="GenDocumentation" value="false"/>
<booleanAttribute key="GenInstanceDiagram" value="false"/>
<stringAttribute key="GenModelPath" value=""/>
+<booleanAttribute key="GenerateDepsWithinProject" value="true"/>
<booleanAttribute key="Lib" value="true"/>
<booleanAttribute key="MSC" value="true"/>
<stringAttribute key="MainMethodName" value="main"/>
<listAttribute key="ModelFiles">
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/TimingService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/TcpService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/Tests.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/PInterrupt.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/annotations.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/interrupt.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/language.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/logger.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/tcp.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/testcontrol.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/types.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/definitions.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/monitors.room}"/>
</listAttribute>
+<booleanAttribute key="OldStyleTransitionData" value="false"/>
<booleanAttribute key="OverrideDirectories" value="false"/>
<booleanAttribute key="SaveGenModel" value="false"/>
<booleanAttribute key="UseTranslation" value="true"/>
<booleanAttribute key="Verbose" value="false"/>
+<booleanAttribute key="cppFileExtensions" value="false"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
</launchConfiguration>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/Annotations.room b/runtime/org.eclipse.etrice.modellib.c/model/Annotations.room
deleted file mode 100644
index 064d7dd..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/Annotations.room
+++ /dev/null
@@ -1,52 +0,0 @@
-RoomModel room.basic.annotations {
- /**
- * BehaviorManual suppresses the generation of the implementation file (.c) for an ActorClass
- */
- AnnotationType BehaviorManual {
- target = ActorBehavior
- }
-
- /**
- * Marks elements as deprecated.
- */
- AnnotationType Deprecated {
- target = {
- ActorClass, DataClass, Message, Port, ProtocolClass, SubSystemClass
- }
- optional attribute error: ptBoolean
- optional attribute noGenerate: ptBoolean
- }
-
- /**
- * Special user code which is generated to the sub system instance.
- */
- AnnotationType SubSystemUserCode {
- target = ActorClass
- mandatory attribute userCode: ptCharacter
- }
-
- AnnotationType DataLogging {
- target = SubSystemClass
- mandatory attribute pathlist: ptCharacter
- }
-
- AnnotationType Gnuplot {
- target = SubSystemClass
- mandatory attribute format: ptCharacter
- mandatory attribute outputfile: ptCharacter
- mandatory attribute width: ptInteger
- mandatory attribute height: ptInteger
- optional attribute fontsize: ptInteger
- }
-
- AnnotationType GnuplotGraph {
- target = SubSystemClass
- mandatory attribute paths: ptCharacter
- optional attribute interval: ptInteger
- optional attribute xtics: ptReal
- optional attribute mxtics: ptInteger
- optional attribute ymin: ptReal
- optional attribute ymax: ptReal
- }
-
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/GenericPhysical.etphys b/runtime/org.eclipse.etrice.modellib.c/model/GenericPhysical.etphys
index 27f442b..25d6537 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/GenericPhysical.etphys
+++ b/runtime/org.eclipse.etrice.modellib.c/model/GenericPhysical.etphys
@@ -1,4 +1,4 @@
-PhysicalModel room.generic.physical {
+PhysicalModel GenericPhysical {
PhysicalSystem GenericPhysicalSystem {
NodeRef node : GenericNodeClass
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/PInterrupt.room b/runtime/org.eclipse.etrice.modellib.c/model/PInterrupt.room
deleted file mode 100644
index bc435f1..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/PInterrupt.room
+++ /dev/null
@@ -1,43 +0,0 @@
-RoomModel room.basic.service.pinterrupt {
-
- import room.basic.types.* from "Types.room"
-
- ProtocolClass PInterrupt {
- incoming {
- Message event()
- }
- conjugated PortClass
- {
- usercode '''#include "messaging/etMessageService.h"'''
- handle
- incoming event '''// the message should be sent via the fire operation !!'''
- Operation export(): PInterruptConjPort ref '''
- msg.address = self->peerAddress;
- msg.evtID = PInterrupt_IN_event;
- callback.func=(void (*)(void*))PInterruptConjPort_dispatch;
- callback.param=(void *)self;
- etMessageService_registerHighPrioFunc(self->msgService,&callback);
- return self;
- '''
- Operation dispatch() '''
- // this operation will be executed from the message service
- if (enable){
- enable=0;
- self->msgService->msgDispatcher(&msg);
- }
- '''
- Operation fire() '''
- // this method runs on interrupt level
- enable=1;
- etSema_wakeupFromISR(&self->msgService->executionSemaphore);
- '''
- Attribute msg: etMessage = "0"
- Attribute callback: etHighPrioFunc = "{0,0}"
- Attribute enable: uint8 = "0"
- }
- }
-
- ExternalType PInterruptConjPort -> "PInterruptConjPort"
- ExternalType etMessage -> "etMessage"
- ExternalType etHighPrioFunc -> "etHighPrioFunc"
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/Types.room b/runtime/org.eclipse.etrice.modellib.c/model/Types.room
deleted file mode 100644
index b38e046..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/Types.room
+++ /dev/null
@@ -1,27 +0,0 @@
-RoomModel room.basic.types {
-
- PrimitiveType boolean: ptBoolean -> 'bool' default 'false'
- PrimitiveType char: ptCharacter -> 'char' default '0'
- PrimitiveType int8: ptInteger -> 'int8' default '0'
- PrimitiveType int16: ptInteger -> 'int16' default '0'
- PrimitiveType int32: ptInteger -> 'int32' default '0'
- PrimitiveType int64: ptInteger -> 'int64' default '0'
-
- PrimitiveType uint8: ptInteger -> 'uint8' default '0'
- PrimitiveType uint16: ptInteger -> 'uint16' default '0'
- PrimitiveType uint32: ptInteger -> 'uint32' default '0'
- PrimitiveType uint64: ptInteger -> 'uint64' default '0'
-
- PrimitiveType float32:ptReal -> 'float32' default '0'
- PrimitiveType float64:ptReal -> 'float64' default '0'
-
-
- // TODO: define strings for C
- PrimitiveType charPtr:ptCharacter -> 'charPtr' default '0'
- PrimitiveType string:ptCharacter -> 'charPtr' default '0'
-
- // et-datatypes for the model
- PrimitiveType etAddressId:ptInteger -> 'etAddressId' default '0'
-
- ExternalType voidType -> 'void' default 'NULL'
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.structure b/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.structure
deleted file mode 100644
index 474e01e..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.structure
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATcpClient" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link //@children.0/@children.1/@link" verticalGridUnit="10" version="0.15.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" lineVisible="false" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="inherited" value="false"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="532">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpClient$payloadPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="payloadPort"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="inherited" value="false"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="265">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpClient$controlPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="controlPort"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.behavior b/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.behavior
deleted file mode 100644
index af5c48b..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.behavior
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATimingService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link" verticalGridUnit="10" version="0.11.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="136" height="90" x="332" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="76" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="51" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="38" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="38" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="38" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SimpleState:ATimingService$Operational"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2 //@connections.3" incomingConnections="//@connections.0 //@connections.1 //@connections.2 //@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="76" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Operational"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#InitialTransition:ATimingService$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <startTimeout:t..."/>
- </connectionDecorators>
- <bendpoints x="440" y="319"/>
- <bendpoints x="463" y="272"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr3"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <startTimer:tim..."/>
- </connectionDecorators>
- <bendpoints x="339" y="292"/>
- <bendpoints x="339" y="240"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr4"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr4: <kill:timer>"/>
- </connectionDecorators>
- <bendpoints x="617" y="292"/>
- <bendpoints x="563" y="235"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.structure b/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.structure
deleted file mode 100644
index 09c970f..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.timing.ATimingService.structure
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATimingService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link" verticalGridUnit="10" version="0.15.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="1" lineVisible="false" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="inherited" value="false"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="400">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SPP:ATimingService$timer"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="timer"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/annotations.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/annotations.room
new file mode 100644
index 0000000..9a6d80f
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/annotations.room
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.annotations {
+
+ /**
+ Meta information for elements that will be picked up by generators. Examples:
+ <code><pre>
+ @MetaInfo(key="x", text="...")
+
+ @MetaInfo(text="...")
+
+ @MetaInfo(multiKeyText="
+ 	 key1 : value
+ 	 key2 : Some text with
+ 		 new line
+ ")
+ </code></pre>
+ */
+ AnnotationType MetaInfo {
+ target = ActorClass // CaGe TestSuite and TestCase
+ optional attribute key: ptCharacter // key=text
+ optional attribute text: ptCharacter // text=text
+ optional attribute multiKeyText: ptCharacter // key:text pairs separated by ':'
+ }
+
+ /**
+ * BehaviorManual suppresses the generation of the implementation file (.c) for an ActorClass
+ */
+ AnnotationType BehaviorManual {
+ target = ActorBehavior
+ }
+
+ /**
+ * Special user code which is generated to the sub system instance.
+ */
+ AnnotationType SubSystemUserCode {
+ target = ActorClass
+ mandatory attribute userCode: ptCharacter
+ }
+
+ AnnotationType Deprecated {
+ target = {
+ ActorClass, DataClass, Message, Port, ProtocolClass, SubSystemClass, RoomModel
+ }
+ optional attribute error: ptBoolean
+ optional attribute noGenerate: ptBoolean
+ }
+
+ /**
+ * A SubSystemClass or ActorClass having this annotation is construed as an instance.<br>
+ * During generation the necessary instantiation (LogicalSystem, SubSystemRef etc.) and mapping will be created.
+ * <p>
+ * Must not have LogicalThreads. Globally only once allowed. Runtime execution on DefaultThread of given PhysicalSystem.
+ * </p>
+ */
+ AnnotationType TestInstance {
+ target = { SubSystemClass, ActorClass }
+ }
+
+ AnnotationType DataLogging {
+ target = SubSystemClass
+ mandatory attribute pathlist: ptCharacter
+ }
+
+ AnnotationType Gnuplot {
+ target = SubSystemClass
+ mandatory attribute format: ptCharacter
+ mandatory attribute outputfile: ptCharacter
+ mandatory attribute width: ptInteger
+ mandatory attribute height: ptInteger
+ optional attribute fontsize: ptInteger
+ }
+
+ AnnotationType GnuplotGraph {
+ target = SubSystemClass
+ mandatory attribute paths: ptCharacter
+ optional attribute interval: ptInteger
+ optional attribute xtics: ptReal
+ optional attribute mxtics: ptInteger
+ optional attribute ymin: ptReal
+ optional attribute ymax: ptReal
+ }
+
+}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/monitors.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/monitors.room
index 9fc767c..8759648 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/monitors.room
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/contracts/monitors.room
@@ -4,7 +4,8 @@
*/
RoomModel etrice.api.contracts.monitors {
- import room.basic.types.*
+ import etrice.api.types.boolean
+ import etrice.api.types.string
/** Protocol to get validation status and control monitor behavior. */
ProtocolClass PContractMonitorControl {
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.behavior b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpClient.behavior
similarity index 84%
rename from runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.behavior
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpClient.behavior
index ed1e478..c9615d1 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpClient.behavior
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpClient.behavior
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpClient" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@children.0/@children.5/@link //@connections.6/@link //@children.0/@children.6/@link //@connections.7/@link //@connections.8/@link" verticalGridUnit="10" version="0.11.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpClient" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@children.0/@children.6/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link //@connections.7/@link //@connections.8/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
+ <businessObjects href="../tcp.room#ActorClass:ATcpClient"/>
</link>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="sg"/>
@@ -11,40 +11,40 @@
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpClient$sg"/>
+ <businessObjects href="../tcp.room#StateGraph:ATcpClient$sg"/>
</link>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
+ <properties key="obj-type" value="ini"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpClient$sg"/>
+ <businessObjects href="../tcp.room#StateGraph:ATcpClient$sg"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="159" height="90" x="191" y="179">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="99" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="74" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="133" height="90" x="356" y="201">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="73" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="48" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="-3" y="-3"/>
<points x="-3" y="3"/>
<points x="-11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="3" y="-3"/>
<points x="3" y="3"/>
<points x="11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="-2" y="-3"/>
<points x="-2" y="3"/>
<points x="2" y="3"/>
@@ -53,29 +53,29 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$unconnected"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpClient$unconnected"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.2 //@connections.6 //@connections.4"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.2 //@connections.4 //@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="99" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="unconnected"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="73" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="unconnected"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="158" height="90" x="493" y="179">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="98" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="73" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="121" height="90" x="99" y="201">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="61" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="36" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="-3" y="-3"/>
<points x="-3" y="3"/>
<points x="-11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="3" y="-3"/>
<points x="3" y="3"/>
<points x="11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="49" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="-2" y="-3"/>
<points x="-2" y="3"/>
<points x="2" y="3"/>
@@ -84,42 +84,16 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$connected"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpClient$connected"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.5" incomingConnections="//@connections.5 //@connections.3"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.5" incomingConnections="//@connections.3 //@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="98" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="connected"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="428" y="376">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpClient$cp0"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3 //@connections.4" incomingConnections="//@connections.1"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="215" y="99">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpClient$cp1"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6 //@connections.7" incomingConnections="//@connections.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="61" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="connected"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="40" y="185">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="594" y="201">
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
@@ -141,19 +115,45 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$initError"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpClient$initError"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.8" incomingConnections="//@connections.7 //@connections.8"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.8" incomingConnections="//@connections.7 //@connections.8" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="initError"/>
</children>
</children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="cp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="253" y="358">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../tcp.room#ChoicePoint:ATcpClient$cp0"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3 //@connections.4" incomingConnections="//@connections.1"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="cp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="398" y="95">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../tcp.room#ChoicePoint:ATcpClient$cp1"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6 //@connections.7" incomingConnections="//@connections.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
+ </children>
+ </children>
</children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.5/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.6/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#InitialTransition:ATcpClient$initial"/>
+ <businessObjects href="../tcp.room#InitialTransition:ATcpClient$initial"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -166,11 +166,11 @@
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.5/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr0"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpClient$tr0"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -180,14 +180,15 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <connect:contro..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <connect:controlPort>"/>
</connectionDecorators>
+ <bendpoints x="438" y="372"/>
</connections>
<connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.2/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr1"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpClient$tr1"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -197,14 +198,14 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <disconnect:con..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <disconnect:controlPort>"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.3/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpClient$tr2"/>
+ <businessObjects href="../tcp.room#ContinuationTransition:ATcpClient$tr2"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -216,13 +217,12 @@
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: [else]"/>
</connectionDecorators>
- <bendpoints x="612" y="440"/>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.2/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpClient$tr7"/>
+ <businessObjects href="../tcp.room#CPBranchTransition:ATcpClient$tr7"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -234,13 +234,13 @@
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr7: [hasError()]"/>
</connectionDecorators>
- <bendpoints x="310" y="440"/>
+ <bendpoints x="351" y="329"/>
</connections>
<connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr3"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpClient$tr3"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -250,16 +250,15 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <dataPackage:pa..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <dataPackage:payloadPort>"/>
</connectionDecorators>
- <bendpoints x="713" y="378"/>
- <bendpoints x="713" y="317"/>
+ <bendpoints x="128" y="374"/>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.2/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpClient$tr4"/>
+ <businessObjects href="../tcp.room#ContinuationTransition:ATcpClient$tr4"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -272,11 +271,11 @@
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr4: [else]"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.6/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.4/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpClient$tr5"/>
+ <businessObjects href="../tcp.room#CPBranchTransition:ATcpClient$tr5"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -286,14 +285,14 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-98" y="-6" font="//@fonts.0" value="tr5: [hasError()]"/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr5: [hasError()]"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.6/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.4/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr6"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpClient$tr6"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -303,11 +302,9 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr6: <connect:contro..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr6: <connect:controlPort>"/>
</connectionDecorators>
- <bendpoints x="124" y="335"/>
- <bendpoints x="140" y="390"/>
- <bendpoints x="157" y="335"/>
+ <bendpoints x="694" y="406"/>
</connections>
<colors red="227" green="238" blue="249"/>
<colors red="255" green="255" blue="255"/>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpServer.behavior b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpServer.behavior
similarity index 83%
rename from runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpServer.behavior
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpServer.behavior
index c290c90..2b3b0e3 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/diagrams/room.basic.service.tcp.ATcpServer.behavior
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/diagrams/etrice.api.tcp.ATcpServer.behavior
@@ -1,50 +1,50 @@
<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpServer" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@children.0/@children.4/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@children.0/@children.5/@link //@children.0/@children.6/@link //@connections.6/@link //@connections.7/@link //@connections.8/@link" verticalGridUnit="10" version="0.11.0">
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpServer" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@children.0/@children.6/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link //@connections.7/@link //@connections.8/@link" verticalGridUnit="10" version="0.14.0">
<graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
<link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpServer"/>
+ <businessObjects href="../tcp.room#ActorClass:ATcpServer"/>
</link>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="44" y="35">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpServer$sg"/>
+ <businessObjects href="../tcp.room#StateGraph:ATcpServer$sg"/>
</link>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
+ <properties key="obj-type" value="ini"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpServer$sg"/>
+ <businessObjects href="../tcp.room#StateGraph:ATcpServer$sg"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="130" height="90" x="532" y="155">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="70" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="45" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="35" y="24">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="121" height="90" x="159" y="189">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="61" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="36" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="-3" y="-3"/>
<points x="-3" y="3"/>
<points x="-11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="35" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="3" y="-3"/>
<points x="3" y="3"/>
<points x="11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="35" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
<points x="-2" y="-3"/>
<points x="-2" y="3"/>
<points x="2" y="3"/>
@@ -53,29 +53,29 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$connected"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpServer$connected"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2" incomingConnections="//@connections.1 //@connections.4"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2" incomingConnections="//@connections.1 //@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="70" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="connected"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="61" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="connected"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="147" height="90" x="230" y="155">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="87" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="62" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="133" height="90" x="388" y="189">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="73" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="48" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="-3" y="-3"/>
<points x="-3" y="3"/>
<points x="-11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="3" y="-3"/>
<points x="3" y="3"/>
<points x="11" y="3"/>
</graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="43" y="24">
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="36" y="24">
<points x="-2" y="-3"/>
<points x="-2" y="3"/>
<points x="2" y="3"/>
@@ -84,29 +84,16 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$unconnected"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpServer$unconnected"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3" incomingConnections="//@connections.2 //@connections.6 //@connections.5"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3" incomingConnections="//@connections.2 //@connections.5 //@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="87" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="unconnected"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="451" y="308">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpServer$cp1"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4 //@connections.5" incomingConnections="//@connections.3"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="73" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="unconnected"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="70" y="155">
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="652" y="189">
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
<graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
@@ -128,20 +115,33 @@
</graphicsAlgorithmChildren>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$initError"/>
+ <businessObjects href="../tcp.room#SimpleState:ATcpServer$initError"/>
</link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.8" incomingConnections="//@connections.7 //@connections.8" referencedGraphicsAlgorithm="//@children.0/@children.5/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.8" incomingConnections="//@connections.7 //@connections.8" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
<children visible="true">
<graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="initError"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="248" y="95">
+ <properties key="obj-type" value="cp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="310" y="376">
<graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
</graphicsAlgorithm>
<link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpServer$cp0"/>
+ <businessObjects href="../tcp.room#ChoicePoint:ATcpServer$cp1"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4 //@connections.5" incomingConnections="//@connections.3"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="cp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="430" y="95">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../tcp.room#ChoicePoint:ATcpServer$cp0"/>
</link>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6 //@connections.7" incomingConnections="//@connections.0"/>
<children visible="true">
@@ -153,7 +153,7 @@
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#InitialTransition:ATcpServer$initial"/>
+ <businessObjects href="../tcp.room#InitialTransition:ATcpServer$initial"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -170,7 +170,7 @@
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr5"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpServer$tr5"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -180,17 +180,15 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr5: <dataPackage:pa..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr5: <dataPackage:payloadPort>"/>
</connectionDecorators>
- <bendpoints x="726" y="278"/>
- <bendpoints x="767" y="338"/>
- <bendpoints x="697" y="316"/>
+ <bendpoints x="133" y="316"/>
</connections>
<connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr6"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpServer$tr6"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -200,14 +198,14 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr6: <disconnect:con..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-59" y="1" font="//@fonts.0" value="tr6: <disconnect:controlPort>"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.5/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr7"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpServer$tr7"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -217,14 +215,15 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr7: <connect:contro..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr7: <connect:controlPort>"/>
</connectionDecorators>
+ <bendpoints x="416" y="331"/>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.2/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.2/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpServer$tr4"/>
+ <businessObjects href="../tcp.room#ContinuationTransition:ATcpServer$tr4"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -236,13 +235,12 @@
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr4: [else]"/>
</connectionDecorators>
- <bendpoints x="641" y="368"/>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.3/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpServer$tr8"/>
+ <businessObjects href="../tcp.room#CPBranchTransition:ATcpServer$tr8"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -252,15 +250,15 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="29" y="14" font="//@fonts.0" value="tr8: [hasError()]"/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr8: [hasError()]"/>
</connectionDecorators>
- <bendpoints x="347" y="368"/>
+ <bendpoints x="494" y="387"/>
</connections>
<connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.3/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpServer$tr0"/>
+ <businessObjects href="../tcp.room#ContinuationTransition:ATcpServer$tr0"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -273,11 +271,11 @@
<graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: [else]"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.5/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.4/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpServer$tr1"/>
+ <businessObjects href="../tcp.room#CPBranchTransition:ATcpServer$tr1"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -287,14 +285,14 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-100" y="-2" font="//@fonts.0" value="tr1: [hasError()]"/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: [hasError()]"/>
</connectionDecorators>
</connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.5/@anchors.0">
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.4/@anchors.0">
<properties key="obj-type" value="trans"/>
<graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
<link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr2"/>
+ <businessObjects href="../tcp.room#TriggeredTransition:ATcpServer$tr2"/>
</link>
<connectionDecorators visible="true" locationRelative="true" location="1.0">
<graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
@@ -304,10 +302,9 @@
</graphicsAlgorithm>
</connectionDecorators>
<connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: <connect:contro..."/>
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: <connect:controlPort>"/>
</connectionDecorators>
- <bendpoints x="174" y="355"/>
- <bendpoints x="143" y="301"/>
+ <bendpoints x="752" y="394"/>
</connections>
<colors red="227" green="238" blue="249"/>
<colors red="255" green="255" blue="255"/>
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/interrupt.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/interrupt.room
new file mode 100644
index 0000000..6458ddb
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/interrupt.room
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.interrupt {
+
+ import etrice.api.types.uint8
+
+ ExternalType PInterruptConjPort -> "PInterruptConjPort"
+ ExternalType etMessage -> "etMessage"
+ ExternalType etHighPrioFunc -> "etHighPrioFunc"
+
+ ProtocolClass PInterrupt {
+ incoming {
+ Message event()
+ }
+ conjugated PortClass
+ {
+ usercode '''#include "messaging/etMessageService.h"'''
+ handle incoming event '''// the message should be sent via the fire operation !!'''
+ Operation export(): PInterruptConjPort ref '''
+ msg.address = self->peerAddress;
+ msg.evtID = PInterrupt_IN_event;
+ callback.func=(void (*)(void*))PInterruptConjPort_dispatch;
+ callback.param=(void *)self;
+ etMessageService_registerHighPrioFunc(self->msgService,&callback);
+ return self;'''
+ Operation dispatch() '''
+ // this operation will be executed from the message service
+ if (enable){
+ enable=0;
+ self->msgService->msgDispatcher(&msg);
+ }'''
+ Operation fire() '''
+ // this method runs on interrupt level
+ enable=1;
+ etSema_wakeupFromISR(&self->msgService->executionSemaphore);'''
+ Attribute msg: etMessage = "{0}"
+ Attribute callback: etHighPrioFunc = "{0,0}"
+ Attribute enable: uint8 = "0"
+ }
+ }
+}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/Language.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/language.room
similarity index 67%
rename from runtime/org.eclipse.etrice.modellib.c/model/Language.room
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/language.room
index 7de780b..3b67525 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/Language.room
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/language.room
@@ -1,3 +1,3 @@
-RoomModel room.basic.language {
+RoomModel etrice.api.language {
PrimitiveType languageIndicator: ptInteger -> 'int8' default '2'
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/logger.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/logger.room
new file mode 100644
index 0000000..2ba153e
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/logger.room
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.logger {
+
+ import etrice.api.types.voidType
+ import etrice.api.types.char
+
+ /** <!-- asciidoc -->
+ * Protocol for logging text messages.
+ *
+ * This protocol is a service and can be accessed via an SAP. It provides PortOperations to log (formatted) messages.
+ * [source, room]
+ * ----
+ * logger.log("message");
+ * logger.logF("counter %d", 100);
+ * ----
+ */
+ ProtocolClass PLogger {
+ usercode3 '''
+ #include <stdarg.h>
+ extern void PLogging_internal_logF();
+ '''
+ conjugated PortClass
+ {
+
+ /**
+ * Logs a simple message. Appends line separator.
+ */
+ Operation log(message: char ref) '''
+ logF(message, NULL);
+ '''
+
+ /**
+ * Logs a formatted message with arguments. Appends line separator.
+ */
+ Operation logF(format: char ref, args: voidType varargs) '''
+ va_list argptr;
+ va_start(argptr, format);
+ // TODO call etLogger
+ PLogger_internal_logF(format, argptr);
+ va_end(argptr);
+ '''
+ }
+ }
+}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/TcpService.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/tcp.room
similarity index 88%
rename from runtime/org.eclipse.etrice.modellib.c/model/TcpService.room
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/tcp.room
index bc76416..72ac678 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/TcpService.room
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/tcp.room
@@ -1,6 +1,75 @@
-RoomModel room.basic.service.tcp {
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.tcp {
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.boolean
+ import etrice.api.types.int8
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.types.charPtr
+
+ ExternalType etSocketServerData -> "etSocketServerData"
+ ExternalType etSocketConnectionData -> "etSocketConnectionData"
+
+ DataClass DTcpControl {
+ Attribute IPAddr: string
+ Attribute TcpPort: int32
+ }
+
+ DataClass DTcpPayload {
+ Attribute connectionId: int32
+ Attribute length: int32
+ Attribute data [32]: int8
+
+ Operation getMaxLength(): int32 '''return 32;'''
+
+ Operation setAsString(value: charPtr) '''
+ /* used macros: data, length */
+ int valLength = (strlen(value)+1 > 32)? 32 : strlen(value) + 1;
+ memcpy(data, value, valLength);
+ data[31] = '\0';
+ length = valLength;'''
+
+ Operation setData(value: int8 ref, size: int32) '''
+ /* used macros: data, length */
+ strncpy(data, value, ((size>32)?32:size));
+ length = size;'''
+
+ Operation getAsString(): charPtr '''
+ /* used macros: data */
+ data[31] = '\0';
+ return data;'''
+ }
+
+ ProtocolClass PTcpControl {
+ incoming {
+ Message connect(DTcpControl)
+ Message disconnect()
+ }
+ outgoing {
+ Message connected()
+ Message disconnected()
+ Message error()
+ }
+ }
+
+ ProtocolClass PTcpPayload {
+ incoming {
+ Message dataPackage(DTcpPayload)
+ }
+ outgoing {
+ Message dataPackage(DTcpPayload)
+ }
+ }
ActorClass ATcpServer {
Interface {
@@ -21,8 +90,7 @@
DTcpPayload_setData(&payloadRecvBuffer, data, size);
payloadPort_dataPackage(&payloadRecvBuffer);
return ETSOCKET_OK;
- }
- '''
+ }'''
external Port controlPort
external Port payloadPort
Attribute lastError: int32
@@ -35,12 +103,10 @@
server = etCreateSocketServerData();
server->receiver = socketReceiver;
server->bufferProvider = bufferProvider;
- server->userData = self;
- '''
+ server->userData = self;'''
dtor '''
etCleanupSockets();
- etFreeSocketServerData(server);
- '''
+ etFreeSocketServerData(server);'''
// Operation stopUser() {
// "/* stop user: close socket */"
@@ -57,8 +123,7 @@
/* send payload to connection */
setErrorCode(etWriteServerSocket(server, transitionData->connectionId, transitionData->length, transitionData->data));
if(hasError())
- controlPort.error();
- '''
+ controlPort.error();'''
}
Transition tr6: connected -> unconnected {
triggers {
@@ -69,8 +134,7 @@
etCloseAllServerSockets(server);
etStopSocketServer(server);
- controlPort.disconnected();
- '''
+ controlPort.disconnected();'''
}
Transition tr7: unconnected -> cp cp1 {
triggers {
@@ -78,8 +142,7 @@
}
action '''
/* start accept thread */
- setErrorCode(etStartListening(server, transitionData->TcpPort));
- '''
+ setErrorCode(etStartListening(server, transitionData->TcpPort));'''
}
Transition tr4: cp cp1 -> connected {
action '''controlPort.connected();'''
@@ -208,58 +271,4 @@
}
}
}
-
- ProtocolClass PTcpControl {
- incoming {
- Message connect(DTcpControl)
- Message disconnect()
- }
- outgoing {
- Message connected()
- Message disconnected()
- Message error()
- }
- }
-
- ProtocolClass PTcpPayload {
- incoming {
- Message dataPackage(DTcpPayload)
- }
- outgoing {
- Message dataPackage(DTcpPayload)
- }
- }
-
- DataClass DTcpControl {
- Attribute IPAddr: string
- Attribute TcpPort: int32
- }
-
- DataClass DTcpPayload {
- Attribute connectionId: int32
- Attribute length: int32
- Attribute data [32]: int8
-
- Operation getMaxLength(): int32 '''return 32;'''
-
- Operation setAsString(value: charPtr) '''
- /* used macros: data, length */
- int valLength = (strlen(value)+1 > 32)? 32 : strlen(value) + 1;
- memcpy(data, value, valLength);
- data[31] = '\0';
- length = valLength;'''
-
- Operation setData(value: int8 ref, size: int32) '''
- /* used macros: data, length */
- strncpy(data, value, ((size>32)?32:size));
- length = size;'''
-
- Operation getAsString(): charPtr '''
- /* used macros: data */
- data[31] = '\0';
- return data;'''
- }
-
- ExternalType etSocketServerData -> "etSocketServerData"
- ExternalType etSocketConnectionData -> "etSocketConnectionData"
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/Tests.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/testcontrol.room
similarity index 74%
rename from runtime/org.eclipse.etrice.modellib.c/model/Tests.room
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/testcontrol.room
index b503022..488e10c 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/Tests.room
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/testcontrol.room
@@ -1,23 +1,48 @@
-RoomModel room.basic.test {
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.testcontrol {
- import room.basic.service.timing.* from "TimingService.room"
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.boolean
+ import etrice.api.types.int16
/**
- * A SubSystemClass or ActorClass having this annotation is construed as an instance.<br>
- * During generation the necessary instantiation (LogicalSystem, SubSystemRef etc.) and mapping will be created.
- * <p>
- * Must not have LogicalThreads. Globally only once allowed. Runtime execution on DefaultThread of given PhysicalSystem.
- * </p>
+ * Simple protocol to start or stop tests.
*/
- AnnotationType TestInstance {
- target = { SubSystemClass, ActorClass
+ ProtocolClass PTestControl {
+ incoming {
+
+ /**
+ * Start test execution.
+ */
+ Message start()
+
+ /**
+ * Abort test execution.
+ */
+ Message abort()
}
+ outgoing {
+
+ /**
+ * Reply after test execution is done. Status is true if all tests have passed.
+ */
+ Message done(boolean)
+ }
+// semantics {
+// in:start -> out:done
+// in:abort -> out:done
+// }
}
- /**
- * SequentialTestExecutor that can started/aborted via exeControl.
- */
ActorClass ControllableSequentialTestExecutor {
Interface {
@@ -66,7 +91,7 @@
<done: control>
}
action '''
- overallSuccess &= success;
+ overallSuccess &= transitionData;
current++;'''
}
Transition tr3: cp cp0 -> idle {
@@ -103,9 +128,7 @@
conjugated Port control[*]: PTestControl
}
Structure {
- usercode3 {
- "#include \"etUnit/etUnit.h\""
- }
+ usercode3 '''#include "etUnit/etUnit.h"'''
external Port control
Attribute current: int16
}
@@ -137,29 +160,4 @@
}
}
- ProtocolClass PTestControl {
- incoming {
-
- /**
- * Start test execution.
- */
- Message start()
-
- /**
- * Abort test execution.
- */
- Message abort()
- }
- outgoing {
-
- /**
- * Test execution finished or aborted.
- */
- Message done(success: boolean)
- }
-// semantics {
-// in:start -> out:done
-// in:abort -> out:done
-// }
- }
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/TimingService.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room
similarity index 61%
rename from runtime/org.eclipse.etrice.modellib.c/model/TimingService.room
rename to runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room
index 0ab7293..b36c042 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/TimingService.room
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/timer.room
@@ -1,28 +1,98 @@
-RoomModel room.basic.service.timing {
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.timer {
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.boolean
+ import etrice.api.types.int8
+ import etrice.api.types.int32
+ import etrice.api.types.uint32
- async ActorClass ATimingService {
+ ProtocolClass PTimer {
+ usercode3 '''
+ #define ET_TIMER_RUNNING 0x01
+ #define ET_TIMER_PERIODIC 0x02'''
+ incoming {
+ Message startTimer(uint32)
+ Message startTimeout(uint32)
+ Message kill()
+ }
+ outgoing {
+ Message timeout()
+ }
+ conjugated PortClass
+ {
+ handle incoming startTimer '''
+ if (status==0){
+ status=ET_TIMER_RUNNING | ET_TIMER_PERIODIC;
+ etPort_sendMessage(self, PTimer_IN_startTimer, sizeof(int32), &data__et);
+ }'''
+ handle incoming startTimeout '''
+ if (status==0){
+ status = ET_TIMER_RUNNING;
+ etPort_sendMessage(self, PTimer_IN_startTimeout, sizeof(int32), &data__et);
+ }'''
+ handle outgoing timeout '''
+ /* TODO: clear active bit in case of single shot timer */
+ if (status!=0){
+ if (status==ET_TIMER_RUNNING){
+ /* single shot timer */
+ status=0;
+ }
+ /* msg to fsm */
+ (*receiveMessageFunc)(actor, self, msg);
+ }'''
+ handle incoming kill '''
+ if (status!=0){
+ status=0;
+ etPort_sendMessage(self, PTimer_IN_kill, 0,NULL);
+ }'''
+ Attribute status: int8 = "0"
+ }
+ }
+
+ ProtocolClass PTimerSupervisionControl {
+ incoming {
+ Message restTimerDeviationHighWaterMark()
+ Message getTimerDeviationHighWaterMark()
+ }
+ outgoing {
+ Message timerDeviationHighWaterMark(uint32)
+ }
+ }
+
+ async ActorClass ATimerService {
Interface {
SPP timer: PTimer
+ SPP supervisionControl: PTimerSupervisionControl
}
Structure {
usercode1 '''
#include "osal/etTime.h"
- #define ET_NB_OF_TCBS 30
+ #define ET_NB_OF_TCBS 70
typedef struct etTCB etTimerControlBlock;
struct etTCB {
etTime expTime;
etTime pTime;
int32 portIdx;
etTimerControlBlock* next;
- };'''
- usercode2 '''/*uc2*/'''
- usercode3 '''/*uc3*/'''
+ };
+ '''
ServiceImplementation of timer
- Attribute tcbs [30]: tcb
+ ServiceImplementation of supervisionControl
+
+ Attribute tcbs [70]: tcb
Attribute usedTcbsRoot: tcb ref
Attribute freeTcbsRoot: tcb ref
+ Attribute timerDeviationHighWaterMark: targetTime
}
Behavior {
Operation getTcb(): tcb ref '''
@@ -95,12 +165,29 @@
return;
}
}'''
+
Operation isTimeGreater(t1: targetTime ref, t2: targetTime ref): boolean '''
if (t1->sec > t2->sec) return ET_TRUE;
if (t1->sec < t2->sec) return ET_FALSE;
if (t1->nSec > t2->nSec) return ET_TRUE;
return ET_FALSE;'''
+ Operation subTime(t1: targetTime ref, t2: targetTime ref) '''
+ t1->sec -= t2->sec;
+
+ while(t2->nSec > t1->nSec){
+ t1->sec--;
+ t1->nSec += 1000000000L;
+ }
+
+ t1->nSec -= t2->nSec;
+
+ while(t1->nSec >= 1000000000L){
+ t1->sec++;
+ t1->nSec-=1000000000L;
+ }
+ '''
+
Operation addTime(t1: targetTime ref, t2: targetTime ref) '''
t1->sec += t2->sec;
t1->nSec += t2->nSec;
@@ -126,25 +213,29 @@
freeTcbsRoot=&tcbs[0];
tcbs[ET_NB_OF_TCBS-1].next=0;
for (i=0;i<ET_NB_OF_TCBS-1;i++){
- tcbs[i].next=&tcbs[i+1];
- }'''
+ tcbs[i].next=&tcbs[i+1];
+ }
+
+ timerDeviationHighWaterMark.sec = 0;
+ timerDeviationHighWaterMark.nSec = 0;
+ '''
}
Transition tr1: Operational -> Operational {
triggers {
<startTimeout: timer>
}
action '''
- etTimerControlBlock* transitionDatar = getTcb();
+ etTimerControlBlock* timer = getTcb();
etTime t;
- if (transitionDatar!= 0){
+ if (timer!= 0){
t.sec=transitionData/1000;
t.nSec=(transitionData%1000)*1000000L;
- transitionDatar->pTime.sec = 0;
- transitionDatar->pTime.nSec = 0;
- transitionDatar->portIdx=((etReplSubPort*)ifitem)->index;
- getTimeFromTarget(&(transitionDatar->expTime));
- addTime(&(transitionDatar->expTime),&t);
- putTcbToUsedList(transitionDatar);
+ timer->pTime.sec = 0;
+ timer->pTime.nSec = 0;
+ timer->portIdx=((etReplSubPort*)ifitem)->index;
+ getTimeFromTarget(&(timer->expTime));
+ addTime(&(timer->expTime),&t);
+ putTcbToUsedList(timer);
}'''
}
Transition tr3: Operational -> Operational {
@@ -152,16 +243,16 @@
<startTimer: timer>
}
action '''
- etTimerControlBlock* transitionDatar = getTcb();
+ etTimerControlBlock* timer = getTcb();
etTime t;
- if (transitionDatar!= 0){
+ if (timer!= 0){
t.sec=transitionData/1000;
t.nSec=(transitionData%1000)*1000000L;
- transitionDatar->pTime = t;
- transitionDatar->portIdx=((etReplSubPort*)ifitem)->index;
- getTimeFromTarget(&(transitionDatar->expTime));
- addTime(&(transitionDatar->expTime),&t);
- putTcbToUsedList(transitionDatar);
+ timer->pTime = t;
+ timer->portIdx=((etReplSubPort*)ifitem)->index;
+ getTimeFromTarget(&(timer->expTime));
+ addTime(&(timer->expTime),&t);
+ putTcbToUsedList(timer);
}'''
}
Transition tr4: Operational -> Operational {
@@ -180,6 +271,11 @@
getTimeFromTarget(&t);
while (usedTcbsRoot !=0 ){
if (isTimeGreater(&t,&(usedTcbsRoot->expTime))){
+ // maintain deviation hig water mark
+ subTime(&t, &(usedTcbsRoot->expTime));
+ if (isTimeGreater(&t,&timerDeviationHighWaterMark)){
+ timerDeviationHighWaterMark = t;
+ }
timer[usedTcbsRoot->portIdx].timeout();
temp=usedTcbsRoot;
usedTcbsRoot=usedTcbsRoot->next;
@@ -196,60 +292,37 @@
}
}'''
}
+ Transition tr2: Operational -> Operational {
+ triggers {
+ <getTimerDeviationHighWaterMark: supervisionControl>
+ }
+ action '''
+ uint32 dt;
+
+ dt = timerDeviationHighWaterMark.nSec / 1000 + timerDeviationHighWaterMark.sec * 1000000;
+ supervisionControl[((etReplSubPort*)ifitem)->index].timerDeviationHighWaterMark(dt);'''
+ }
+ Transition tr5: Operational -> Operational {
+ triggers {
+ <restTimerDeviationHighWaterMark: supervisionControl>
+ }
+ action '''
+ timerDeviationHighWaterMark.sec = 0;
+ timerDeviationHighWaterMark.nSec = 0;'''
+ }
}
}
}
- /*
- * Protocol for periodic timers and single shot timeouts
- */
- ProtocolClass PTimer {
- usercode1 '''
- #define ET_TIMER_RUNNING 0x01
- #define ET_TIMER_PERIODIC 0x02'''
- usercode2 '''/*uc2*/'''
- incoming {
- /* starts a periodic timer (time in milliseconds) */
- Message startTimer(uint32)
- /* starts a single shot timeout (time in milliseconds) */
- Message startTimeout(uint32)
- /* kills single shot timeouts and periodic timers */
- Message kill()
- }
- outgoing {
- /* fires when timeout or timer has expired */
- Message timeout()
- }
- conjugated PortClass
- {
- handle incoming startTimer '''
- if (status==0){
- status=ET_TIMER_RUNNING | ET_TIMER_PERIODIC;
- etPort_sendMessage(self, PTimer_IN_startTimer, sizeof(int32), &data__et);
- }'''
- handle incoming startTimeout '''
- if (status==0){
- status = ET_TIMER_RUNNING;
- etPort_sendMessage(self, PTimer_IN_startTimeout, sizeof(int32), &data__et);
- }'''
- handle outgoing timeout '''
- /* TODO: clear active bit in case of single shot timer */
- if (status!=0){
- if (status==ET_TIMER_RUNNING){
- /* single shot timer */
- status=0;
- }
- /* msg to fsm */
- (*receiveMessageFunc)(actor, self, msg);
- }'''
- handle incoming kill '''
- if (status!=0){
- status=0;
- etPort_sendMessage(self, PTimer_IN_kill, 0,NULL);
- }'''
- Attribute status: int8 = "0"
- }
- }
+// ProtocolClass PTimerSupervisionControl {
+// incoming {
+// Message startSupervision(uint32) ["send the time threshold in us! "]
+// Message stopSupervision()
+// }
+// outgoing {
+// Message timerAccuracyFault(uint32) ["will be sent when the threshold is reached for one single timer. The parameter can be checked by the receiver to verify that it is the own limit"]
+// }
+// }
ExternalType tcb -> "etTimerControlBlock" default "{{0,0},{0,0},0,NULL}"
ExternalType targetTime -> "etTime" default "{0,0}"
-}
+}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/types.room b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/types.room
new file mode 100644
index 0000000..5521ad2
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/model/etrice/api/types.room
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ *******************************************************************************/
+
+RoomModel etrice.api.types {
+
+ PrimitiveType boolean: ptBoolean -> 'bool' default 'false'
+ PrimitiveType char: ptCharacter -> 'char' default '0'
+ PrimitiveType int8: ptInteger -> 'int8' default '0'
+ PrimitiveType int16: ptInteger -> 'int16' default '0'
+ PrimitiveType int32: ptInteger -> 'int32' default '0'
+ PrimitiveType int64: ptInteger -> 'int64' default '0'
+
+ PrimitiveType uint8: ptInteger -> 'uint8' default '0'
+ PrimitiveType uint16: ptInteger -> 'uint16' default '0'
+ PrimitiveType uint32: ptInteger -> 'uint32' default '0'
+ PrimitiveType uint64: ptInteger -> 'uint64' default '0'
+
+ PrimitiveType float32: ptReal -> 'float32' default '0'
+ PrimitiveType float64: ptReal -> 'float64' default '0'
+
+ // TODO: define strings for C
+ PrimitiveType charPtr: ptCharacter -> 'charPtr' default '0'
+ PrimitiveType string: ptCharacter -> 'charPtr' default '0'
+
+ // et-datatypes for the model
+ PrimitiveType etAddressId: ptInteger -> 'etAddressId' default '0'
+
+ ExternalType voidType -> 'void' default 'NULL'
+}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.c
new file mode 100644
index 0000000..85cdca5
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.c
@@ -0,0 +1,199 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ActorClass AContractMonitorBase
+ *
+ */
+
+#include "AContractMonitorBase.h"
+
+#include "modelbase/etActor.h"
+#include "debugging/etLogger.h"
+#include "debugging/etMSCLogger.h"
+#include "etUnit/etUnit.h"
+#include "base/etMemory.h"
+
+#include "etrice/api/contracts/monitors/PContractMonitorControl.h"
+
+#include "AContractMonitorBase_Utils.h"
+
+
+/* interface item IDs */
+enum interface_items {
+ IFITEM_monitor_ctrl = 1
+};
+
+/* state IDs */
+enum state_ids {
+ NO_STATE = 0,
+ STATE_TOP = 1,
+ STATE_MAX = 2
+};
+
+/* transition chains */
+enum ChainIDs {
+ CHAIN_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus = 1,
+ CHAIN_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward = 2
+};
+
+/* triggers */
+enum triggers {
+ POLLING = 0,
+ TRIG_monitor_ctrl__getAndResetStatus = IFITEM_monitor_ctrl + EVT_SHIFT*PContractMonitorControl_IN_getAndResetStatus,
+ TRIG_monitor_ctrl__setForwardInvalidMessages = IFITEM_monitor_ctrl + EVT_SHIFT*PContractMonitorControl_IN_setForwardInvalidMessages
+};
+
+/* state names */
+static const char* stateStrings[] = {"<no state>","<top>",};
+
+static void setState(AContractMonitorBase* self, etInt16 new_state) {
+ self->state = new_state;
+ ET_MSC_LOGGER_CHANGE_STATE(self->constData->instName, stateStrings[new_state]);
+}
+
+static etInt16 getState(AContractMonitorBase* self) {
+ return self->state;
+}
+
+/* Entry and Exit Codes */
+
+/* Action Codes */
+static void action_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus(AContractMonitorBase* self, const InterfaceItemBase* ifitem) {
+ monitor_ctrl_violationStatus(_violation);
+ _violation = false;
+}
+static void action_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward(AContractMonitorBase* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ forwardInvalidMessages = transitionData;
+}
+
+/* State Switch Methods */
+/**
+ * calls exit codes while exiting from the current state to one of its
+ * parent states while remembering the history
+ * @param current__et - the current state
+ * @param to - the final parent state
+* @param handler__et - entry and exit codes are called only if not handler (for handler TransitionPoints)
+ */
+static void exitTo(AContractMonitorBase* self, etInt16 current__et, etInt16 to, etBool handler__et) {
+ while (current__et!=to) {
+ switch (current__et) {
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+}
+
+/**
+ * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
+ * matching the trigger of this chain. The ID of the final state is returned
+ * @param chain__et - the chain ID
+ * @param generic_data__et - the generic data pointer
+ * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
+ */
+static etInt16 executeTransitionChain(AContractMonitorBase* self, int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
+ switch (chain__et) {
+ case CHAIN_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward:
+ {
+ bool transitionData = *((bool*) generic_data__et);
+ action_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward(self, ifitem, transitionData);
+ return STATE_TOP + STATE_MAX;
+ }
+ case CHAIN_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus:
+ {
+ action_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus(self, ifitem);
+ return STATE_TOP + STATE_MAX;
+ }
+ default:
+ /* should not occur */
+ break;
+ }
+ return NO_STATE;
+}
+
+/**
+ * calls entry codes while entering a state's history. The ID of the final leaf state is returned
+ * @param state__et - the state which is entered
+* @param handler__et - entry code is executed if not handler
+ * @return - the ID of the final leaf state
+ */
+static etInt16 enterHistory(AContractMonitorBase* self, etInt16 state__et, etBool handler__et) {
+ if (state__et >= STATE_MAX) {
+ state__et = (etInt16) (state__et - STATE_MAX);
+ }
+ while (ET_TRUE) {
+ switch (state__et) {
+ case STATE_TOP:
+ state__et = self->history[STATE_TOP];
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
+}
+
+static void AContractMonitorBase_executeInitTransition(AContractMonitorBase* self) {
+ /* no initial transition allowed for abstract actor class */
+}
+
+/* receiveEvent contains the main implementation of the FSM */
+static void AContractMonitorBase_receiveEventInternal(AContractMonitorBase* self, InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
+ int trigger__et = localId + EVT_SHIFT*evt;
+ int chain__et = NOT_CAUGHT;
+ etInt16 catching_state__et = NO_STATE;
+ etBool is_handler__et = ET_FALSE;
+ ((void)trigger__et); /* avoids unused warning */
+
+ if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
+ switch (getState(self)) {
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ if (chain__et != NOT_CAUGHT) {
+ exitTo(self, getState(self), catching_state__et, is_handler__et);
+ {
+ etInt16 next__et = executeTransitionChain(self, chain__et, ifitem, generic_data__et);
+ next__et = enterHistory(self, next__et, is_handler__et);
+ setState(self, next__et);
+ }
+ }
+}
+static void AContractMonitorBase_receiveEvent(AContractMonitorBase* self, InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
+ int localId = (ifitem==NULL)? 0 : ifitem->localId;
+ AContractMonitorBase_receiveEventInternal(self, ifitem, localId, evt, generic_data__et);
+}
+
+void AContractMonitorBase_init(AContractMonitorBase* self){
+ ET_MSC_LOGGER_SYNC_ENTRY("AContractMonitorBase", "init")
+ self->state = STATE_TOP;
+ {
+ int i;
+ for (i=0; i<ACONTRACTMONITORBASE_HISTORY_SIZE; ++i)
+ self->history[i] = NO_STATE;
+ }
+ AContractMonitorBase_executeInitTransition(self);
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void AContractMonitorBase_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
+ ET_MSC_LOGGER_SYNC_ENTRY("AContractMonitorBase", "_receiveMessage")
+ AContractMonitorBase_receiveEvent((AContractMonitorBase*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+ void AContractMonitorBase_onViolation(AContractMonitorBase* self, charPtr comment) {
+ _violation = true;
+ ET_MSC_LOGGER_VISIBLE_COMMENT(comment);
+ monitor_ctrl_violationOccured();
+}
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.h
new file mode 100644
index 0000000..439b5f4
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.h
@@ -0,0 +1,68 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ActorClass AContractMonitorBase
+ *
+ */
+
+#ifndef _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_H_
+#define _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_H_
+
+#include "etDatatypes.h"
+#include "messaging/etMessage.h"
+
+/* include all referenced room classes */
+#include "etrice/api/contracts/monitors/PContractMonitorControl.h"
+
+
+typedef struct AContractMonitorBase AContractMonitorBase;
+
+/* const part of ActorClass (ROM) */
+typedef struct AContractMonitorBase_const {
+ const char* instName;
+
+ /* simple ports */
+ const PContractMonitorControlPort monitor_ctrl;
+
+ /* data receive ports */
+
+ /* saps */
+
+ /* replicated ports */
+
+ /* services */
+} AContractMonitorBase_const;
+
+
+/* constant for state machine data */
+#define ACONTRACTMONITORBASE_HISTORY_SIZE 2
+
+/* variable part of ActorClass (RAM) */
+struct AContractMonitorBase {
+ const AContractMonitorBase_const* ET_CONST_MEMBER constData;
+
+ /* data send ports */
+
+ /*--------------------- attributes ---------------------*/
+ bool _violation;
+ bool forwardInvalidMessages;
+
+
+ /* state machine variables */
+ etInt16 state;
+ etInt16 history[ACONTRACTMONITORBASE_HISTORY_SIZE];
+};
+
+void AContractMonitorBase_init(AContractMonitorBase* self);
+
+void AContractMonitorBase_receiveMessage(void* self, const void* ifitem, const etMessage* msg);
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+ void AContractMonitorBase_onViolation(AContractMonitorBase* self, charPtr comment);
+
+
+#endif /* _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase_Utils.h
new file mode 100644
index 0000000..122712a
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/AContractMonitorBase_Utils.h
@@ -0,0 +1,41 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ActorClass AContractMonitorBase
+ *
+ */
+
+#ifndef _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_UTILS_H_
+#define _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_UTILS_H_
+
+#include "etrice/api/contracts/monitors/AContractMonitorBase.h"
+
+/*
+ * access macros for ports, operations and attributes
+*/
+
+/* simple event ports */
+#define monitor_ctrl_violationStatus(data) PContractMonitorControlPort_violationStatus(&self->constData->monitor_ctrl, data)
+#define monitor_ctrl_violationOccured() PContractMonitorControlPort_violationOccured(&self->constData->monitor_ctrl)
+
+/* data receive ports */
+
+/* data send ports */
+
+/* saps */
+
+/* replicated event ports */
+
+/* services */
+
+/* operations */
+#define onViolation(comment) AContractMonitorBase_onViolation(self, comment)
+
+/* attributes */
+#define _violation (self->_violation)
+#define forwardInvalidMessages (self->forwardInvalidMessages)
+
+/* port operations */
+
+#endif /* _ETRICE_API_CONTRACTS_MONITORS_ACONTRACTMONITORBASE_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.c
new file mode 100644
index 0000000..04d7ab1
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.c
@@ -0,0 +1,146 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ProtocolClass PContractMonitorControl
+ *
+ */
+
+#include "PContractMonitorControl.h"
+#include "debugging/etMSCLogger.h"
+#include "PContractMonitorControl_Utils.h"
+
+
+/*--------------------- port methods */
+
+void PContractMonitorControlPort_violationStatus(const PContractMonitorControlPort* self, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlPort", "violationStatus")
+ etPort_sendMessage(self, PContractMonitorControl_OUT_violationStatus, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "violationStatus", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlReplPort_violationStatus_broadcast(const PContractMonitorControlReplPort* self, bool data__et) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlReplPort", "violationStatus")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PContractMonitorControl_OUT_violationStatus, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "violationStatus", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlReplPort_violationStatus(const PContractMonitorControlReplPort* self, int idx__et, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlReplPort", "violationStatus")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PContractMonitorControl_OUT_violationStatus, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "violationStatus", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void PContractMonitorControlPort_violationOccured(const PContractMonitorControlPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlPort", "violationOccured")
+ etPort_sendMessage(self, PContractMonitorControl_OUT_violationOccured, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "violationOccured", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlReplPort_violationOccured_broadcast(const PContractMonitorControlReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlReplPort", "violationOccured")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PContractMonitorControl_OUT_violationOccured, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "violationOccured", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlReplPort_violationOccured(const PContractMonitorControlReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlReplPort", "violationOccured")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PContractMonitorControl_OUT_violationOccured, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "violationOccured", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PContractMonitorControlReplPort_getReplication(const PContractMonitorControlReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+void PContractMonitorControlConjPort_getAndResetStatus(const PContractMonitorControlConjPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjPort", "getAndResetStatus")
+ etPort_sendMessage(self, PContractMonitorControl_IN_getAndResetStatus, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "getAndResetStatus", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlConjReplPort_getAndResetStatus_broadcast(const PContractMonitorControlConjReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjReplPort", "getAndResetStatus")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PContractMonitorControl_IN_getAndResetStatus, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "getAndResetStatus", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlConjReplPort_getAndResetStatus(const PContractMonitorControlConjReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjReplPort", "getAndResetStatus")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PContractMonitorControl_IN_getAndResetStatus, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "getAndResetStatus", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void PContractMonitorControlConjPort_setForwardInvalidMessages(const PContractMonitorControlConjPort* self, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjPort", "setForwardInvalidMessages")
+ etPort_sendMessage(self, PContractMonitorControl_IN_setForwardInvalidMessages, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "setForwardInvalidMessages", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlConjReplPort_setForwardInvalidMessages_broadcast(const PContractMonitorControlConjReplPort* self, bool data__et) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjReplPort", "setForwardInvalidMessages")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PContractMonitorControl_IN_setForwardInvalidMessages, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "setForwardInvalidMessages", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PContractMonitorControlConjReplPort_setForwardInvalidMessages(const PContractMonitorControlConjReplPort* self, int idx__et, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PContractMonitorControlConjReplPort", "setForwardInvalidMessages")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PContractMonitorControl_IN_setForwardInvalidMessages, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "setForwardInvalidMessages", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PContractMonitorControlConjReplPort_getReplication(const PContractMonitorControlConjReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+/*--------------------- debug helpers */
+
+/* message names as strings for debugging (generate MSC) */
+static const char* const PContractMonitorControl_messageStrings[] = {"MIN", "violationStatus","violationOccured","getAndResetStatus", "setForwardInvalidMessages", "MAX"};
+
+const char* PContractMonitorControl_getMessageString(int msg_id) {
+ if (msg_id<PContractMonitorControl_MSG_MIN || msg_id>PContractMonitorControl_MSG_MAX+1){
+ /* id out of range */
+ return "Message ID out of range";
+ }
+ else{
+ return PContractMonitorControl_messageStrings[msg_id];
+ }
+}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.h
new file mode 100644
index 0000000..ce68207
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.h
@@ -0,0 +1,63 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ProtocolClass PContractMonitorControl
+ *
+ */
+
+#ifndef _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_H_
+#define _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_H_
+
+#include "etDatatypes.h"
+#include "modelbase/etPort.h"
+
+
+/* include all referenced room classes */
+
+
+/* message IDs */
+enum PContractMonitorControl_msg_ids {
+ PContractMonitorControl_MSG_MIN = 0,
+ PContractMonitorControl_OUT_violationStatus = 1,
+ PContractMonitorControl_OUT_violationOccured = 2,
+ PContractMonitorControl_IN_getAndResetStatus = 3,
+ PContractMonitorControl_IN_setForwardInvalidMessages = 4,
+ PContractMonitorControl_MSG_MAX = 5
+};
+
+/*--------------------- port structs and methods */
+typedef etPort PContractMonitorControlPort;
+typedef etReplPort PContractMonitorControlReplPort;
+
+
+void PContractMonitorControlPort_violationStatus(const PContractMonitorControlPort* self, bool data);
+void PContractMonitorControlReplPort_violationStatus_broadcast(const PContractMonitorControlReplPort* self, bool data);
+void PContractMonitorControlReplPort_violationStatus(const PContractMonitorControlReplPort* self, int idx, bool data);
+void PContractMonitorControlPort_violationOccured(const PContractMonitorControlPort* self);
+void PContractMonitorControlReplPort_violationOccured_broadcast(const PContractMonitorControlReplPort* self);
+void PContractMonitorControlReplPort_violationOccured(const PContractMonitorControlReplPort* self, int idx);
+
+
+etInt32 PContractMonitorControlReplPort_getReplication(const PContractMonitorControlReplPort* self);
+typedef etPort PContractMonitorControlConjPort;
+typedef etReplPort PContractMonitorControlConjReplPort;
+
+
+void PContractMonitorControlConjPort_getAndResetStatus(const PContractMonitorControlConjPort* self);
+void PContractMonitorControlConjReplPort_getAndResetStatus_broadcast(const PContractMonitorControlConjReplPort* self);
+void PContractMonitorControlConjReplPort_getAndResetStatus(const PContractMonitorControlConjReplPort* self, int idx);
+void PContractMonitorControlConjPort_setForwardInvalidMessages(const PContractMonitorControlConjPort* self, bool data);
+void PContractMonitorControlConjReplPort_setForwardInvalidMessages_broadcast(const PContractMonitorControlConjReplPort* self, bool data);
+void PContractMonitorControlConjReplPort_setForwardInvalidMessages(const PContractMonitorControlConjReplPort* self, int idx, bool data);
+
+
+etInt32 PContractMonitorControlConjReplPort_getReplication(const PContractMonitorControlConjReplPort* self);
+
+/*--------------------- debug helpers */
+
+/* get message string for message id */
+const char* PContractMonitorControl_getMessageString(int msg_id);
+
+
+#endif /* _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl_Utils.h
new file mode 100644
index 0000000..3c45ace
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/contracts/monitors/PContractMonitorControl_Utils.h
@@ -0,0 +1,19 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PContractMonitorControl
+ *
+ */
+
+#ifndef _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_UTILS_H_
+#define _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_UTILS_H_
+
+#include "etrice/api/contracts/monitors/PContractMonitorControl.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+
+#endif /* _ETRICE_API_CONTRACTS_MONITORS_PCONTRACTMONITORCONTROL_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt.c
similarity index 100%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt.c
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt.h
similarity index 90%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt.h
index 340b806..6395987 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt.h
@@ -5,8 +5,8 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_H_
-#define _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_H_
+#ifndef _ETRICE_API_INTERRUPT_PINTERRUPT_H_
+#define _ETRICE_API_INTERRUPT_PINTERRUPT_H_
#include "etDatatypes.h"
#include "modelbase/etPort.h"
@@ -59,5 +59,5 @@
const char* PInterrupt_getMessageString(int msg_id);
-#endif /* _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_H_ */
+#endif /* _ETRICE_API_INTERRUPT_PINTERRUPT_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt_Utils.h
similarity index 70%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt_Utils.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt_Utils.h
index edca92e..d84d781 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/pinterrupt/PInterrupt_Utils.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/interrupt/PInterrupt_Utils.h
@@ -5,10 +5,10 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_UTILS_H_
-#define _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_UTILS_H_
+#ifndef _ETRICE_API_INTERRUPT_PINTERRUPT_UTILS_H_
+#define _ETRICE_API_INTERRUPT_PINTERRUPT_UTILS_H_
-#include "room/basic/service/pinterrupt/PInterrupt.h"
+#include "etrice/api/interrupt/PInterrupt.h"
/*
* access macros for operations and attributes
@@ -26,5 +26,5 @@
#define callback (((PInterruptConjPort_var*)(self->varData))->callback)
#define enable (((PInterruptConjPort_var*)(self->varData))->enable)
-#endif /* _ROOM_BASIC_SERVICE_PINTERRUPT_PINTERRUPT_UTILS_H_ */
+#endif /* _ETRICE_API_INTERRUPT_PINTERRUPT_UTILS_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.c
new file mode 100644
index 0000000..98bc95c
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.c
@@ -0,0 +1,58 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ProtocolClass PLogger
+ *
+ */
+
+#include "PLogger.h"
+#include "debugging/etMSCLogger.h"
+#include "PLogger_Utils.h"
+
+/*--------------------- begin user code ---------------------*/
+#include <stdarg.h>
+extern void PLogging_internal_logF();
+
+/*--------------------- end user code ---------------------*/
+
+/*--------------------- port methods */
+etInt32 PLoggerReplPort_getReplication(const PLoggerReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+/* begin PLoggerConjPort specific (including base classes) */
+
+/*--------------------- operations ---------------------*/
+ void PLoggerConjPort_log(PLoggerConjPort* self, char* message) {
+ logF(message, NULL);
+}
+ void PLoggerConjPort_logF(PLoggerConjPort* self, char* format, ...) {
+ va_list argptr;
+ va_start(argptr, format);
+ // TODO call etLogger
+ PLogger_internal_logF(format, argptr);
+ va_end(argptr);
+}
+/* end PLoggerConjPort specific (including base classes) */
+
+etInt32 PLoggerConjReplPort_getReplication(const PLoggerConjReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+/*--------------------- debug helpers */
+
+/* message names as strings for debugging (generate MSC) */
+static const char* const PLogger_messageStrings[] = {"MIN", "MAX"};
+
+const char* PLogger_getMessageString(int msg_id) {
+ if (msg_id<PLogger_MSG_MIN || msg_id>PLogger_MSG_MAX+1){
+ /* id out of range */
+ return "Message ID out of range";
+ }
+ else{
+ return PLogger_messageStrings[msg_id];
+ }
+}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.h
new file mode 100644
index 0000000..042b7b2
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger.h
@@ -0,0 +1,50 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ProtocolClass PLogger
+ *
+ */
+
+#ifndef _ETRICE_API_LOGGER_PLOGGER_H_
+#define _ETRICE_API_LOGGER_PLOGGER_H_
+
+#include "etDatatypes.h"
+#include "modelbase/etPort.h"
+
+
+/* include all referenced room classes */
+
+
+/* message IDs */
+enum PLogger_msg_ids {
+ PLogger_MSG_MIN = 0,
+ PLogger_MSG_MAX = 1
+};
+
+/*--------------------- port structs and methods */
+typedef etPort PLoggerPort;
+typedef etReplPort PLoggerReplPort;
+
+
+
+
+etInt32 PLoggerReplPort_getReplication(const PLoggerReplPort* self);
+typedef etPort PLoggerConjPort;
+typedef etReplPort PLoggerConjReplPort;
+
+
+
+/*--------------------- operations ---------------------*/
+ void PLoggerConjPort_log(PLoggerConjPort* self, char* message);
+ void PLoggerConjPort_logF(PLoggerConjPort* self, char* format, ...);
+
+etInt32 PLoggerConjReplPort_getReplication(const PLoggerConjReplPort* self);
+
+/*--------------------- debug helpers */
+
+/* get message string for message id */
+const char* PLogger_getMessageString(int msg_id);
+
+
+#endif /* _ETRICE_API_LOGGER_PLOGGER_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger_Utils.h
new file mode 100644
index 0000000..bdf8546
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/logger/PLogger_Utils.h
@@ -0,0 +1,26 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PLogger
+ *
+ */
+
+#ifndef _ETRICE_API_LOGGER_PLOGGER_UTILS_H_
+#define _ETRICE_API_LOGGER_PLOGGER_UTILS_H_
+
+#include "etrice/api/logger/PLogger.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+/* conjugate port class */
+
+/* operations */
+#define log(message) PLoggerConjPort_log(self, message)
+#define logF(format, ...) PLoggerConjPort_logF(self, format, __VA_ARGS__)
+
+/* attributes */
+
+#endif /* _ETRICE_API_LOGGER_PLOGGER_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.c
similarity index 97%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.c
index 7896aa2..c3aba11 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.c
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.c
@@ -13,8 +13,8 @@
#include "etUnit/etUnit.h"
#include "base/etMemory.h"
-#include "room/basic/service/tcp/PTcpControl.h"
-#include "room/basic/service/tcp/PTcpPayload.h"
+#include "etrice/api/tcp/PTcpControl.h"
+#include "etrice/api/tcp/PTcpPayload.h"
#include "ATcpClient_Utils.h"
@@ -67,7 +67,7 @@
};
/* state names */
-static char* stateStrings[] = {"<no state>","<top>","unconnected",
+static const char* stateStrings[] = {"<no state>","<top>","unconnected",
"connected",
"initError"
};
@@ -322,7 +322,7 @@
void ATcpClient_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
ET_MSC_LOGGER_SYNC_ENTRY("ATcpClient", "_receiveMessage")
- ATcpClient_receiveEvent(self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+ ATcpClient_receiveEvent((ATcpClient*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
ET_MSC_LOGGER_SYNC_EXIT
}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.h
similarity index 80%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.h
index a814e21..0d64981 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient.h
@@ -5,16 +5,16 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_H_
-#define _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_H_
+#ifndef _ETRICE_API_TCP_ATCPCLIENT_H_
+#define _ETRICE_API_TCP_ATCPCLIENT_H_
#include "etDatatypes.h"
#include "messaging/etMessage.h"
/* include all referenced room classes */
-#include "room/basic/service/tcp/DTcpPayload.h"
-#include "room/basic/service/tcp/PTcpControl.h"
-#include "room/basic/service/tcp/PTcpPayload.h"
+#include "etrice/api/tcp/DTcpPayload.h"
+#include "etrice/api/tcp/PTcpControl.h"
+#include "etrice/api/tcp/PTcpPayload.h"
/*--------------------- begin user code ---------------------*/
#include "osal/etTcpSockets.h"
@@ -41,11 +41,11 @@
/* constant for state machine data */
-#define ATCPCLIENT_HISTORY_SIZE 5
+#define ATCPCLIENT_HISTORY_SIZE 2
/* variable part of ActorClass (RAM) */
struct ATcpClient {
- const ATcpClient_const* const constData;
+ const ATcpClient_const* ET_CONST_MEMBER constData;
/* data send ports */
@@ -74,5 +74,5 @@
void ATcpClient_setErrorCode(ATcpClient* self, int32 value);
-#endif /* _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_H_ */
+#endif /* _ETRICE_API_TCP_ATCPCLIENT_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient_Utils.h
similarity index 81%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient_Utils.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient_Utils.h
index c834893..fd463e3 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpClient_Utils.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpClient_Utils.h
@@ -5,10 +5,10 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_UTILS_H_
+#ifndef _ETRICE_API_TCP_ATCPCLIENT_UTILS_H_
+#define _ETRICE_API_TCP_ATCPCLIENT_UTILS_H_
-#include "room/basic/service/tcp/ATcpClient.h"
+#include "etrice/api/tcp/ATcpClient.h"
/*
* access macros for ports, operations and attributes
@@ -41,5 +41,5 @@
/* port operations */
-#endif /* _ROOM_BASIC_SERVICE_TCP_ATCPCLIENT_UTILS_H_ */
+#endif /* _ETRICE_API_TCP_ATCPCLIENT_UTILS_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.c
similarity index 97%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.c
index 098797e..c5f6a63 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.c
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.c
@@ -13,8 +13,8 @@
#include "etUnit/etUnit.h"
#include "base/etMemory.h"
-#include "room/basic/service/tcp/PTcpControl.h"
-#include "room/basic/service/tcp/PTcpPayload.h"
+#include "etrice/api/tcp/PTcpControl.h"
+#include "etrice/api/tcp/PTcpPayload.h"
#include "ATcpServer_Utils.h"
@@ -31,7 +31,6 @@
payloadPort_dataPackage(&payloadRecvBuffer);
return ETSOCKET_OK;
}
-
/*--------------------- end user code ---------------------*/
/* interface item IDs */
@@ -68,7 +67,7 @@
};
/* state names */
-static char* stateStrings[] = {"<no state>","<top>","connected",
+static const char* stateStrings[] = {"<no state>","<top>","connected",
"unconnected",
"initError"
};
@@ -321,7 +320,7 @@
void ATcpServer_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
ET_MSC_LOGGER_SYNC_ENTRY("ATcpServer", "_receiveMessage")
- ATcpServer_receiveEvent(self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+ ATcpServer_receiveEvent((ATcpServer*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
ET_MSC_LOGGER_SYNC_EXIT
}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.h
similarity index 80%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.h
index 39e4c75..3f2d475 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer.h
@@ -5,16 +5,16 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_H_
-#define _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_H_
+#ifndef _ETRICE_API_TCP_ATCPSERVER_H_
+#define _ETRICE_API_TCP_ATCPSERVER_H_
#include "etDatatypes.h"
#include "messaging/etMessage.h"
/* include all referenced room classes */
-#include "room/basic/service/tcp/DTcpPayload.h"
-#include "room/basic/service/tcp/PTcpControl.h"
-#include "room/basic/service/tcp/PTcpPayload.h"
+#include "etrice/api/tcp/DTcpPayload.h"
+#include "etrice/api/tcp/PTcpControl.h"
+#include "etrice/api/tcp/PTcpPayload.h"
/*--------------------- begin user code ---------------------*/
#include "osal/etTcpSockets.h"
@@ -41,11 +41,11 @@
/* constant for state machine data */
-#define ATCPSERVER_HISTORY_SIZE 5
+#define ATCPSERVER_HISTORY_SIZE 2
/* variable part of ActorClass (RAM) */
struct ATcpServer {
- const ATcpServer_const* const constData;
+ const ATcpServer_const* ET_CONST_MEMBER constData;
/* data send ports */
@@ -74,5 +74,5 @@
void ATcpServer_setErrorCode(ATcpServer* self, int32 value);
-#endif /* _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_H_ */
+#endif /* _ETRICE_API_TCP_ATCPSERVER_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer_Utils.h
similarity index 81%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer_Utils.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer_Utils.h
index 6406376..41ba8d8 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/ATcpServer_Utils.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/ATcpServer_Utils.h
@@ -5,10 +5,10 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_UTILS_H_
+#ifndef _ETRICE_API_TCP_ATCPSERVER_UTILS_H_
+#define _ETRICE_API_TCP_ATCPSERVER_UTILS_H_
-#include "room/basic/service/tcp/ATcpServer.h"
+#include "etrice/api/tcp/ATcpServer.h"
/*
* access macros for ports, operations and attributes
@@ -41,5 +41,5 @@
/* port operations */
-#endif /* _ROOM_BASIC_SERVICE_TCP_ATCPSERVER_UTILS_H_ */
+#endif /* _ETRICE_API_TCP_ATCPSERVER_UTILS_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.c
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.c
index 10dc9c9..d512f44 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.c
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.c
@@ -18,4 +18,3 @@
memcpy(target, source, sizeof(DTcpControl));
}
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.h
similarity index 74%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.h
index ed7edcd..d8ad8b5 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl.h
@@ -5,8 +5,8 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_H_
-#define _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_H_
+#ifndef _ETRICE_API_TCP_DTCPCONTROL_H_
+#define _ETRICE_API_TCP_DTCPCONTROL_H_
#include "etDatatypes.h"
@@ -27,5 +27,5 @@
void DTcpControl_deepCopy(DTcpControl* source, DTcpControl* target);
-#endif /* _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_H_ */
+#endif /* _ETRICE_API_TCP_DTCPCONTROL_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl_Utils.h
new file mode 100644
index 0000000..5ec6289
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpControl_Utils.h
@@ -0,0 +1,24 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of DataClass DTcpControl
+ *
+ */
+
+#ifndef _ETRICE_API_TCP_DTCPCONTROL_UTILS_H_
+#define _ETRICE_API_TCP_DTCPCONTROL_UTILS_H_
+
+#include "etrice/api/tcp/DTcpControl.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+/* operations */
+
+/* attributes */
+#define IPAddr (self->IPAddr)
+#define TcpPort (self->TcpPort)
+
+#endif /* _ETRICE_API_TCP_DTCPCONTROL_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.c
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.c
index 3b10701..2b41345 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.c
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.c
@@ -16,13 +16,6 @@
int32 DTcpPayload_getMaxLength(DTcpPayload* self) {
return 32;
}
- void DTcpPayload_setAsString(DTcpPayload* self, charPtr value) {
- /* used macros: data, length */
- int valLength = (strlen(value)+1 > 32)? 32 : strlen(value) + 1;
- memcpy(data, value, valLength);
- data[31] = '\0';
- length = valLength;
-}
void DTcpPayload_setData(DTcpPayload* self, int8* value, int32 size) {
/* used macros: data, length */
strncpy(data, value, ((size>32)?32:size));
@@ -33,9 +26,15 @@
data[31] = '\0';
return data;
}
+ void DTcpPayload_setAsString(DTcpPayload* self, charPtr value) {
+ /* used macros: data, length */
+ int valLength = (strlen(value)+1 > 32)? 32 : strlen(value) + 1;
+ memcpy(data, value, valLength);
+ data[31] = '\0';
+ length = valLength;
+}
void DTcpPayload_deepCopy(DTcpPayload* source, DTcpPayload* target) {
memcpy(target, source, sizeof(DTcpPayload));
}
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.h
similarity index 82%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.h
index 99fc0cf..641d84d 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload.h
@@ -5,8 +5,8 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_H_
-#define _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_H_
+#ifndef _ETRICE_API_TCP_DTCPPAYLOAD_H_
+#define _ETRICE_API_TCP_DTCPPAYLOAD_H_
#include "etDatatypes.h"
@@ -25,13 +25,13 @@
/*--------------------- operations ---------------------*/
int32 DTcpPayload_getMaxLength(DTcpPayload* self);
- void DTcpPayload_setAsString(DTcpPayload* self, charPtr value);
void DTcpPayload_setData(DTcpPayload* self, int8* value, int32 size);
charPtr DTcpPayload_getAsString(DTcpPayload* self);
+ void DTcpPayload_setAsString(DTcpPayload* self, charPtr value);
/* deep copy */
void DTcpPayload_deepCopy(DTcpPayload* source, DTcpPayload* target);
-#endif /* _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_H_ */
+#endif /* _ETRICE_API_TCP_DTCPPAYLOAD_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload_Utils.h
similarity index 70%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload_Utils.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload_Utils.h
index d25b6bf..ab6fccf 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpPayload_Utils.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/DTcpPayload_Utils.h
@@ -5,10 +5,10 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_UTILS_H_
+#ifndef _ETRICE_API_TCP_DTCPPAYLOAD_UTILS_H_
+#define _ETRICE_API_TCP_DTCPPAYLOAD_UTILS_H_
-#include "room/basic/service/tcp/DTcpPayload.h"
+#include "etrice/api/tcp/DTcpPayload.h"
/*
* access macros for operations and attributes
@@ -25,5 +25,5 @@
#define length (self->length)
#define data (self->data)
-#endif /* _ROOM_BASIC_SERVICE_TCP_DTCPPAYLOAD_UTILS_H_ */
+#endif /* _ETRICE_API_TCP_DTCPPAYLOAD_UTILS_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl.c
similarity index 100%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl.c
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl.h
similarity index 91%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl.h
index d0e7819..ec63ef1 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl.h
@@ -5,15 +5,15 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_H_
-#define _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_H_
+#ifndef _ETRICE_API_TCP_PTCPCONTROL_H_
+#define _ETRICE_API_TCP_PTCPCONTROL_H_
#include "etDatatypes.h"
#include "modelbase/etPort.h"
/* include all referenced room classes */
-#include "room/basic/service/tcp/DTcpControl.h"
+#include "etrice/api/tcp/DTcpControl.h"
/* message IDs */
@@ -64,5 +64,5 @@
const char* PTcpControl_getMessageString(int msg_id);
-#endif /* _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_H_ */
+#endif /* _ETRICE_API_TCP_PTCPCONTROL_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl_Utils.h
new file mode 100644
index 0000000..6485bcb
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpControl_Utils.h
@@ -0,0 +1,19 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PTcpControl
+ *
+ */
+
+#ifndef _ETRICE_API_TCP_PTCPCONTROL_UTILS_H_
+#define _ETRICE_API_TCP_PTCPCONTROL_UTILS_H_
+
+#include "etrice/api/tcp/PTcpControl.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+
+#endif /* _ETRICE_API_TCP_PTCPCONTROL_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload.c
similarity index 100%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload.c
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload.h
similarity index 88%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload.h
index 9a30653..e875120 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload.h
@@ -5,15 +5,15 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_H_
-#define _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_H_
+#ifndef _ETRICE_API_TCP_PTCPPAYLOAD_H_
+#define _ETRICE_API_TCP_PTCPPAYLOAD_H_
#include "etDatatypes.h"
#include "modelbase/etPort.h"
/* include all referenced room classes */
-#include "room/basic/service/tcp/DTcpPayload.h"
+#include "etrice/api/tcp/DTcpPayload.h"
/* message IDs */
@@ -52,5 +52,5 @@
const char* PTcpPayload_getMessageString(int msg_id);
-#endif /* _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_H_ */
+#endif /* _ETRICE_API_TCP_PTCPPAYLOAD_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload_Utils.h
new file mode 100644
index 0000000..944b80c
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/tcp/PTcpPayload_Utils.h
@@ -0,0 +1,19 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PTcpPayload
+ *
+ */
+
+#ifndef _ETRICE_API_TCP_PTCPPAYLOAD_UTILS_H_
+#define _ETRICE_API_TCP_PTCPPAYLOAD_UTILS_H_
+
+#include "etrice/api/tcp/PTcpPayload.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+
+#endif /* _ETRICE_API_TCP_PTCPPAYLOAD_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.c
new file mode 100644
index 0000000..3197570
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.c
@@ -0,0 +1,318 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ActorClass ControllableSequentialTestExecutor
+ *
+ */
+
+#include "ControllableSequentialTestExecutor.h"
+
+#include "modelbase/etActor.h"
+#include "debugging/etLogger.h"
+#include "debugging/etMSCLogger.h"
+#include "etUnit/etUnit.h"
+#include "base/etMemory.h"
+
+#include "etrice/api/testcontrol/PTestControl.h"
+
+#include "ControllableSequentialTestExecutor_Utils.h"
+
+
+/* interface item IDs */
+enum interface_items {
+ IFITEM_exeControl = 1,
+ IFITEM_control = 2
+};
+
+/* state IDs */
+enum state_ids {
+ NO_STATE = 0,
+ STATE_TOP = 1,
+ STATE_execute = 2,
+ STATE_idle = 3,
+ STATE_aborted = 4,
+ STATE_MAX = 5
+};
+
+/* transition chains */
+enum ChainIDs {
+ CHAIN_TRANS_INITIAL_TO__idle = 1,
+ CHAIN_TRANS_tr0_FROM_idle_TO_cp1_BY_startexeControl = 2,
+ CHAIN_TRANS_tr1_FROM_execute_TO_aborted_BY_abortexeControl = 3,
+ CHAIN_TRANS_tr2_FROM_execute_TO_cp0_BY_donecontrol = 4,
+ CHAIN_TRANS_tr7_FROM_aborted_TO_idle_BY_donecontrol = 5
+};
+
+/* triggers */
+enum triggers {
+ POLLING = 0,
+ TRIG_exeControl__start = IFITEM_exeControl + EVT_SHIFT*PTestControl_IN_start,
+ TRIG_exeControl__abort = IFITEM_exeControl + EVT_SHIFT*PTestControl_IN_abort,
+ TRIG_control__done = IFITEM_control + EVT_SHIFT*PTestControl_OUT_done
+};
+
+/* state names */
+static const char* stateStrings[] = {"<no state>","<top>","execute",
+"idle",
+"aborted"
+};
+
+static void setState(ControllableSequentialTestExecutor* self, etInt16 new_state) {
+ self->state = new_state;
+ ET_MSC_LOGGER_CHANGE_STATE(self->constData->instName, stateStrings[new_state]);
+}
+
+static etInt16 getState(ControllableSequentialTestExecutor* self) {
+ return self->state;
+}
+
+/* Entry and Exit Codes */
+static void entry_idle(ControllableSequentialTestExecutor* self) {
+ current = 0;
+ overallSuccess = true;
+}
+
+/* Action Codes */
+static void action_TRANS_tr1_FROM_execute_TO_aborted_BY_abortexeControl(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem) {
+ control_abort(current);
+}
+static void action_TRANS_tr2_FROM_execute_TO_cp0_BY_donecontrol(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ overallSuccess &= transitionData;
+ current++;
+}
+static void action_TRANS_tr3_FROM_cp0_TO_idle(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ exeControl_done(overallSuccess);
+}
+static void action_TRANS_tr4_FROM_cp0_TO_execute_COND_tr4(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ control_start(current);
+}
+static void action_TRANS_tr5_FROM_cp1_TO_idle(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem) {
+ exeControl_done(overallSuccess);
+}
+static void action_TRANS_tr6_FROM_cp1_TO_execute_COND_tr6(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem) {
+ control_start(current);
+}
+static void action_TRANS_tr7_FROM_aborted_TO_idle_BY_donecontrol(ControllableSequentialTestExecutor* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ exeControl_done(false);
+}
+
+/* State Switch Methods */
+/**
+ * calls exit codes while exiting from the current state to one of its
+ * parent states while remembering the history
+ * @param current__et - the current state
+ * @param to - the final parent state
+ */
+static void exitTo(ControllableSequentialTestExecutor* self, etInt16 current__et, etInt16 to) {
+ while (current__et!=to) {
+ switch (current__et) {
+ case STATE_aborted:
+ self->history[STATE_TOP] = STATE_aborted;
+ current__et = STATE_TOP;
+ break;
+ case STATE_execute:
+ self->history[STATE_TOP] = STATE_execute;
+ current__et = STATE_TOP;
+ break;
+ case STATE_idle:
+ self->history[STATE_TOP] = STATE_idle;
+ current__et = STATE_TOP;
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+}
+
+/**
+ * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
+ * matching the trigger of this chain. The ID of the final state is returned
+ * @param chain__et - the chain ID
+ * @param generic_data__et - the generic data pointer
+ * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
+ */
+static etInt16 executeTransitionChain(ControllableSequentialTestExecutor* self, int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
+ switch (chain__et) {
+ case CHAIN_TRANS_INITIAL_TO__idle:
+ {
+ return STATE_idle;
+ }
+ case CHAIN_TRANS_tr0_FROM_idle_TO_cp1_BY_startexeControl:
+ {
+ if (current < self->constData->control.size) {
+ action_TRANS_tr6_FROM_cp1_TO_execute_COND_tr6(self, ifitem);
+ return STATE_execute;}
+ else {
+ action_TRANS_tr5_FROM_cp1_TO_idle(self, ifitem);
+ return STATE_idle;}
+ }
+ case CHAIN_TRANS_tr1_FROM_execute_TO_aborted_BY_abortexeControl:
+ {
+ action_TRANS_tr1_FROM_execute_TO_aborted_BY_abortexeControl(self, ifitem);
+ return STATE_aborted;
+ }
+ case CHAIN_TRANS_tr2_FROM_execute_TO_cp0_BY_donecontrol:
+ {
+ bool transitionData = *((bool*) generic_data__et);
+ action_TRANS_tr2_FROM_execute_TO_cp0_BY_donecontrol(self, ifitem, transitionData);
+ if (current < self->constData->control.size) {
+ action_TRANS_tr4_FROM_cp0_TO_execute_COND_tr4(self, ifitem, transitionData);
+ return STATE_execute;}
+ else {
+ action_TRANS_tr3_FROM_cp0_TO_idle(self, ifitem, transitionData);
+ return STATE_idle;}
+ }
+ case CHAIN_TRANS_tr7_FROM_aborted_TO_idle_BY_donecontrol:
+ {
+ bool transitionData = *((bool*) generic_data__et);
+ action_TRANS_tr7_FROM_aborted_TO_idle_BY_donecontrol(self, ifitem, transitionData);
+ return STATE_idle;
+ }
+ default:
+ /* should not occur */
+ break;
+ }
+ return NO_STATE;
+}
+
+/**
+ * calls entry codes while entering a state's history. The ID of the final leaf state is returned
+ * @param state__et - the state which is entered
+ * @return - the ID of the final leaf state
+ */
+static etInt16 enterHistory(ControllableSequentialTestExecutor* self, etInt16 state__et) {
+ etBool skip_entry__et = ET_FALSE;
+ if (state__et >= STATE_MAX) {
+ state__et = (etInt16) (state__et - STATE_MAX);
+ skip_entry__et = ET_TRUE;
+ }
+ while (ET_TRUE) {
+ switch (state__et) {
+ case STATE_aborted:
+ /* in leaf state: return state id */
+ return STATE_aborted;
+ case STATE_execute:
+ /* in leaf state: return state id */
+ return STATE_execute;
+ case STATE_idle:
+ if (!(skip_entry__et)) entry_idle(self);
+ /* in leaf state: return state id */
+ return STATE_idle;
+ case STATE_TOP:
+ state__et = self->history[STATE_TOP];
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ skip_entry__et = ET_FALSE;
+ }
+ /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
+}
+
+static void ControllableSequentialTestExecutor_executeInitTransition(ControllableSequentialTestExecutor* self) {
+ int chain__et = CHAIN_TRANS_INITIAL_TO__idle;
+ etInt16 next__et = executeTransitionChain(self, chain__et, NULL, NULL);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+}
+
+/* receiveEvent contains the main implementation of the FSM */
+static void ControllableSequentialTestExecutor_receiveEventInternal(ControllableSequentialTestExecutor* self, InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
+ int trigger__et = localId + EVT_SHIFT*evt;
+ int chain__et = NOT_CAUGHT;
+ etInt16 catching_state__et = NO_STATE;
+ ((void)trigger__et); /* avoids unused warning */
+
+ if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
+ switch (getState(self)) {
+ case STATE_aborted:
+ switch(trigger__et) {
+ case TRIG_control__done:
+ {
+ chain__et = CHAIN_TRANS_tr7_FROM_aborted_TO_idle_BY_donecontrol;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ break;
+ case STATE_execute:
+ switch(trigger__et) {
+ case TRIG_control__done:
+ {
+ chain__et = CHAIN_TRANS_tr2_FROM_execute_TO_cp0_BY_donecontrol;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ case TRIG_exeControl__abort:
+ {
+ chain__et = CHAIN_TRANS_tr1_FROM_execute_TO_aborted_BY_abortexeControl;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ break;
+ case STATE_idle:
+ switch(trigger__et) {
+ case TRIG_exeControl__start:
+ {
+ chain__et = CHAIN_TRANS_tr0_FROM_idle_TO_cp1_BY_startexeControl;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ if (chain__et != NOT_CAUGHT) {
+ exitTo(self, getState(self), catching_state__et);
+ {
+ etInt16 next__et = executeTransitionChain(self, chain__et, ifitem, generic_data__et);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+ }
+ }
+}
+static void ControllableSequentialTestExecutor_receiveEvent(ControllableSequentialTestExecutor* self, InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
+ int localId = (ifitem==NULL)? 0 : ifitem->localId;
+ ControllableSequentialTestExecutor_receiveEventInternal(self, ifitem, localId, evt, generic_data__et);
+}
+
+void ControllableSequentialTestExecutor_init(ControllableSequentialTestExecutor* self){
+ ET_MSC_LOGGER_SYNC_ENTRY("ControllableSequentialTestExecutor", "init")
+ self->state = STATE_TOP;
+ {
+ int i;
+ for (i=0; i<CONTROLLABLESEQUENTIALTESTEXECUTOR_HISTORY_SIZE; ++i)
+ self->history[i] = NO_STATE;
+ }
+ ControllableSequentialTestExecutor_executeInitTransition(self);
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void ControllableSequentialTestExecutor_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
+ ET_MSC_LOGGER_SYNC_ENTRY("ControllableSequentialTestExecutor", "_receiveMessage")
+ ControllableSequentialTestExecutor_receiveEvent((ControllableSequentialTestExecutor*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.h
new file mode 100644
index 0000000..5dc9029
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor.h
@@ -0,0 +1,68 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ActorClass ControllableSequentialTestExecutor
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_H_
+#define _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_H_
+
+#include "etDatatypes.h"
+#include "messaging/etMessage.h"
+
+/* include all referenced room classes */
+#include "etrice/api/testcontrol/PTestControl.h"
+
+
+typedef struct ControllableSequentialTestExecutor ControllableSequentialTestExecutor;
+
+/* const part of ActorClass (ROM) */
+typedef struct ControllableSequentialTestExecutor_const {
+ const char* instName;
+
+ /* simple ports */
+ const PTestControlPort exeControl;
+
+ /* data receive ports */
+
+ /* saps */
+
+ /* replicated ports */
+ const etReplPort control;
+
+ /* services */
+} ControllableSequentialTestExecutor_const;
+
+
+/* constant for state machine data */
+#define CONTROLLABLESEQUENTIALTESTEXECUTOR_HISTORY_SIZE 2
+
+/* variable part of ActorClass (RAM) */
+struct ControllableSequentialTestExecutor {
+ const ControllableSequentialTestExecutor_const* ET_CONST_MEMBER constData;
+
+ /* data send ports */
+
+ /*--------------------- attributes ---------------------*/
+ int16 current;
+ bool overallSuccess;
+
+
+ /* state machine variables */
+ etInt16 state;
+ etInt16 history[CONTROLLABLESEQUENTIALTESTEXECUTOR_HISTORY_SIZE];
+};
+
+void ControllableSequentialTestExecutor_init(ControllableSequentialTestExecutor* self);
+
+void ControllableSequentialTestExecutor_receiveMessage(void* self, const void* ifitem, const etMessage* msg);
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+
+
+#endif /* _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor_Utils.h
new file mode 100644
index 0000000..5bb4da7
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/ControllableSequentialTestExecutor_Utils.h
@@ -0,0 +1,44 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ActorClass ControllableSequentialTestExecutor
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_UTILS_H_
+#define _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_UTILS_H_
+
+#include "etrice/api/testcontrol/ControllableSequentialTestExecutor.h"
+
+/*
+ * access macros for ports, operations and attributes
+*/
+
+/* simple event ports */
+#define exeControl_done(data) PTestControlPort_done(&self->constData->exeControl, data)
+
+/* data receive ports */
+
+/* data send ports */
+
+/* saps */
+
+/* replicated event ports */
+#define ifitem_index (((etReplSubPort*)ifitem)->index)
+#define control_start_broadcast() PTestControlConjReplPort_start_broadcast(&self->constData->control)
+#define control_start(idx) PTestControlConjReplPort_start(&self->constData->control, idx)
+#define control_abort_broadcast() PTestControlConjReplPort_abort_broadcast(&self->constData->control)
+#define control_abort(idx) PTestControlConjReplPort_abort(&self->constData->control, idx)
+
+/* services */
+
+/* operations */
+
+/* attributes */
+#define current (self->current)
+#define overallSuccess (self->overallSuccess)
+
+/* port operations */
+
+#endif /* _ETRICE_API_TESTCONTROL_CONTROLLABLESEQUENTIALTESTEXECUTOR_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.c
new file mode 100644
index 0000000..7d5c5db
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.c
@@ -0,0 +1,119 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ProtocolClass PTestControl
+ *
+ */
+
+#include "PTestControl.h"
+#include "debugging/etMSCLogger.h"
+#include "PTestControl_Utils.h"
+
+
+/*--------------------- port methods */
+
+void PTestControlPort_done(const PTestControlPort* self, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlPort", "done")
+ etPort_sendMessage(self, PTestControl_OUT_done, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "done", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlReplPort_done_broadcast(const PTestControlReplPort* self, bool data__et) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlReplPort", "done")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTestControl_OUT_done, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "done", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlReplPort_done(const PTestControlReplPort* self, int idx__et, bool data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlReplPort", "done")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTestControl_OUT_done, sizeof(bool), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "done", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PTestControlReplPort_getReplication(const PTestControlReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+void PTestControlConjPort_start(const PTestControlConjPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjPort", "start")
+ etPort_sendMessage(self, PTestControl_IN_start, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "start", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlConjReplPort_start_broadcast(const PTestControlConjReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjReplPort", "start")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTestControl_IN_start, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "start", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlConjReplPort_start(const PTestControlConjReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjReplPort", "start")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTestControl_IN_start, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "start", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void PTestControlConjPort_abort(const PTestControlConjPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjPort", "abort")
+ etPort_sendMessage(self, PTestControl_IN_abort, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "abort", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlConjReplPort_abort_broadcast(const PTestControlConjReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjReplPort", "abort")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTestControl_IN_abort, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "abort", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTestControlConjReplPort_abort(const PTestControlConjReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTestControlConjReplPort", "abort")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTestControl_IN_abort, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "abort", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PTestControlConjReplPort_getReplication(const PTestControlConjReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+/*--------------------- debug helpers */
+
+/* message names as strings for debugging (generate MSC) */
+static const char* const PTestControl_messageStrings[] = {"MIN", "done","start", "abort", "MAX"};
+
+const char* PTestControl_getMessageString(int msg_id) {
+ if (msg_id<PTestControl_MSG_MIN || msg_id>PTestControl_MSG_MAX+1){
+ /* id out of range */
+ return "Message ID out of range";
+ }
+ else{
+ return PTestControl_messageStrings[msg_id];
+ }
+}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.h
new file mode 100644
index 0000000..dd9db71
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl.h
@@ -0,0 +1,59 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ProtocolClass PTestControl
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_PTESTCONTROL_H_
+#define _ETRICE_API_TESTCONTROL_PTESTCONTROL_H_
+
+#include "etDatatypes.h"
+#include "modelbase/etPort.h"
+
+
+/* include all referenced room classes */
+
+
+/* message IDs */
+enum PTestControl_msg_ids {
+ PTestControl_MSG_MIN = 0,
+ PTestControl_OUT_done = 1,
+ PTestControl_IN_start = 2,
+ PTestControl_IN_abort = 3,
+ PTestControl_MSG_MAX = 4
+};
+
+/*--------------------- port structs and methods */
+typedef etPort PTestControlPort;
+typedef etReplPort PTestControlReplPort;
+
+
+void PTestControlPort_done(const PTestControlPort* self, bool data);
+void PTestControlReplPort_done_broadcast(const PTestControlReplPort* self, bool data);
+void PTestControlReplPort_done(const PTestControlReplPort* self, int idx, bool data);
+
+
+etInt32 PTestControlReplPort_getReplication(const PTestControlReplPort* self);
+typedef etPort PTestControlConjPort;
+typedef etReplPort PTestControlConjReplPort;
+
+
+void PTestControlConjPort_start(const PTestControlConjPort* self);
+void PTestControlConjReplPort_start_broadcast(const PTestControlConjReplPort* self);
+void PTestControlConjReplPort_start(const PTestControlConjReplPort* self, int idx);
+void PTestControlConjPort_abort(const PTestControlConjPort* self);
+void PTestControlConjReplPort_abort_broadcast(const PTestControlConjReplPort* self);
+void PTestControlConjReplPort_abort(const PTestControlConjReplPort* self, int idx);
+
+
+etInt32 PTestControlConjReplPort_getReplication(const PTestControlConjReplPort* self);
+
+/*--------------------- debug helpers */
+
+/* get message string for message id */
+const char* PTestControl_getMessageString(int msg_id);
+
+
+#endif /* _ETRICE_API_TESTCONTROL_PTESTCONTROL_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl_Utils.h
new file mode 100644
index 0000000..0a8a3bd
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/PTestControl_Utils.h
@@ -0,0 +1,19 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PTestControl
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_PTESTCONTROL_UTILS_H_
+#define _ETRICE_API_TESTCONTROL_PTESTCONTROL_UTILS_H_
+
+#include "etrice/api/testcontrol/PTestControl.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+
+#endif /* _ETRICE_API_TESTCONTROL_PTESTCONTROL_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.c
new file mode 100644
index 0000000..3784ed4
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.c
@@ -0,0 +1,230 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ActorClass SequentialTestExecutor
+ *
+ */
+
+#include "SequentialTestExecutor.h"
+
+#include "modelbase/etActor.h"
+#include "debugging/etLogger.h"
+#include "debugging/etMSCLogger.h"
+#include "etUnit/etUnit.h"
+#include "base/etMemory.h"
+
+#include "etrice/api/testcontrol/PTestControl.h"
+
+#include "SequentialTestExecutor_Utils.h"
+
+/*--------------------- begin user code ---------------------*/
+#include "etUnit/etUnit.h"
+/*--------------------- end user code ---------------------*/
+
+/* interface item IDs */
+enum interface_items {
+ IFITEM_control = 1
+};
+
+/* state IDs */
+enum state_ids {
+ NO_STATE = 0,
+ STATE_TOP = 1,
+ STATE_execute = 2,
+ STATE_MAX = 3
+};
+
+/* transition chains */
+enum ChainIDs {
+ CHAIN_TRANS_INITIAL_TO__execute = 1,
+ CHAIN_TRANS_tr0_FROM_execute_TO_execute_BY_donecontrol_tr0 = 2
+};
+
+/* triggers */
+enum triggers {
+ POLLING = 0,
+ TRIG_control__done = IFITEM_control + EVT_SHIFT*PTestControl_OUT_done
+};
+
+/* state names */
+static const char* stateStrings[] = {"<no state>","<top>","execute"
+};
+
+static void setState(SequentialTestExecutor* self, etInt16 new_state) {
+ self->state = new_state;
+ ET_MSC_LOGGER_CHANGE_STATE(self->constData->instName, stateStrings[new_state]);
+}
+
+static etInt16 getState(SequentialTestExecutor* self) {
+ return self->state;
+}
+
+/* Entry and Exit Codes */
+static void entry_execute(SequentialTestExecutor* self) {
+ if(current < self->constData->control.size){
+ control_start(current);
+ } else {
+ etUnit_close();
+ etUnit_testFinished(0);
+ }
+}
+
+/* Action Codes */
+static void action_TRANS_INITIAL_TO__execute(SequentialTestExecutor* self) {
+ current = 0;
+ etUnit_open("log", "results");
+}
+static void action_TRANS_tr0_FROM_execute_TO_execute_BY_donecontrol_tr0(SequentialTestExecutor* self, const InterfaceItemBase* ifitem, bool transitionData) {
+ current++;
+}
+
+/* State Switch Methods */
+/**
+ * calls exit codes while exiting from the current state to one of its
+ * parent states while remembering the history
+ * @param current__et - the current state
+ * @param to - the final parent state
+ */
+static void exitTo(SequentialTestExecutor* self, etInt16 current__et, etInt16 to) {
+ while (current__et!=to) {
+ switch (current__et) {
+ case STATE_execute:
+ self->history[STATE_TOP] = STATE_execute;
+ current__et = STATE_TOP;
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+}
+
+/**
+ * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
+ * matching the trigger of this chain. The ID of the final state is returned
+ * @param chain__et - the chain ID
+ * @param generic_data__et - the generic data pointer
+ * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
+ */
+static etInt16 executeTransitionChain(SequentialTestExecutor* self, int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
+ switch (chain__et) {
+ case CHAIN_TRANS_INITIAL_TO__execute:
+ {
+ action_TRANS_INITIAL_TO__execute(self);
+ return STATE_execute;
+ }
+ case CHAIN_TRANS_tr0_FROM_execute_TO_execute_BY_donecontrol_tr0:
+ {
+ bool transitionData = *((bool*) generic_data__et);
+ action_TRANS_tr0_FROM_execute_TO_execute_BY_donecontrol_tr0(self, ifitem, transitionData);
+ return STATE_execute;
+ }
+ default:
+ /* should not occur */
+ break;
+ }
+ return NO_STATE;
+}
+
+/**
+ * calls entry codes while entering a state's history. The ID of the final leaf state is returned
+ * @param state__et - the state which is entered
+ * @return - the ID of the final leaf state
+ */
+static etInt16 enterHistory(SequentialTestExecutor* self, etInt16 state__et) {
+ etBool skip_entry__et = ET_FALSE;
+ if (state__et >= STATE_MAX) {
+ state__et = (etInt16) (state__et - STATE_MAX);
+ skip_entry__et = ET_TRUE;
+ }
+ while (ET_TRUE) {
+ switch (state__et) {
+ case STATE_execute:
+ if (!(skip_entry__et)) entry_execute(self);
+ /* in leaf state: return state id */
+ return STATE_execute;
+ case STATE_TOP:
+ state__et = self->history[STATE_TOP];
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ skip_entry__et = ET_FALSE;
+ }
+ /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
+}
+
+static void SequentialTestExecutor_executeInitTransition(SequentialTestExecutor* self) {
+ int chain__et = CHAIN_TRANS_INITIAL_TO__execute;
+ etInt16 next__et = executeTransitionChain(self, chain__et, NULL, NULL);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+}
+
+/* receiveEvent contains the main implementation of the FSM */
+static void SequentialTestExecutor_receiveEventInternal(SequentialTestExecutor* self, InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
+ int trigger__et = localId + EVT_SHIFT*evt;
+ int chain__et = NOT_CAUGHT;
+ etInt16 catching_state__et = NO_STATE;
+ ((void)trigger__et); /* avoids unused warning */
+
+ if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
+ switch (getState(self)) {
+ case STATE_execute:
+ switch(trigger__et) {
+ case TRIG_control__done:
+ {
+ chain__et = CHAIN_TRANS_tr0_FROM_execute_TO_execute_BY_donecontrol_tr0;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ if (chain__et != NOT_CAUGHT) {
+ exitTo(self, getState(self), catching_state__et);
+ {
+ etInt16 next__et = executeTransitionChain(self, chain__et, ifitem, generic_data__et);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+ }
+ }
+}
+static void SequentialTestExecutor_receiveEvent(SequentialTestExecutor* self, InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
+ int localId = (ifitem==NULL)? 0 : ifitem->localId;
+ SequentialTestExecutor_receiveEventInternal(self, ifitem, localId, evt, generic_data__et);
+}
+
+void SequentialTestExecutor_init(SequentialTestExecutor* self){
+ ET_MSC_LOGGER_SYNC_ENTRY("SequentialTestExecutor", "init")
+ self->state = STATE_TOP;
+ {
+ int i;
+ for (i=0; i<SEQUENTIALTESTEXECUTOR_HISTORY_SIZE; ++i)
+ self->history[i] = NO_STATE;
+ }
+ SequentialTestExecutor_executeInitTransition(self);
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void SequentialTestExecutor_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
+ ET_MSC_LOGGER_SYNC_ENTRY("SequentialTestExecutor", "_receiveMessage")
+ SequentialTestExecutor_receiveEvent((SequentialTestExecutor*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.h
new file mode 100644
index 0000000..516467d
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor.h
@@ -0,0 +1,66 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ActorClass SequentialTestExecutor
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_H_
+#define _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_H_
+
+#include "etDatatypes.h"
+#include "messaging/etMessage.h"
+
+/* include all referenced room classes */
+#include "etrice/api/testcontrol/PTestControl.h"
+
+
+typedef struct SequentialTestExecutor SequentialTestExecutor;
+
+/* const part of ActorClass (ROM) */
+typedef struct SequentialTestExecutor_const {
+ const char* instName;
+
+ /* simple ports */
+
+ /* data receive ports */
+
+ /* saps */
+
+ /* replicated ports */
+ const etReplPort control;
+
+ /* services */
+} SequentialTestExecutor_const;
+
+
+/* constant for state machine data */
+#define SEQUENTIALTESTEXECUTOR_HISTORY_SIZE 2
+
+/* variable part of ActorClass (RAM) */
+struct SequentialTestExecutor {
+ const SequentialTestExecutor_const* ET_CONST_MEMBER constData;
+
+ /* data send ports */
+
+ /*--------------------- attributes ---------------------*/
+ int16 current;
+
+
+ /* state machine variables */
+ etInt16 state;
+ etInt16 history[SEQUENTIALTESTEXECUTOR_HISTORY_SIZE];
+};
+
+void SequentialTestExecutor_init(SequentialTestExecutor* self);
+
+void SequentialTestExecutor_receiveMessage(void* self, const void* ifitem, const etMessage* msg);
+
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+
+
+#endif /* _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor_Utils.h
new file mode 100644
index 0000000..3a62331
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/testcontrol/SequentialTestExecutor_Utils.h
@@ -0,0 +1,42 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ActorClass SequentialTestExecutor
+ *
+ */
+
+#ifndef _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_UTILS_H_
+#define _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_UTILS_H_
+
+#include "etrice/api/testcontrol/SequentialTestExecutor.h"
+
+/*
+ * access macros for ports, operations and attributes
+*/
+
+/* simple event ports */
+
+/* data receive ports */
+
+/* data send ports */
+
+/* saps */
+
+/* replicated event ports */
+#define ifitem_index (((etReplSubPort*)ifitem)->index)
+#define control_start_broadcast() PTestControlConjReplPort_start_broadcast(&self->constData->control)
+#define control_start(idx) PTestControlConjReplPort_start(&self->constData->control, idx)
+#define control_abort_broadcast() PTestControlConjReplPort_abort_broadcast(&self->constData->control)
+#define control_abort(idx) PTestControlConjReplPort_abort(&self->constData->control, idx)
+
+/* services */
+
+/* operations */
+
+/* attributes */
+#define current (self->current)
+
+/* port operations */
+
+#endif /* _ETRICE_API_TESTCONTROL_SEQUENTIALTESTEXECUTOR_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.c
new file mode 100644
index 0000000..a9ed08a
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.c
@@ -0,0 +1,464 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ActorClass ATimerService
+ *
+ */
+
+#include "ATimerService.h"
+
+#include "modelbase/etActor.h"
+#include "debugging/etLogger.h"
+#include "debugging/etMSCLogger.h"
+#include "etUnit/etUnit.h"
+#include "base/etMemory.h"
+
+#include "etrice/api/timer/PTimer.h"
+#include "etrice/api/timer/PTimerSupervisionControl.h"
+
+#include "ATimerService_Utils.h"
+
+
+/* interface item IDs */
+enum interface_items {
+ IFITEM_timer = 1,
+ IFITEM_supervisionControl = 2
+};
+
+/* state IDs */
+enum state_ids {
+ NO_STATE = 0,
+ STATE_TOP = 1,
+ STATE_Operational = 2,
+ STATE_MAX = 3
+};
+
+/* transition chains */
+enum ChainIDs {
+ CHAIN_TRANS_INITIAL_TO__Operational = 1,
+ CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1 = 2,
+ CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3 = 3,
+ CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4 = 4,
+ CHAIN_TRANS_tr2_FROM_Operational_TO_Operational_BY_getTimerDeviationHighWaterMarksupervisionControl_tr2 = 5,
+ CHAIN_TRANS_tr5_FROM_Operational_TO_Operational_BY_restTimerDeviationHighWaterMarksupervisionControl_tr5 = 6
+};
+
+/* triggers */
+enum triggers {
+ POLLING = 0,
+ TRIG_timer__startTimer = IFITEM_timer + EVT_SHIFT*PTimer_IN_startTimer,
+ TRIG_timer__startTimeout = IFITEM_timer + EVT_SHIFT*PTimer_IN_startTimeout,
+ TRIG_timer__kill = IFITEM_timer + EVT_SHIFT*PTimer_IN_kill,
+ TRIG_supervisionControl__restTimerDeviationHighWaterMark = IFITEM_supervisionControl + EVT_SHIFT*PTimerSupervisionControl_IN_restTimerDeviationHighWaterMark,
+ TRIG_supervisionControl__getTimerDeviationHighWaterMark = IFITEM_supervisionControl + EVT_SHIFT*PTimerSupervisionControl_IN_getTimerDeviationHighWaterMark
+};
+
+/* state names */
+static const char* stateStrings[] = {"<no state>","<top>","Operational"
+};
+
+static void setState(ATimerService* self, etInt16 new_state) {
+ self->state = new_state;
+ ET_MSC_LOGGER_CHANGE_STATE(self->constData->instName, stateStrings[new_state]);
+}
+
+static etInt16 getState(ATimerService* self) {
+ return self->state;
+}
+
+/* Entry and Exit Codes */
+static void entry_Operational(ATimerService* self) {
+ /* prepare */
+}
+static void do_Operational(ATimerService* self) {
+ /* maintain timers */
+ etTimerControlBlock* temp;
+ etTime t;
+
+ getTimeFromTarget(&t);
+ while (usedTcbsRoot !=0 ){
+ if (isTimeGreater(&t,&(usedTcbsRoot->expTime))){
+ // maintain deviation hig water mark
+ subTime(&t, &(usedTcbsRoot->expTime));
+ if (isTimeGreater(&t,&timerDeviationHighWaterMark)){
+ timerDeviationHighWaterMark = t;
+ }
+ timer_timeout(usedTcbsRoot->portIdx);
+ temp=usedTcbsRoot;
+ usedTcbsRoot=usedTcbsRoot->next;
+ if((temp->pTime.sec==0)&&(temp->pTime.nSec==0)){
+ /* single shot timer */
+ returnTcb(temp);
+ }else{
+ /* periodic timer */
+ addTime(&temp->expTime,&temp->pTime);
+ putTcbToUsedList(temp);
+ }
+ }else{
+ break;
+ }
+ }
+}
+
+/* Action Codes */
+static void action_TRANS_INITIAL_TO__Operational(ATimerService* self) {
+ int i;
+ usedTcbsRoot=0;
+ freeTcbsRoot=&tcbs[0];
+ tcbs[ET_NB_OF_TCBS-1].next=0;
+ for (i=0;i<ET_NB_OF_TCBS-1;i++){
+ tcbs[i].next=&tcbs[i+1];
+ }
+
+ timerDeviationHighWaterMark.sec = 0;
+ timerDeviationHighWaterMark.nSec = 0;
+}
+static void action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(ATimerService* self, const InterfaceItemBase* ifitem, uint32 transitionData) {
+ etTimerControlBlock* timer = getTcb();
+ etTime t;
+ if (timer!= 0){
+ t.sec=transitionData/1000;
+ t.nSec=(transitionData%1000)*1000000L;
+ timer->pTime.sec = 0;
+ timer->pTime.nSec = 0;
+ timer->portIdx=((etReplSubPort*)ifitem)->index;
+ getTimeFromTarget(&(timer->expTime));
+ addTime(&(timer->expTime),&t);
+ putTcbToUsedList(timer);
+ }
+}
+static void action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(ATimerService* self, const InterfaceItemBase* ifitem, uint32 transitionData) {
+ etTimerControlBlock* timer = getTcb();
+ etTime t;
+ if (timer!= 0){
+ t.sec=transitionData/1000;
+ t.nSec=(transitionData%1000)*1000000L;
+ timer->pTime = t;
+ timer->portIdx=((etReplSubPort*)ifitem)->index;
+ getTimeFromTarget(&(timer->expTime));
+ addTime(&(timer->expTime),&t);
+ putTcbToUsedList(timer);
+ }
+}
+static void action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(ATimerService* self, const InterfaceItemBase* ifitem) {
+ removeTcbFromUsedList(((etReplSubPort*)ifitem)->index);
+}
+static void action_TRANS_tr2_FROM_Operational_TO_Operational_BY_getTimerDeviationHighWaterMarksupervisionControl_tr2(ATimerService* self, const InterfaceItemBase* ifitem) {
+ uint32 dt;
+
+ dt = timerDeviationHighWaterMark.nSec / 1000 + timerDeviationHighWaterMark.sec * 1000000;
+ supervisionControl_timerDeviationHighWaterMark(((etReplSubPort*)ifitem)->index, dt);
+}
+static void action_TRANS_tr5_FROM_Operational_TO_Operational_BY_restTimerDeviationHighWaterMarksupervisionControl_tr5(ATimerService* self, const InterfaceItemBase* ifitem) {
+ timerDeviationHighWaterMark.sec = 0;
+ timerDeviationHighWaterMark.nSec = 0;
+}
+
+/* State Switch Methods */
+/**
+ * calls exit codes while exiting from the current state to one of its
+ * parent states while remembering the history
+ * @param current__et - the current state
+ * @param to - the final parent state
+ */
+static void exitTo(ATimerService* self, etInt16 current__et, etInt16 to) {
+ while (current__et!=to) {
+ switch (current__et) {
+ case STATE_Operational:
+ self->history[STATE_TOP] = STATE_Operational;
+ current__et = STATE_TOP;
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+}
+
+/**
+ * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
+ * matching the trigger of this chain. The ID of the final state is returned
+ * @param chain__et - the chain ID
+ * @param generic_data__et - the generic data pointer
+ * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
+ */
+static etInt16 executeTransitionChain(ATimerService* self, int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
+ switch (chain__et) {
+ case CHAIN_TRANS_INITIAL_TO__Operational:
+ {
+ action_TRANS_INITIAL_TO__Operational(self);
+ return STATE_Operational;
+ }
+ case CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1:
+ {
+ uint32 transitionData = *((uint32*) generic_data__et);
+ action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(self, ifitem, transitionData);
+ return STATE_Operational;
+ }
+ case CHAIN_TRANS_tr2_FROM_Operational_TO_Operational_BY_getTimerDeviationHighWaterMarksupervisionControl_tr2:
+ {
+ action_TRANS_tr2_FROM_Operational_TO_Operational_BY_getTimerDeviationHighWaterMarksupervisionControl_tr2(self, ifitem);
+ return STATE_Operational;
+ }
+ case CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3:
+ {
+ uint32 transitionData = *((uint32*) generic_data__et);
+ action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(self, ifitem, transitionData);
+ return STATE_Operational;
+ }
+ case CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
+ {
+ action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(self, ifitem);
+ return STATE_Operational;
+ }
+ case CHAIN_TRANS_tr5_FROM_Operational_TO_Operational_BY_restTimerDeviationHighWaterMarksupervisionControl_tr5:
+ {
+ action_TRANS_tr5_FROM_Operational_TO_Operational_BY_restTimerDeviationHighWaterMarksupervisionControl_tr5(self, ifitem);
+ return STATE_Operational;
+ }
+ default:
+ /* should not occur */
+ break;
+ }
+ return NO_STATE;
+}
+
+/**
+ * calls entry codes while entering a state's history. The ID of the final leaf state is returned
+ * @param state__et - the state which is entered
+ * @return - the ID of the final leaf state
+ */
+static etInt16 enterHistory(ATimerService* self, etInt16 state__et) {
+ etBool skip_entry__et = ET_FALSE;
+ if (state__et >= STATE_MAX) {
+ state__et = (etInt16) (state__et - STATE_MAX);
+ skip_entry__et = ET_TRUE;
+ }
+ while (ET_TRUE) {
+ switch (state__et) {
+ case STATE_Operational:
+ if (!(skip_entry__et)) entry_Operational(self);
+ /* in leaf state: return state id */
+ return STATE_Operational;
+ case STATE_TOP:
+ state__et = self->history[STATE_TOP];
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ skip_entry__et = ET_FALSE;
+ }
+ /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
+}
+
+static void ATimerService_executeInitTransition(ATimerService* self) {
+ int chain__et = CHAIN_TRANS_INITIAL_TO__Operational;
+ etInt16 next__et = executeTransitionChain(self, chain__et, NULL, NULL);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+}
+
+/* receiveEvent contains the main implementation of the FSM */
+static void ATimerService_receiveEventInternal(ATimerService* self, InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
+ int trigger__et = (ifitem==NULL)? POLLING : localId + EVT_SHIFT*evt;
+ int chain__et = NOT_CAUGHT;
+ etInt16 catching_state__et = NO_STATE;
+ ((void)trigger__et); /* avoids unused warning */
+
+ if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
+ switch (getState(self)) {
+ case STATE_Operational:
+ switch(trigger__et) {
+ case POLLING:
+ do_Operational(self);
+ break;
+ case TRIG_supervisionControl__getTimerDeviationHighWaterMark:
+ {
+ chain__et = CHAIN_TRANS_tr2_FROM_Operational_TO_Operational_BY_getTimerDeviationHighWaterMarksupervisionControl_tr2;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ case TRIG_supervisionControl__restTimerDeviationHighWaterMark:
+ {
+ chain__et = CHAIN_TRANS_tr5_FROM_Operational_TO_Operational_BY_restTimerDeviationHighWaterMarksupervisionControl_tr5;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ case TRIG_timer__kill:
+ {
+ chain__et = CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ case TRIG_timer__startTimeout:
+ {
+ chain__et = CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ case TRIG_timer__startTimer:
+ {
+ chain__et = CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3;
+ catching_state__et = STATE_TOP;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ if (chain__et != NOT_CAUGHT) {
+ exitTo(self, getState(self), catching_state__et);
+ {
+ etInt16 next__et = executeTransitionChain(self, chain__et, ifitem, generic_data__et);
+ next__et = enterHistory(self, next__et);
+ setState(self, next__et);
+ }
+ }
+}
+static void ATimerService_receiveEvent(ATimerService* self, InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
+ int localId = (ifitem==NULL)? 0 : ifitem->localId;
+ ATimerService_receiveEventInternal(self, ifitem, localId, evt, generic_data__et);
+}
+
+void ATimerService_init(ATimerService* self){
+ ET_MSC_LOGGER_SYNC_ENTRY("ATimerService", "init")
+ self->state = STATE_TOP;
+ {
+ int i;
+ for (i=0; i<ATIMERSERVICE_HISTORY_SIZE; ++i)
+ self->history[i] = NO_STATE;
+ }
+ ATimerService_executeInitTransition(self);
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void ATimerService_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
+ ET_MSC_LOGGER_SYNC_ENTRY("ATimerService", "_receiveMessage")
+ ATimerService_receiveEvent((ATimerService*) self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
+
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void ATimerService_execute(ATimerService* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("ATimerService", "_execute")
+
+ ATimerService_receiveEvent(self, NULL, 0, NULL);
+
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+ void ATimerService_returnTcb(ATimerService* self, etTimerControlBlock* block) {
+ block->next=freeTcbsRoot;
+ freeTcbsRoot=block;
+}
+ void ATimerService_putTcbToUsedList(ATimerService* self, etTimerControlBlock* block) {
+ etTimerControlBlock* temp=usedTcbsRoot;
+ etTimerControlBlock* temp2=usedTcbsRoot;
+
+ if (temp==0){
+ /* list empty put new block to root */
+ block->next=0;
+ usedTcbsRoot=block;
+ return;
+ }
+
+ while(1){
+ if (temp != 0){
+ if (isTimeGreater(&block->expTime,&temp->expTime)){
+ /* try next position */
+ temp2=temp;
+ temp=temp->next;
+ }else{
+ /* right position found */
+ block->next=temp;
+ if(temp==usedTcbsRoot){
+ usedTcbsRoot=block;
+ }else{
+ temp2->next=block;
+ }
+ return;
+ }
+ }else{
+ /* end of list reached */
+ block->next=0;
+ temp2->next=block;
+ return;
+ }
+ }
+}
+ void ATimerService_addTime(ATimerService* self, etTime* t1, etTime* t2) {
+ t1->sec += t2->sec;
+ t1->nSec += t2->nSec;
+ while(t1->nSec >= 1000000000L){
+ t1->sec++;
+ t1->nSec-=1000000000L;
+ }
+}
+ etTimerControlBlock* ATimerService_getTcb(ATimerService* self) {
+ etTimerControlBlock* temp = freeTcbsRoot;
+
+ if(freeTcbsRoot!=0) {
+ freeTcbsRoot=freeTcbsRoot->next;
+ temp->next=0;
+ }
+ return temp;
+}
+ void ATimerService_removeTcbFromUsedList(ATimerService* self, int32 idx) {
+ etTimerControlBlock* temp=usedTcbsRoot;
+ etTimerControlBlock* temp2=usedTcbsRoot;
+
+ if (temp==0) return;
+
+ if (usedTcbsRoot->portIdx == idx){
+ /* element found, the first one */
+ usedTcbsRoot = usedTcbsRoot->next;
+ returnTcb(temp);
+ return;
+ }
+
+ temp=temp->next;
+ while(temp!=0){
+ if(temp->portIdx==idx){
+ temp2->next=temp->next;
+ returnTcb(temp);
+ return;
+ }else{
+ /* try next */
+ temp2=temp;
+ temp=temp->next;
+ }
+ }
+}
+ bool ATimerService_isTimeGreater(ATimerService* self, etTime* t1, etTime* t2) {
+ if (t1->sec > t2->sec) return ET_TRUE;
+ if (t1->sec < t2->sec) return ET_FALSE;
+ if (t1->nSec > t2->nSec) return ET_TRUE;
+ return ET_FALSE;
+}
+ void ATimerService_subTime(ATimerService* self, etTime* t1, etTime* t2) {
+ t1->sec -= t2->sec;
+
+ while(t2->nSec > t1->nSec){
+ t1->sec--;
+ t1->nSec += 1000000000L;
+ }
+
+ t1->nSec -= t2->nSec;
+
+ while(t1->nSec >= 1000000000L){
+ t1->sec++;
+ t1->nSec-=1000000000L;
+ }
+}
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.h
new file mode 100644
index 0000000..16606ae
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService.h
@@ -0,0 +1,92 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ActorClass ATimerService
+ *
+ */
+
+#ifndef _ETRICE_API_TIMER_ATIMERSERVICE_H_
+#define _ETRICE_API_TIMER_ATIMERSERVICE_H_
+
+#include "etDatatypes.h"
+#include "messaging/etMessage.h"
+
+/* include all referenced room classes */
+#include "etrice/api/timer/PTimer.h"
+#include "etrice/api/timer/PTimerSupervisionControl.h"
+
+/*--------------------- begin user code ---------------------*/
+#include "osal/etTime.h"
+#define ET_NB_OF_TCBS 70
+typedef struct etTCB etTimerControlBlock;
+struct etTCB {
+ etTime expTime;
+ etTime pTime;
+ int32 portIdx;
+ etTimerControlBlock* next;
+ };
+
+/*--------------------- end user code ---------------------*/
+
+typedef struct ATimerService ATimerService;
+
+/* const part of ActorClass (ROM) */
+typedef struct ATimerService_const {
+ const char* instName;
+
+ /* simple ports */
+
+ /* data receive ports */
+
+ /* saps */
+
+ /* replicated ports */
+
+ /* services */
+ const etReplPort timer;
+ const etReplPort supervisionControl;
+} ATimerService_const;
+
+
+/* constant for state machine data */
+#define ATIMERSERVICE_HISTORY_SIZE 2
+
+/* variable part of ActorClass (RAM) */
+struct ATimerService {
+ const ATimerService_const* ET_CONST_MEMBER constData;
+
+ /* data send ports */
+
+ /*--------------------- attributes ---------------------*/
+ etTimerControlBlock tcbs[70]
+ ;
+ etTimerControlBlock* usedTcbsRoot;
+ etTimerControlBlock* freeTcbsRoot;
+ etTime timerDeviationHighWaterMark;
+
+
+ /* state machine variables */
+ etInt16 state;
+ etInt16 history[ATIMERSERVICE_HISTORY_SIZE];
+};
+
+void ATimerService_init(ATimerService* self);
+
+void ATimerService_receiveMessage(void* self, const void* ifitem, const etMessage* msg);
+
+void ATimerService_execute(ATimerService* self);
+
+/*--------------------- user constructor/destructor ---------------------*/
+
+/*--------------------- operations ---------------------*/
+ void ATimerService_returnTcb(ATimerService* self, etTimerControlBlock* block);
+ void ATimerService_putTcbToUsedList(ATimerService* self, etTimerControlBlock* block);
+ void ATimerService_addTime(ATimerService* self, etTime* t1, etTime* t2);
+ etTimerControlBlock* ATimerService_getTcb(ATimerService* self);
+ void ATimerService_removeTcbFromUsedList(ATimerService* self, int32 idx);
+ bool ATimerService_isTimeGreater(ATimerService* self, etTime* t1, etTime* t2);
+ void ATimerService_subTime(ATimerService* self, etTime* t1, etTime* t2);
+
+
+#endif /* _ETRICE_API_TIMER_ATIMERSERVICE_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService_Utils.h
new file mode 100644
index 0000000..2caa256
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/ATimerService_Utils.h
@@ -0,0 +1,51 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ActorClass ATimerService
+ *
+ */
+
+#ifndef _ETRICE_API_TIMER_ATIMERSERVICE_UTILS_H_
+#define _ETRICE_API_TIMER_ATIMERSERVICE_UTILS_H_
+
+#include "etrice/api/timer/ATimerService.h"
+
+/*
+ * access macros for ports, operations and attributes
+*/
+
+/* simple event ports */
+
+/* data receive ports */
+
+/* data send ports */
+
+/* saps */
+
+/* replicated event ports */
+
+/* services */
+#define timer_timeout_broadcast() PTimerReplPort_timeout_broadcast(&self->constData->timer)
+#define timer_timeout(idx) PTimerReplPort_timeout(&self->constData->timer, idx)
+#define supervisionControl_timerDeviationHighWaterMark_broadcast(data) PTimerSupervisionControlReplPort_timerDeviationHighWaterMark_broadcast(&self->constData->supervisionControl, data)
+#define supervisionControl_timerDeviationHighWaterMark(idx, data) PTimerSupervisionControlReplPort_timerDeviationHighWaterMark(&self->constData->supervisionControl, idx, data)
+
+/* operations */
+#define returnTcb(block) ATimerService_returnTcb(self, block)
+#define putTcbToUsedList(block) ATimerService_putTcbToUsedList(self, block)
+#define addTime(t1, t2) ATimerService_addTime(self, t1, t2)
+#define getTcb() ATimerService_getTcb(self)
+#define removeTcbFromUsedList(idx) ATimerService_removeTcbFromUsedList(self, idx)
+#define isTimeGreater(t1, t2) ATimerService_isTimeGreater(self, t1, t2)
+#define subTime(t1, t2) ATimerService_subTime(self, t1, t2)
+
+/* attributes */
+#define tcbs (self->tcbs)
+#define usedTcbsRoot (self->usedTcbsRoot)
+#define freeTcbsRoot (self->freeTcbsRoot)
+#define timerDeviationHighWaterMark (self->timerDeviationHighWaterMark)
+
+/* port operations */
+
+#endif /* _ETRICE_API_TIMER_ATIMERSERVICE_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.c
similarity index 95%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.c
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.c
index 1f6395e..efea82c 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.c
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.c
@@ -9,6 +9,10 @@
#include "debugging/etMSCLogger.h"
#include "PTimer_Utils.h"
+/*--------------------- begin user code ---------------------*/
+#define ET_TIMER_RUNNING 0x01
+#define ET_TIMER_PERIODIC 0x02
+/*--------------------- end user code ---------------------*/
/*--------------------- port methods */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.h
similarity index 81%
rename from runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.h
rename to runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.h
index faeea09..0652b13 100644
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer.h
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer.h
@@ -5,16 +5,12 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_
-#define _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_
+#ifndef _ETRICE_API_TIMER_PTIMER_H_
+#define _ETRICE_API_TIMER_PTIMER_H_
#include "etDatatypes.h"
#include "modelbase/etPort.h"
-/*--------------------- begin user code ---------------------*/
-#define ET_TIMER_RUNNING 0x01
-#define ET_TIMER_PERIODIC 0x02
-/*--------------------- end user code ---------------------*/
/* include all referenced room classes */
@@ -69,9 +65,6 @@
/* get message string for message id */
const char* PTimer_getMessageString(int msg_id);
-/*--------------------- begin user code ---------------------*/
-/*uc2*/
-/*--------------------- end user code ---------------------*/
-#endif /* _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_ */
+#endif /* _ETRICE_API_TIMER_PTIMER_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.c
new file mode 100644
index 0000000..3451f65
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.c
@@ -0,0 +1,119 @@
+/**
+ * @author generated by eTrice
+ *
+ * Source File of ProtocolClass PTimerSupervisionControl
+ *
+ */
+
+#include "PTimerSupervisionControl.h"
+#include "debugging/etMSCLogger.h"
+#include "PTimerSupervisionControl_Utils.h"
+
+
+/*--------------------- port methods */
+
+void PTimerSupervisionControlPort_timerDeviationHighWaterMark(const PTimerSupervisionControlPort* self, uint32 data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlPort", "timerDeviationHighWaterMark")
+ etPort_sendMessage(self, PTimerSupervisionControl_OUT_timerDeviationHighWaterMark, sizeof(uint32), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "timerDeviationHighWaterMark", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlReplPort_timerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlReplPort* self, uint32 data__et) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlReplPort", "timerDeviationHighWaterMark")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTimerSupervisionControl_OUT_timerDeviationHighWaterMark, sizeof(uint32), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "timerDeviationHighWaterMark", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlReplPort_timerDeviationHighWaterMark(const PTimerSupervisionControlReplPort* self, int idx__et, uint32 data__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlReplPort", "timerDeviationHighWaterMark")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTimerSupervisionControl_OUT_timerDeviationHighWaterMark, sizeof(uint32), &data__et);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "timerDeviationHighWaterMark", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PTimerSupervisionControlReplPort_getReplication(const PTimerSupervisionControlReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+void PTimerSupervisionControlConjPort_restTimerDeviationHighWaterMark(const PTimerSupervisionControlConjPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjPort", "restTimerDeviationHighWaterMark")
+ etPort_sendMessage(self, PTimerSupervisionControl_IN_restTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "restTimerDeviationHighWaterMark", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlConjReplPort_restTimerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlConjReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjReplPort", "restTimerDeviationHighWaterMark")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTimerSupervisionControl_IN_restTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "restTimerDeviationHighWaterMark", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlConjReplPort_restTimerDeviationHighWaterMark(const PTimerSupervisionControlConjReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjReplPort", "restTimerDeviationHighWaterMark")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTimerSupervisionControl_IN_restTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "restTimerDeviationHighWaterMark", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+
+void PTimerSupervisionControlConjPort_getTimerDeviationHighWaterMark(const PTimerSupervisionControlConjPort* self) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjPort", "getTimerDeviationHighWaterMark")
+ etPort_sendMessage(self, PTimerSupervisionControl_IN_getTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(self->myInstName, "getTimerDeviationHighWaterMark", self->peerInstName)
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlConjReplPort_getTimerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlConjReplPort* self) {
+ int i;
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjReplPort", "getTimerDeviationHighWaterMark")
+ for (i=0; i<((etReplPort*)self)->size; ++i) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[i].port), PTimerSupervisionControl_IN_getTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[i].port.myInstName, "getTimerDeviationHighWaterMark", ((etReplPort*)self)->ports[i].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+void PTimerSupervisionControlConjReplPort_getTimerDeviationHighWaterMark(const PTimerSupervisionControlConjReplPort* self, int idx__et) {
+ ET_MSC_LOGGER_SYNC_ENTRY("PTimerSupervisionControlConjReplPort", "getTimerDeviationHighWaterMark")
+ if (0<=idx__et && idx__et<((etReplPort*)self)->size) {
+ etPort_sendMessage((&((etReplPort*)self)->ports[idx__et].port), PTimerSupervisionControl_IN_getTimerDeviationHighWaterMark, 0, NULL);
+ ET_MSC_LOGGER_ASYNC_OUT(((etReplPort*)self)->ports[idx__et].port.myInstName, "getTimerDeviationHighWaterMark", ((etReplPort*)self)->ports[idx__et].port.peerInstName)
+ }
+ ET_MSC_LOGGER_SYNC_EXIT
+}
+
+etInt32 PTimerSupervisionControlConjReplPort_getReplication(const PTimerSupervisionControlConjReplPort* self) {
+ return ((etReplPort*)self)->size;
+}
+
+
+
+/*--------------------- debug helpers */
+
+/* message names as strings for debugging (generate MSC) */
+static const char* const PTimerSupervisionControl_messageStrings[] = {"MIN", "timerDeviationHighWaterMark","restTimerDeviationHighWaterMark", "getTimerDeviationHighWaterMark", "MAX"};
+
+const char* PTimerSupervisionControl_getMessageString(int msg_id) {
+ if (msg_id<PTimerSupervisionControl_MSG_MIN || msg_id>PTimerSupervisionControl_MSG_MAX+1){
+ /* id out of range */
+ return "Message ID out of range";
+ }
+ else{
+ return PTimerSupervisionControl_messageStrings[msg_id];
+ }
+}
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.h
new file mode 100644
index 0000000..7e15d1d
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl.h
@@ -0,0 +1,59 @@
+/**
+ * @author generated by eTrice
+ *
+ * Header File of ProtocolClass PTimerSupervisionControl
+ *
+ */
+
+#ifndef _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_H_
+#define _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_H_
+
+#include "etDatatypes.h"
+#include "modelbase/etPort.h"
+
+
+/* include all referenced room classes */
+
+
+/* message IDs */
+enum PTimerSupervisionControl_msg_ids {
+ PTimerSupervisionControl_MSG_MIN = 0,
+ PTimerSupervisionControl_OUT_timerDeviationHighWaterMark = 1,
+ PTimerSupervisionControl_IN_restTimerDeviationHighWaterMark = 2,
+ PTimerSupervisionControl_IN_getTimerDeviationHighWaterMark = 3,
+ PTimerSupervisionControl_MSG_MAX = 4
+};
+
+/*--------------------- port structs and methods */
+typedef etPort PTimerSupervisionControlPort;
+typedef etReplPort PTimerSupervisionControlReplPort;
+
+
+void PTimerSupervisionControlPort_timerDeviationHighWaterMark(const PTimerSupervisionControlPort* self, uint32 data);
+void PTimerSupervisionControlReplPort_timerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlReplPort* self, uint32 data);
+void PTimerSupervisionControlReplPort_timerDeviationHighWaterMark(const PTimerSupervisionControlReplPort* self, int idx, uint32 data);
+
+
+etInt32 PTimerSupervisionControlReplPort_getReplication(const PTimerSupervisionControlReplPort* self);
+typedef etPort PTimerSupervisionControlConjPort;
+typedef etReplPort PTimerSupervisionControlConjReplPort;
+
+
+void PTimerSupervisionControlConjPort_restTimerDeviationHighWaterMark(const PTimerSupervisionControlConjPort* self);
+void PTimerSupervisionControlConjReplPort_restTimerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlConjReplPort* self);
+void PTimerSupervisionControlConjReplPort_restTimerDeviationHighWaterMark(const PTimerSupervisionControlConjReplPort* self, int idx);
+void PTimerSupervisionControlConjPort_getTimerDeviationHighWaterMark(const PTimerSupervisionControlConjPort* self);
+void PTimerSupervisionControlConjReplPort_getTimerDeviationHighWaterMark_broadcast(const PTimerSupervisionControlConjReplPort* self);
+void PTimerSupervisionControlConjReplPort_getTimerDeviationHighWaterMark(const PTimerSupervisionControlConjReplPort* self, int idx);
+
+
+etInt32 PTimerSupervisionControlConjReplPort_getReplication(const PTimerSupervisionControlConjReplPort* self);
+
+/*--------------------- debug helpers */
+
+/* get message string for message id */
+const char* PTimerSupervisionControl_getMessageString(int msg_id);
+
+
+#endif /* _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl_Utils.h
new file mode 100644
index 0000000..ba89378
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimerSupervisionControl_Utils.h
@@ -0,0 +1,19 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PTimerSupervisionControl
+ *
+ */
+
+#ifndef _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_UTILS_H_
+#define _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_UTILS_H_
+
+#include "etrice/api/timer/PTimerSupervisionControl.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+
+#endif /* _ETRICE_API_TIMER_PTIMERSUPERVISIONCONTROL_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer_Utils.h
new file mode 100644
index 0000000..c287a9f
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.c/src-gen/etrice/api/timer/PTimer_Utils.h
@@ -0,0 +1,25 @@
+/**
+ * @author generated by eTrice
+ *
+ * Utils File of ProtocolClass PTimer
+ *
+ */
+
+#ifndef _ETRICE_API_TIMER_PTIMER_UTILS_H_
+#define _ETRICE_API_TIMER_PTIMER_UTILS_H_
+
+#include "etrice/api/timer/PTimer.h"
+
+/*
+ * access macros for operations and attributes
+*/
+
+/* conjugate port class */
+
+/* operations */
+
+/* attributes */
+#define status (((PTimerConjPort_var*)(self->varData))->status)
+
+#endif /* _ETRICE_API_TIMER_PTIMER_UTILS_H_ */
+
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl_Utils.h
deleted file mode 100644
index 72ec2d8..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/DTcpControl_Utils.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Utils File of DataClass DTcpControl
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_UTILS_H_
-
-#include "room/basic/service/tcp/DTcpControl.h"
-
-/*
- * access macros for operations and attributes
-*/
-
-/* operations */
-
-/* attributes */
-#define IPAddr (self->IPAddr)
-#define TcpPort (self->TcpPort)
-
-#endif /* _ROOM_BASIC_SERVICE_TCP_DTCPCONTROL_UTILS_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl_Utils.h
deleted file mode 100644
index 06b3b77..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpControl_Utils.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Utils File of ProtocolClass PTcpControl
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_UTILS_H_
-
-#include "room/basic/service/tcp/PTcpControl.h"
-
-/*
- * access macros for operations and attributes
-*/
-
-
-#endif /* _ROOM_BASIC_SERVICE_TCP_PTCPCONTROL_UTILS_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload_Utils.h
deleted file mode 100644
index 260b9e6..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/tcp/PTcpPayload_Utils.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Utils File of ProtocolClass PTcpPayload
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_UTILS_H_
-
-#include "room/basic/service/tcp/PTcpPayload.h"
-
-/*
- * access macros for operations and attributes
-*/
-
-
-#endif /* _ROOM_BASIC_SERVICE_TCP_PTCPPAYLOAD_UTILS_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.c b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.c
deleted file mode 100644
index d164a2c..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.c
+++ /dev/null
@@ -1,406 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Source File of ActorClass ATimingService
- *
- */
-
-#include "ATimingService.h"
-
-#include "modelbase/etActor.h"
-#include "debugging/etLogger.h"
-#include "debugging/etMSCLogger.h"
-#include "etUnit/etUnit.h"
-#include "base/etMemory.h"
-
-#include "room/basic/service/timing/PTimer.h"
-
-#include "ATimingService_Utils.h"
-
-/*--------------------- begin user code ---------------------*/
-/*uc3*/
-/*--------------------- end user code ---------------------*/
-
-/* interface item IDs */
-enum interface_items {
- IFITEM_timer = 1
-};
-
-/* state IDs */
-enum state_ids {
- NO_STATE = 0,
- STATE_TOP = 1,
- STATE_Operational = 2,
- STATE_MAX = 3
-};
-
-/* transition chains */
-enum ChainIDs {
- CHAIN_TRANS_INITIAL_TO__Operational = 1,
- CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1 = 2,
- CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3 = 3,
- CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4 = 4
-};
-
-/* triggers */
-enum triggers {
- POLLING = 0,
- TRIG_timer__startTimer = IFITEM_timer + EVT_SHIFT*PTimer_IN_startTimer,
- TRIG_timer__startTimeout = IFITEM_timer + EVT_SHIFT*PTimer_IN_startTimeout,
- TRIG_timer__kill = IFITEM_timer + EVT_SHIFT*PTimer_IN_kill
-};
-
-/* state names */
-static char* stateStrings[] = {"<no state>","<top>","Operational"
-};
-
-static void setState(ATimingService* self, etInt16 new_state) {
- self->state = new_state;
- ET_MSC_LOGGER_CHANGE_STATE(self->constData->instName, stateStrings[new_state]);
-}
-
-static etInt16 getState(ATimingService* self) {
- return self->state;
-}
-
-/* Entry and Exit Codes */
-static void entry_Operational(ATimingService* self) {
- /* prepare */
-}
-static void do_Operational(ATimingService* self) {
- /* maintain timers */
- etTimerControlBlock* temp;
- etTime t;
-
- getTimeFromTarget(&t);
- while (usedTcbsRoot !=0 ){
- if (isTimeGreater(&t,&(usedTcbsRoot->expTime))){
- timer_timeout(usedTcbsRoot->portIdx);
- temp=usedTcbsRoot;
- usedTcbsRoot=usedTcbsRoot->next;
- if((temp->pTime.sec==0)&&(temp->pTime.nSec==0)){
- /* single shot timer */
- returnTcb(temp);
- }else{
- /* periodic timer */
- addTime(&temp->expTime,&temp->pTime);
- putTcbToUsedList(temp);
- }
- }else{
- break;
- }
- }
-}
-
-/* Action Codes */
-static void action_TRANS_INITIAL_TO__Operational(ATimingService* self) {
- int i;
- usedTcbsRoot=0;
- freeTcbsRoot=&tcbs[0];
- tcbs[ET_NB_OF_TCBS-1].next=0;
- for (i=0;i<ET_NB_OF_TCBS-1;i++){
- tcbs[i].next=&tcbs[i+1];
- }
-}
-static void action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(ATimingService* self, const InterfaceItemBase* ifitem, uint32 transitionData) {
- etTimerControlBlock* transitionDatar = getTcb();
- etTime t;
- if (transitionDatar!= 0){
- t.sec=transitionData/1000;
- t.nSec=(transitionData%1000)*1000000L;
- transitionDatar->pTime.sec = 0;
- transitionDatar->pTime.nSec = 0;
- transitionDatar->portIdx=((etReplSubPort*)ifitem)->index;
- getTimeFromTarget(&(transitionDatar->expTime));
- addTime(&(transitionDatar->expTime),&t);
- putTcbToUsedList(transitionDatar);
- }
-}
-static void action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(ATimingService* self, const InterfaceItemBase* ifitem, uint32 transitionData) {
- etTimerControlBlock* transitionDatar = getTcb();
- etTime t;
- if (transitionDatar!= 0){
- t.sec=transitionData/1000;
- t.nSec=(transitionData%1000)*1000000L;
- transitionDatar->pTime = t;
- transitionDatar->portIdx=((etReplSubPort*)ifitem)->index;
- getTimeFromTarget(&(transitionDatar->expTime));
- addTime(&(transitionDatar->expTime),&t);
- putTcbToUsedList(transitionDatar);
- }
-}
-static void action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(ATimingService* self, const InterfaceItemBase* ifitem) {
- removeTcbFromUsedList(((etReplSubPort*)ifitem)->index);
-}
-
-/* State Switch Methods */
-/**
- * calls exit codes while exiting from the current state to one of its
- * parent states while remembering the history
- * @param current__et - the current state
- * @param to - the final parent state
- */
-static void exitTo(ATimingService* self, etInt16 current__et, etInt16 to) {
- while (current__et!=to) {
- switch (current__et) {
- case STATE_Operational:
- self->history[STATE_TOP] = STATE_Operational;
- current__et = STATE_TOP;
- break;
- default:
- /* should not occur */
- break;
- }
- }
-}
-
-/**
- * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
- * matching the trigger of this chain. The ID of the final state is returned
- * @param chain__et - the chain ID
- * @param generic_data__et - the generic data pointer
- * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
- */
-static etInt16 executeTransitionChain(ATimingService* self, int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
- switch (chain__et) {
- case CHAIN_TRANS_INITIAL_TO__Operational:
- {
- action_TRANS_INITIAL_TO__Operational(self);
- return STATE_Operational;
- }
- case CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1:
- {
- uint32 transitionData = *((uint32*) generic_data__et);
- action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(self, ifitem, transitionData);
- return STATE_Operational;
- }
- case CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3:
- {
- uint32 transitionData = *((uint32*) generic_data__et);
- action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(self, ifitem, transitionData);
- return STATE_Operational;
- }
- case CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
- {
- action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(self, ifitem);
- return STATE_Operational;
- }
- default:
- /* should not occur */
- break;
- }
- return NO_STATE;
-}
-
-/**
- * calls entry codes while entering a state's history. The ID of the final leaf state is returned
- * @param state__et - the state which is entered
- * @return - the ID of the final leaf state
- */
-static etInt16 enterHistory(ATimingService* self, etInt16 state__et) {
- etBool skip_entry__et = ET_FALSE;
- if (state__et >= STATE_MAX) {
- state__et = (etInt16) (state__et - STATE_MAX);
- skip_entry__et = ET_TRUE;
- }
- while (ET_TRUE) {
- switch (state__et) {
- case STATE_Operational:
- if (!(skip_entry__et)) entry_Operational(self);
- /* in leaf state: return state id */
- return STATE_Operational;
- case STATE_TOP:
- state__et = self->history[STATE_TOP];
- break;
- default:
- /* should not occur */
- break;
- }
- skip_entry__et = ET_FALSE;
- }
- /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
-}
-
-static void ATimingService_executeInitTransition(ATimingService* self) {
- int chain__et = CHAIN_TRANS_INITIAL_TO__Operational;
- etInt16 next__et = executeTransitionChain(self, chain__et, NULL, NULL);
- next__et = enterHistory(self, next__et);
- setState(self, next__et);
-}
-
-/* receiveEvent contains the main implementation of the FSM */
-static void ATimingService_receiveEventInternal(ATimingService* self, InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
- int trigger__et = (ifitem==NULL)? POLLING : localId + EVT_SHIFT*evt;
- int chain__et = NOT_CAUGHT;
- etInt16 catching_state__et = NO_STATE;
- ((void)trigger__et); /* avoids unused warning */
-
- if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
- switch (getState(self)) {
- case STATE_Operational:
- switch(trigger__et) {
- case POLLING:
- do_Operational(self);
- break;
- case TRIG_timer__kill:
- {
- chain__et = CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
- catching_state__et = STATE_TOP;
- }
- break;
- case TRIG_timer__startTimeout:
- {
- chain__et = CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1;
- catching_state__et = STATE_TOP;
- }
- break;
- case TRIG_timer__startTimer:
- {
- chain__et = CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3;
- catching_state__et = STATE_TOP;
- }
- break;
- default:
- /* should not occur */
- break;
- }
- break;
- default:
- /* should not occur */
- break;
- }
- }
- if (chain__et != NOT_CAUGHT) {
- exitTo(self, getState(self), catching_state__et);
- {
- etInt16 next__et = executeTransitionChain(self, chain__et, ifitem, generic_data__et);
- next__et = enterHistory(self, next__et);
- setState(self, next__et);
- }
- }
-}
-static void ATimingService_receiveEvent(ATimingService* self, InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
- int localId = (ifitem==NULL)? 0 : ifitem->localId;
- ATimingService_receiveEventInternal(self, ifitem, localId, evt, generic_data__et);
-}
-
-void ATimingService_init(ATimingService* self){
- ET_MSC_LOGGER_SYNC_ENTRY("ATimingService", "init")
- self->state = STATE_TOP;
- {
- int i;
- for (i=0; i<ATIMINGSERVICE_HISTORY_SIZE; ++i)
- self->history[i] = NO_STATE;
- }
- ATimingService_executeInitTransition(self);
- ET_MSC_LOGGER_SYNC_EXIT
-}
-
-
-void ATimingService_receiveMessage(void* self, const void* ifitem, const etMessage* msg){
- ET_MSC_LOGGER_SYNC_ENTRY("ATimingService", "_receiveMessage")
- ATimingService_receiveEvent(self, (etPort*)ifitem, msg->evtID, (void*)(((char*)msg)+MEM_CEIL(sizeof(etMessage))));
-
- ET_MSC_LOGGER_SYNC_EXIT
-}
-
-void ATimingService_execute(ATimingService* self) {
- ET_MSC_LOGGER_SYNC_ENTRY("ATimingService", "_execute")
-
- ATimingService_receiveEvent(self, NULL, 0, NULL);
-
- ET_MSC_LOGGER_SYNC_EXIT
-}
-
-/*--------------------- user constructor/destructor ---------------------*/
-
-/*--------------------- operations ---------------------*/
- void ATimingService_returnTcb(ATimingService* self, etTimerControlBlock* block) {
- block->next=freeTcbsRoot;
- freeTcbsRoot=block;
-}
- void ATimingService_putTcbToUsedList(ATimingService* self, etTimerControlBlock* block) {
- etTimerControlBlock* temp=usedTcbsRoot;
- etTimerControlBlock* temp2=usedTcbsRoot;
-
- if (temp==0){
- /* list empty put new block to root */
- block->next=0;
- usedTcbsRoot=block;
- return;
- }
-
- while(1){
- if (temp != 0){
- if (isTimeGreater(&block->expTime,&temp->expTime)){
- /* try next position */
- temp2=temp;
- temp=temp->next;
- }else{
- /* right position found */
- block->next=temp;
- if(temp==usedTcbsRoot){
- usedTcbsRoot=block;
- }else{
- temp2->next=block;
- }
- return;
- }
- }else{
- /* end of list reached */
- block->next=0;
- temp2->next=block;
- return;
- }
- }
-}
- void ATimingService_addTime(ATimingService* self, etTime* t1, etTime* t2) {
- t1->sec += t2->sec;
- t1->nSec += t2->nSec;
- while(t1->nSec >= 1000000000L){
- t1->sec++;
- t1->nSec-=1000000000L;
- }
-}
- etTimerControlBlock* ATimingService_getTcb(ATimingService* self) {
- etTimerControlBlock* temp = freeTcbsRoot;
-
- if(freeTcbsRoot!=0) {
- freeTcbsRoot=freeTcbsRoot->next;
- temp->next=0;
- }
- return temp;
-}
- void ATimingService_removeTcbFromUsedList(ATimingService* self, int32 idx) {
- etTimerControlBlock* temp=usedTcbsRoot;
- etTimerControlBlock* temp2=usedTcbsRoot;
-
- if (temp==0) return;
-
- if (usedTcbsRoot->portIdx == idx){
- /* element found, the first one */
- usedTcbsRoot = usedTcbsRoot->next;
- returnTcb(temp);
- return;
- }
-
- temp=temp->next;
- while(temp!=0){
- if(temp->portIdx==idx){
- temp2->next=temp->next;
- returnTcb(temp);
- return;
- }else{
- /* try next */
- temp2=temp;
- temp=temp->next;
- }
- }
-}
- bool ATimingService_isTimeGreater(ATimingService* self, etTime* t1, etTime* t2) {
- if (t1->sec > t2->sec) return ET_TRUE;
- if (t1->sec < t2->sec) return ET_FALSE;
- if (t1->nSec > t2->nSec) return ET_TRUE;
- return ET_FALSE;
-}
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.h
deleted file mode 100644
index d8cafad..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Header File of ActorClass ATimingService
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_
-#define _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_
-
-#include "etDatatypes.h"
-#include "messaging/etMessage.h"
-
-/* include all referenced room classes */
-#include "room/basic/service/timing/PTimer.h"
-
-/*--------------------- begin user code ---------------------*/
-#include "osal/etTime.h"
-#define ET_NB_OF_TCBS 30
-typedef struct etTCB etTimerControlBlock;
-struct etTCB {
- etTime expTime;
- etTime pTime;
- int32 portIdx;
- etTimerControlBlock* next;
- };
-/*--------------------- end user code ---------------------*/
-
-typedef struct ATimingService ATimingService;
-
-/* const part of ActorClass (ROM) */
-typedef struct ATimingService_const {
- const char* instName;
-
- /* simple ports */
-
- /* data receive ports */
-
- /* saps */
-
- /* replicated ports */
-
- /* services */
- const etReplPort timer;
-} ATimingService_const;
-
-
-/* constant for state machine data */
-#define ATIMINGSERVICE_HISTORY_SIZE 3
-
-/* variable part of ActorClass (RAM) */
-struct ATimingService {
- const ATimingService_const* const constData;
-
- /* data send ports */
-
- /*--------------------- attributes ---------------------*/
- etTimerControlBlock tcbs[30]
- ;
- etTimerControlBlock* usedTcbsRoot;
- etTimerControlBlock* freeTcbsRoot;
-
-
- /* state machine variables */
- etInt16 state;
- etInt16 history[ATIMINGSERVICE_HISTORY_SIZE];
-};
-
-void ATimingService_init(ATimingService* self);
-
-void ATimingService_receiveMessage(void* self, const void* ifitem, const etMessage* msg);
-
-void ATimingService_execute(ATimingService* self);
-
-/*--------------------- user constructor/destructor ---------------------*/
-
-/*--------------------- operations ---------------------*/
- void ATimingService_returnTcb(ATimingService* self, etTimerControlBlock* block);
- void ATimingService_putTcbToUsedList(ATimingService* self, etTimerControlBlock* block);
- void ATimingService_addTime(ATimingService* self, etTime* t1, etTime* t2);
- etTimerControlBlock* ATimingService_getTcb(ATimingService* self);
- void ATimingService_removeTcbFromUsedList(ATimingService* self, int32 idx);
- bool ATimingService_isTimeGreater(ATimingService* self, etTime* t1, etTime* t2);
-
-/*--------------------- begin user code ---------------------*/
-/*uc2*/
-/*--------------------- end user code ---------------------*/
-
-#endif /* _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService_Utils.h
deleted file mode 100644
index 572eac3..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/ATimingService_Utils.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Utils File of ActorClass ATimingService
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_UTILS_H_
-
-#include "room/basic/service/timing/ATimingService.h"
-
-/*
- * access macros for ports, operations and attributes
-*/
-
-/* simple event ports */
-
-/* data receive ports */
-
-/* data send ports */
-
-/* saps */
-
-/* replicated event ports */
-
-/* services */
-#define timer_timeout_broadcast() PTimerReplPort_timeout_broadcast(&self->constData->timer)
-#define timer_timeout(idx) PTimerReplPort_timeout(&self->constData->timer, idx)
-
-/* operations */
-#define returnTcb(block) ATimingService_returnTcb(self, block)
-#define putTcbToUsedList(block) ATimingService_putTcbToUsedList(self, block)
-#define addTime(t1, t2) ATimingService_addTime(self, t1, t2)
-#define getTcb() ATimingService_getTcb(self)
-#define removeTcbFromUsedList(idx) ATimingService_removeTcbFromUsedList(self, idx)
-#define isTimeGreater(t1, t2) ATimingService_isTimeGreater(self, t1, t2)
-
-/* attributes */
-#define tcbs (self->tcbs)
-#define usedTcbsRoot (self->usedTcbsRoot)
-#define freeTcbsRoot (self->freeTcbsRoot)
-
-/* port operations */
-
-#endif /* _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_UTILS_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer_Utils.h b/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer_Utils.h
deleted file mode 100644
index fe7e4ff..0000000
--- a/runtime/org.eclipse.etrice.modellib.c/src-gen/room/basic/service/timing/PTimer_Utils.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @author generated by eTrice
- *
- * Utils File of ProtocolClass PTimer
- *
- */
-
-#ifndef _ROOM_BASIC_SERVICE_TIMING_PTIMER_UTILS_H_
-#define _ROOM_BASIC_SERVICE_TIMING_PTIMER_UTILS_H_
-
-#include "room/basic/service/timing/PTimer.h"
-
-/*
- * access macros for operations and attributes
-*/
-
-/* conjugate port class */
-
-/* operations */
-
-/* attributes */
-#define status (((PTimerConjPort_var*)(self->varData))->status)
-
-#endif /* _ROOM_BASIC_SERVICE_TIMING_PTIMER_UTILS_H_ */
-
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/build.gradle b/runtime/org.eclipse.etrice.modellib.cpp/build.gradle
index abb7bf8..ef446f9 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/build.gradle
+++ b/runtime/org.eclipse.etrice.modellib.cpp/build.gradle
@@ -7,7 +7,7 @@
}
def models = [
- 'model/TimingService.room'
+ 'model/etrice/api/timer.room'
]
createGeneratorTask('generate', 'cpp', models, 'src-gen', '-lib')
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/gen_modellib.launch b/runtime/org.eclipse.etrice.modellib.cpp/gen_modellib.launch
index 2b4e6e9..816ca23 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/gen_modellib.launch
+++ b/runtime/org.eclipse.etrice.modellib.cpp/gen_modellib.launch
@@ -5,12 +5,17 @@
<booleanAttribute key="GenDocumentation" value="false"/>
<booleanAttribute key="GenInstanceDiagram" value="false"/>
<stringAttribute key="GenModelPath" value=""/>
+<booleanAttribute key="GenerateDepsWithinProject" value="true"/>
<booleanAttribute key="Lib" value="true"/>
<booleanAttribute key="MSC" value="true"/>
+<stringAttribute key="MainMethodName" value="main"/>
<listAttribute key="ModelFiles">
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/TimingService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/Tests.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/etrice/api/annotations.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/etrice/api/language.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/etrice/api/timer.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.cpp/model/etrice/api/types.room}"/>
</listAttribute>
+<booleanAttribute key="OldStyleTransitionData" value="false"/>
<booleanAttribute key="OverrideDirectories" value="false"/>
<booleanAttribute key="SaveGenModel" value="false"/>
<booleanAttribute key="UseTranslation" value="true"/>
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/Annotations.room b/runtime/org.eclipse.etrice.modellib.cpp/model/Annotations.room
deleted file mode 100644
index 88a595d..0000000
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/Annotations.room
+++ /dev/null
@@ -1,8 +0,0 @@
-RoomModel room.basic.annotations {
-
- AnnotationType ImplementationSubclass {
- target = ActorClass
- mandatory attribute fqnClassName: ptCharacter
- optional attribute includePath: ptCharacter
- }
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/GenericPhysical.etphys b/runtime/org.eclipse.etrice.modellib.cpp/model/GenericPhysical.etphys
index 27f442b..25d6537 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/GenericPhysical.etphys
+++ b/runtime/org.eclipse.etrice.modellib.cpp/model/GenericPhysical.etphys
@@ -1,4 +1,4 @@
-PhysicalModel room.generic.physical {
+PhysicalModel GenericPhysical {
PhysicalSystem GenericPhysicalSystem {
NodeRef node : GenericNodeClass
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/Language.room b/runtime/org.eclipse.etrice.modellib.cpp/model/Language.room
deleted file mode 100644
index 7de780b..0000000
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/Language.room
+++ /dev/null
@@ -1,3 +0,0 @@
-RoomModel room.basic.language {
- PrimitiveType languageIndicator: ptInteger -> 'int8' default '2'
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.behavior b/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.behavior
deleted file mode 100644
index bb4cfad..0000000
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.behavior
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATimingService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link" verticalGridUnit="10" version="0.11.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="858" height="381" x="37" y="33">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="778" height="301" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="778" height="301" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="778" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="435" height="216" x="237" y="52">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="375" height="156" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="350" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="187" y="150">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="187" y="150">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="187" y="150">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SimpleState:ATimingService$Operational"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2 //@connections.3" incomingConnections="//@connections.0 //@connections.1 //@connections.2 //@connections.3"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="375" height="156" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Operational"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#InitialTransition:ATimingService$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <startTimeout:t..."/>
- </connectionDecorators>
- <bendpoints x="679" y="253"/>
- <bendpoints x="707" y="253"/>
- <bendpoints x="707" y="206"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr3"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-36" y="13" font="//@fonts.0" value="tr3: <startTimer:tim..."/>
- </connectionDecorators>
- <bendpoints x="490" y="305"/>
- <bendpoints x="591" y="305"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr4"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" y="12" font="//@fonts.0" value="tr4: <kill:timer>"/>
- </connectionDecorators>
- <bendpoints x="321" y="271"/>
- <bendpoints x="321" y="300"/>
- <bendpoints x="392" y="300"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.structure b/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.structure
deleted file mode 100644
index 068747c..0000000
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/diagrams/room.basic.service.timing.ATimingService.structure
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATimingService" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link" verticalGridUnit="10" version="0.11.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="571" height="294" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="491" height="214" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="491" height="214" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="inherited" value="false"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="245">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SPP:ATimingService$timer"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="timer"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/annotations.room
similarity index 66%
rename from runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room
rename to runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/annotations.room
index 097b72e..c841c1f 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room
+++ b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/annotations.room
@@ -1,8 +1,11 @@
-RoomModel room.basic.test {
+RoomModel etrice.api.annotations {
- import room.basic.service.timing.* from "TimingService.room"
- import room.basic.types.* from "Types.room"
-
+ AnnotationType ImplementationSubclass {
+ target = ActorClass
+ mandatory attribute fqnClassName: ptCharacter
+ optional attribute includePath: ptCharacter
+ }
+
/**
* A SubSystemClass or ActorClass having this annotation is construed as an instance.<br>
* During generation the necessary instantiation (LogicalSystem, SubSystemRef etc.) and mapping will be created.
@@ -13,5 +16,5 @@
AnnotationType TestInstance {
target = { SubSystemClass, ActorClass }
}
-
+
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.c/model/Language.room b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/language.room
similarity index 67%
copy from runtime/org.eclipse.etrice.modellib.c/model/Language.room
copy to runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/language.room
index 7de780b..3b67525 100644
--- a/runtime/org.eclipse.etrice.modellib.c/model/Language.room
+++ b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/language.room
@@ -1,3 +1,3 @@
-RoomModel room.basic.language {
+RoomModel etrice.api.language {
PrimitiveType languageIndicator: ptInteger -> 'int8' default '2'
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/TimingService.room b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/timer.room
similarity index 96%
rename from runtime/org.eclipse.etrice.modellib.cpp/model/TimingService.room
rename to runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/timer.room
index ede7642..d61228f 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/TimingService.room
+++ b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/timer.room
@@ -1,8 +1,11 @@
-RoomModel room.basic.service.timing {
+RoomModel etrice.api.timer {
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.boolean
+ import etrice.api.types.int8
+ import etrice.api.types.int32
+ import etrice.api.types.uint32
- async ActorClass ATimingService {
+ async ActorClass ATimerService {
Interface {
SPP timer: PTimer
}
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/Types.room b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/types.room
similarity index 96%
rename from runtime/org.eclipse.etrice.modellib.cpp/model/Types.room
rename to runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/types.room
index 8e40980..07989af 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/Types.room
+++ b/runtime/org.eclipse.etrice.modellib.cpp/model/etrice/api/types.room
@@ -1,4 +1,4 @@
-RoomModel room.basic.types {
+RoomModel etrice.api.types {
PrimitiveType boolean: ptBoolean -> 'bool' default 'false'
PrimitiveType char: ptCharacter -> 'char' default '0'
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/src-gen-info/readme.txt b/runtime/org.eclipse.etrice.modellib.cpp/src-gen-info/readme.txt
deleted file mode 100644
index 1dc2b35..0000000
--- a/runtime/org.eclipse.etrice.modellib.cpp/src-gen-info/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory is an eTrice code generation target.
-It will be erased every time the generator is executed.
-
-DO NOT PLACE OTHER FILES HERE!
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.cpp b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.cpp
similarity index 72%
rename from runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.cpp
rename to runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.cpp
index 08a07e5..93c5afe 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.cpp
+++ b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.cpp
@@ -1,11 +1,11 @@
/**
* @author generated by eTrice
*
- * Source File of ActorClass ATimingService
+ * Source File of ActorClass ATimerService
*
*/
-#include "ATimingService.h"
+#include "ATimerService.h"
#include "common/messaging/RTObject.h"
#include "common/messaging/RTServices.h"
@@ -19,7 +19,7 @@
// uc3
/*--------------------- end user code ---------------------*/
-ATimingService::ATimingService(etRuntime::IRTObject* parent, const String& name)
+ATimerService::ATimerService(etRuntime::IRTObject* parent, const String& name)
: ActorClassBase(parent, name)
, timer(this, "timer", IFITEM_timer)
, tcbs()
@@ -31,7 +31,7 @@
for (int i = 0; i < s_numberOfStates; i++) {
history[i] = NO_STATE;
}
- setClassName("ATimingService");
+ setClassName("ATimerService");
// sub actors
@@ -39,7 +39,7 @@
memset(tcbs.getData(), sizeof(tcbs), 0);
}
-void ATimingService::initialize() {
+void ATimerService::initialize() {
MSCFunctionObject mscFunctionObject(getInstancePathName(), "initialize()");
ActorClassBase::initialize();
@@ -51,13 +51,13 @@
RTServices::getInstance().getMsgSvcCtrl().getMsgSvc(getThread())->addPollingMessageReceiver(*this);
}
-void ATimingService::setProbesActive(bool recursive, bool active) {
+void ATimerService::setProbesActive(bool recursive, bool active) {
DebuggingService::getInstance().addPortInstance(m_RTSystemPort);
for(int i = 0; i < timer.getNInterfaceItems(); i++)
DebuggingService::getInstance().addPortInstance(*(timer.getInterfaceItem(i)));
}
-void ATimingService::destroy(){
+void ATimerService::destroy(){
MSCFunctionObject mscFunctionObject(getInstancePathName(), "destroy()");
/* user defined destructor body */
@@ -67,7 +67,7 @@
}
/*--------------------- operations ---------------------*/
- etTimerControlBlock* ATimingService::getTcb() {
+ etTimerControlBlock* ATimerService::getTcb() {
etTimerControlBlock* temp = freeTcbsRoot;
if (freeTcbsRoot != 0) {
@@ -76,11 +76,11 @@
}
return temp;
}
- void ATimingService::returnTcb(etTimerControlBlock* block) {
+ void ATimerService::returnTcb(etTimerControlBlock* block) {
block->next = freeTcbsRoot;
freeTcbsRoot = block;
}
- void ATimingService::removeTcbFromUsedList(int32 idx) {
+ void ATimerService::removeTcbFromUsedList(int32 idx) {
etTimerControlBlock* temp = usedTcbsRoot;
etTimerControlBlock* temp2 = usedTcbsRoot;
@@ -107,7 +107,7 @@
}
}
}
- void ATimingService::putTcbToUsedList(etTimerControlBlock* block) {
+ void ATimerService::putTcbToUsedList(etTimerControlBlock* block) {
etTimerControlBlock* temp = usedTcbsRoot;
etTimerControlBlock* temp2 = usedTcbsRoot;
@@ -142,7 +142,7 @@
}
}
}
- bool ATimingService::isTimeGreater(etTime* t1, etTime* t2) {
+ bool ATimerService::isTimeGreater(etTime* t1, etTime* t2) {
if (t1->sec > t2->sec)
return ET_TRUE;
if (t1->sec < t2->sec)
@@ -151,7 +151,7 @@
return ET_TRUE;
return ET_FALSE;
}
- void ATimingService::addTime(etTime* t1, etTime* t2) {
+ void ATimerService::addTime(etTime* t1, etTime* t2) {
t1->sec += t2->sec;
t1->nSec += t2->nSec;
while (t1->nSec >= 1000000000L) {
@@ -161,23 +161,23 @@
}
// state names
-const String ATimingService::s_stateStrings[] = {
+const String ATimerService::s_stateStrings[] = {
"<no state>",
"<top>",
"Operational"
};
-const int ATimingService::s_numberOfStates = 3;
+const int ATimerService::s_numberOfStates = 3;
-void ATimingService::setState(int new_state) {
+void ATimerService::setState(int new_state) {
DebuggingService::getInstance().addActorState(*this, s_stateStrings[new_state].c_str());
m_state = new_state;
}
/* Entry and Exit Codes */
-void ATimingService::entry_Operational() {
+void ATimerService::entry_Operational() {
// prepare
}
- void ATimingService::do_Operational() {
+ void ATimerService::do_Operational() {
// maintain timers
etTimerControlBlock* temp;
etTime t;
@@ -203,7 +203,7 @@
}
/* Action Codes */
-void ATimingService::action_TRANS_INITIAL_TO__Operational() {
+void ATimerService::action_TRANS_INITIAL_TO__Operational() {
int i;
usedTcbsRoot = 0;
freeTcbsRoot = &tcbs[0];
@@ -212,7 +212,7 @@
tcbs[i].next = &tcbs[i + 1];
}
}
-void ATimingService::action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(const InterfaceItemBase* ifitem, uint32 transitionData) {
+void ATimerService::action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(const InterfaceItemBase* ifitem, uint32 transitionData) {
etTimerControlBlock* transitionDatar = getTcb();
etTime t;
if (transitionDatar != 0) {
@@ -226,7 +226,7 @@
putTcbToUsedList(transitionDatar);
}
}
-void ATimingService::action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(const InterfaceItemBase* ifitem, uint32 transitionData) {
+void ATimerService::action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(const InterfaceItemBase* ifitem, uint32 transitionData) {
etTimerControlBlock* transitionDatar = getTcb();
etTime t;
if (transitionDatar != 0) {
@@ -239,7 +239,7 @@
putTcbToUsedList(transitionDatar);
}
}
-void ATimingService::action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(const InterfaceItemBase* ifitem) {
+void ATimerService::action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(const InterfaceItemBase* ifitem) {
removeTcbFromUsedList(ifitem->getIdx());
}
@@ -250,7 +250,7 @@
* @param current__et - the current state
* @param to - the final parent state
*/
-void ATimingService::exitTo(etInt16 current__et, etInt16 to) {
+void ATimerService::exitTo(etInt16 current__et, etInt16 to) {
while (current__et!=to) {
switch (current__et) {
case STATE_Operational:
@@ -271,26 +271,26 @@
* @param generic_data__et - the generic data pointer
* @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
*/
-etInt16 ATimingService::executeTransitionChain(int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
+etInt16 ATimerService::executeTransitionChain(int chain__et, const InterfaceItemBase* ifitem, void* generic_data__et) {
switch (chain__et) {
- case ATimingService::CHAIN_TRANS_INITIAL_TO__Operational:
+ case ATimerService::CHAIN_TRANS_INITIAL_TO__Operational:
{
action_TRANS_INITIAL_TO__Operational();
return STATE_Operational;
}
- case ATimingService::CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1:
+ case ATimerService::CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1:
{
uint32 transitionData = *(static_cast<uint32*>(generic_data__et));
action_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1(ifitem, transitionData);
return STATE_Operational;
}
- case ATimingService::CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3:
+ case ATimerService::CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3:
{
uint32 transitionData = *(static_cast<uint32*>(generic_data__et));
action_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3(ifitem, transitionData);
return STATE_Operational;
}
- case ATimingService::CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
+ case ATimerService::CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
{
action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(ifitem);
return STATE_Operational;
@@ -307,7 +307,7 @@
* @param state__et - the state which is entered
* @return - the ID of the final leaf state
*/
-etInt16 ATimingService::enterHistory(etInt16 state__et) {
+etInt16 ATimerService::enterHistory(etInt16 state__et) {
etBool skip_entry__et = false;
if (state__et >= STATE_MAX) {
state__et = (state__et - STATE_MAX);
@@ -331,15 +331,15 @@
/* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
}
-void ATimingService::executeInitTransition() {
- int chain__et = ATimingService::CHAIN_TRANS_INITIAL_TO__Operational;
- etInt16 next__et = ATimingService::executeTransitionChain(chain__et, 0, 0);
- next__et = ATimingService::enterHistory(next__et);
+void ATimerService::executeInitTransition() {
+ int chain__et = ATimerService::CHAIN_TRANS_INITIAL_TO__Operational;
+ etInt16 next__et = ATimerService::executeTransitionChain(chain__et, 0, 0);
+ next__et = ATimerService::enterHistory(next__et);
setState(next__et);
}
/* receiveEvent contains the main implementation of the FSM */
-void ATimingService::receiveEventInternal(InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
+void ATimerService::receiveEventInternal(InterfaceItemBase* ifitem, int localId, int evt, void* generic_data__et) {
int trigger__et = (ifitem==0)? POLLING : localId + EVT_SHIFT*evt;
int chain__et = NOT_CAUGHT;
etInt16 catching_state__et = NO_STATE;
@@ -353,19 +353,19 @@
break;
case TRIG_timer__kill:
{
- chain__et = ATimingService::CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
+ chain__et = ATimerService::CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
catching_state__et = STATE_TOP;
}
break;
case TRIG_timer__startTimeout:
{
- chain__et = ATimingService::CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1;
+ chain__et = ATimerService::CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_startTimeouttimer_tr1;
catching_state__et = STATE_TOP;
}
break;
case TRIG_timer__startTimer:
{
- chain__et = ATimingService::CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3;
+ chain__et = ATimerService::CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_startTimertimer_tr3;
catching_state__et = STATE_TOP;
}
break;
@@ -380,19 +380,19 @@
}
}
if (chain__et != NOT_CAUGHT) {
- ATimingService::exitTo(getState(), catching_state__et);
+ ATimerService::exitTo(getState(), catching_state__et);
{
- etInt16 next__et = ATimingService::executeTransitionChain(chain__et, ifitem, generic_data__et);
- next__et = ATimingService::enterHistory(next__et);
+ etInt16 next__et = ATimerService::executeTransitionChain(chain__et, ifitem, generic_data__et);
+ next__et = ATimerService::enterHistory(next__et);
setState(next__et);
}
}
}
-void ATimingService::receiveEvent(InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
+void ATimerService::receiveEvent(InterfaceItemBase* ifitem, int evt, void* generic_data__et) {
int localId = (ifitem==0)? 0 : ifitem->getLocalId();
- ATimingService::receiveEventInternal(ifitem, localId, evt, generic_data__et);
+ ATimerService::receiveEventInternal(ifitem, localId, evt, generic_data__et);
}
-void ATimingService::receive(const Message* msg) {
+void ATimerService::receive(const Message* msg) {
receiveEvent(0, -1, 0);
}
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.h b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.h
similarity index 89%
rename from runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.h
rename to runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.h
index 5e80a4e..a1c788e 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/ATimingService.h
+++ b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/ATimerService.h
@@ -1,12 +1,12 @@
/**
* @author generated by eTrice
*
- * Header File of ActorClass ATimingService
+ * Header File of ActorClass ATimerService
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_
-#define _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_
+#ifndef _ETRICE_API_TIMER_ATIMERSERVICE_H_
+#define _ETRICE_API_TIMER_ATIMERSERVICE_H_
#include "common/etDatatypesCpp.hpp"
#include "common/messaging/IRTObject.h"
@@ -18,7 +18,7 @@
#include "common/messaging/IMessageReceiver.h"
#include "common/debugging/DebuggingService.h"
-#include "room/basic/service/timing/PTimer.h"
+#include "etrice/api/timer/PTimer.h"
#include "common/modelbase/ActorClassBase.h"
@@ -38,7 +38,7 @@
using namespace etRuntime;
-class ATimingService : public etRuntime::ActorClassBase {
+class ATimerService : public etRuntime::ActorClassBase {
protected:
@@ -71,7 +71,7 @@
public:
//--------------------- construction
- ATimingService(etRuntime::IRTObject* parent, const String& name);
+ ATimerService(etRuntime::IRTObject* parent, const String& name);
void initialize(void);
void setProbesActive(bool recursive, bool active);
@@ -162,16 +162,16 @@
};
-class ReplicatedATimingService : public ReplicatedActorClassBase {
+class ReplicatedATimerService : public ReplicatedActorClassBase {
public:
- ReplicatedATimingService(IRTObject* parent, const String& name) :
+ ReplicatedATimerService(IRTObject* parent, const String& name) :
ReplicatedActorClassBase(parent, name) {}
protected:
ActorClassBase* createActor(IRTObject* parent, const String& name) {
- return new ATimingService(parent, name);
+ return new ATimerService(parent, name);
}
};
-#endif /* _ROOM_BASIC_SERVICE_TIMING_ATIMINGSERVICE_H_ */
+#endif /* _ETRICE_API_TIMER_ATIMERSERVICE_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/PTimer.cpp b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/PTimer.cpp
similarity index 100%
rename from runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/PTimer.cpp
rename to runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/PTimer.cpp
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/PTimer.h b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/PTimer.h
similarity index 96%
rename from runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/PTimer.h
rename to runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/PTimer.h
index b6c07b9..1e266e7 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/src-gen/room/basic/service/timing/PTimer.h
+++ b/runtime/org.eclipse.etrice.modellib.cpp/src-gen/etrice/api/timer/PTimer.h
@@ -5,8 +5,8 @@
*
*/
-#ifndef _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_
-#define _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_
+#ifndef _ETRICE_API_TIMER_PTIMER_H_
+#define _ETRICE_API_TIMER_PTIMER_H_
#include "common/modelbase/InterfaceItemBase.h"
#include "common/modelbase/PortBase.h"
@@ -143,4 +143,4 @@
};
-#endif /* _ROOM_BASIC_SERVICE_TIMING_PTIMER_H_ */
+#endif /* _ETRICE_API_TIMER_PTIMER_H_ */
diff --git a/runtime/org.eclipse.etrice.modellib.java/build.gradle b/runtime/org.eclipse.etrice.modellib.java/build.gradle
index 4dc88e7..029d0e8 100644
--- a/runtime/org.eclipse.etrice.modellib.java/build.gradle
+++ b/runtime/org.eclipse.etrice.modellib.java/build.gradle
@@ -8,9 +8,9 @@
}
def models = [
- 'model/ALogService.room',
- 'model/TcpService.room',
- 'model/TimingService.room',
+ 'model/etrice/api/logger.room',
+ 'model/etrice/api/tcp.room',
+ 'model/etrice/api/timer.room',
'model/etrice/api/contracts/monitors.room'
]
diff --git a/runtime/org.eclipse.etrice.modellib.java/gen_modellib.launch b/runtime/org.eclipse.etrice.modellib.java/gen_modellib.launch
index cf281c2..85db434 100644
--- a/runtime/org.eclipse.etrice.modellib.java/gen_modellib.launch
+++ b/runtime/org.eclipse.etrice.modellib.java/gen_modellib.launch
@@ -1,19 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.etrice.generator.launch.java.launchConfigurationType">
+<booleanAttribute key="DataLogging" value="false"/>
+<booleanAttribute key="DataObj" value="false"/>
<booleanAttribute key="Debug" value="false"/>
<booleanAttribute key="GenDocumentation" value="false"/>
<booleanAttribute key="GenInstanceDiagram" value="false"/>
<stringAttribute key="GenModelPath" value=""/>
+<booleanAttribute key="GenerateDepsWithinProject" value="true"/>
<booleanAttribute key="Lib" value="true"/>
<booleanAttribute key="MSC" value="true"/>
+<stringAttribute key="MainMethodName" value="main"/>
<listAttribute key="ModelFiles">
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/TimingService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/ALogService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/TcpService.room}"/>
-<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/Tests.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/annotations.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/language.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/logger.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/tcp.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/timer.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/types.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/definitions.room}"/>
+<listEntry value="${workspace_loc:/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/monitors.room}"/>
</listAttribute>
+<booleanAttribute key="OldStyleTransitionData" value="false"/>
+<booleanAttribute key="OverrideDirectories" value="false"/>
<booleanAttribute key="Persist" value="false"/>
<booleanAttribute key="SaveGenModel" value="false"/>
+<booleanAttribute key="UseTranslation" value="true"/>
<booleanAttribute key="Verbose" value="false"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
</launchConfiguration>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/Annotations.room b/runtime/org.eclipse.etrice.modellib.java/model/Annotations.room
deleted file mode 100644
index 73bc1a3..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/Annotations.room
+++ /dev/null
@@ -1,13 +0,0 @@
-RoomModel room.basic.annotations {
-
- AnnotationType BehaviorManual {
- target = ActorBehavior
- }
-
- AnnotationType ActorBaseClass {
- target = ActorClass
- mandatory attribute class: ptCharacter
- mandatory attribute package: ptCharacter
- }
-
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/GenericPhysical.etphys b/runtime/org.eclipse.etrice.modellib.java/model/GenericPhysical.etphys
index 9e9a2cc..4fae143 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/GenericPhysical.etphys
+++ b/runtime/org.eclipse.etrice.modellib.java/model/GenericPhysical.etphys
@@ -1,4 +1,4 @@
-PhysicalModel room.generic.physical {
+PhysicalModel GenericPhysical {
PhysicalSystem GenericPhysicalSystem {
NodeRef node : GenericNodeClass
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/Tests.room b/runtime/org.eclipse.etrice.modellib.java/model/Tests.room
deleted file mode 100644
index 097b72e..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/Tests.room
+++ /dev/null
@@ -1,17 +0,0 @@
-RoomModel room.basic.test {
-
- import room.basic.service.timing.* from "TimingService.room"
- import room.basic.types.* from "Types.room"
-
- /**
- * A SubSystemClass or ActorClass having this annotation is construed as an instance.<br>
- * During generation the necessary instantiation (LogicalSystem, SubSystemRef etc.) and mapping will be created.
- * <p>
- * Must not have LogicalThreads. Globally only once allowed. Runtime execution on DefaultThread of given PhysicalSystem.
- * </p>
- */
- AnnotationType TestInstance {
- target = { SubSystemClass, ActorClass }
- }
-
-}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.behavior b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.behavior
deleted file mode 100644
index a63b377..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.behavior
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ALogService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../ALogService.room#ActorClass:ALogService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#StateGraph:ALogService$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#StateGraph:ALogService$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="206" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#SimpleState:ALogService$closed"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.0 //@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="closed"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="472" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#SimpleState:ALogService$opened"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.3" incomingConnections="//@connections.1 //@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="opened"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../ALogService.room#InitialTransition:ALogService$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../ALogService.room#TriggeredTransition:ALogService$open"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="open: <open:log>"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../ALogService.room#TriggeredTransition:ALogService$tr0"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <close:log>"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../ALogService.room#TriggeredTransition:ALogService$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <internalLog:lo..."/>
- </connectionDecorators>
- <bendpoints x="572" y="325"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.structure b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.structure
deleted file mode 100644
index 106589b..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.logging.ALogService.structure
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ALogService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../ALogService.room#ActorClass:ALogService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#ActorClass:ALogService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="400">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../ALogService.room#SPP:ALogService$log"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="log"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.behavior b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.behavior
deleted file mode 100644
index 2067578..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.behavior
+++ /dev/null
@@ -1,249 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpClient" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpClient$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpClient$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="140" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$closed"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.0 //@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="closed"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="340" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$opened"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.5" incomingConnections="//@connections.3 //@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="opened"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="540" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpClient$error"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="error"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="375" y="265">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpClient$cp0"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3 //@connections.4" incomingConnections="//@connections.1"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#InitialTransition:ATcpClient$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.5/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr0"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <open:ControlPo..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <close:ControlP..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpClient$tr2"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: [else]"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.4/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpClient$socketError"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="socketError: [lastEr..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpClient$tr3"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <send:PayloadPo..."/>
- </connectionDecorators>
- <bendpoints x="440" y="325"/>
- <bendpoints x="440" y="325"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.structure b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.structure
deleted file mode 100644
index ebb67ff..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpClient.structure
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATcpClient" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link //@children.0/@children.1/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpClient"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="266">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpClient$ControlPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ControlPort"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="532">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpClient$PayloadPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="PayloadPort"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.behavior b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.behavior
deleted file mode 100644
index 59ad02f..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.behavior
+++ /dev/null
@@ -1,249 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATcpServer" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpServer"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpServer$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#StateGraph:ATcpServer$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="140" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$closed"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.0 //@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="closed"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="340" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$opened"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.5" incomingConnections="//@connections.3 //@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="opened"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="540" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#SimpleState:ATcpServer$error"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="error"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="50" height="50" x="375" y="265">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="25" height="25" x="12" y="12"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ChoicePoint:ATcpServer$cp0"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3 //@connections.4" incomingConnections="//@connections.1"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="50" height="25" y="12" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="C"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#InitialTransition:ATcpServer$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.5/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr0"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: <open:ControlPo..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <close:ControlP..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#ContinuationTransition:ATcpServer$tr2"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: [else]"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.4/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#CPBranchTransition:ATcpServer$socketError"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="socketError: [lastEr..."/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.3/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TcpService.room#TriggeredTransition:ATcpServer$tr3"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <send:PayloadPo..."/>
- </connectionDecorators>
- <bendpoints x="440" y="325"/>
- <bendpoints x="440" y="325"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.structure b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.structure
deleted file mode 100644
index c5ea429..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.tcp.ATcpServer.structure
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATcpServer" pictogramLinks="//@children.0/@link //@link //@children.0/@children.0/@link //@children.0/@children.1/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpServer"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#ActorClass:ATcpServer"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="266">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpServer$ControlPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.0/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="ControlPort"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="532">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.1" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TcpService.room#Port:ATcpServer$PayloadPort"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="PayloadPort"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.behavior b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.behavior
deleted file mode 100644
index 3746bcd..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.behavior
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of ATimingService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="sg"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="trp"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="100" y="100">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#StateGraph:ATimingService$sg"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
- </children>
- </children>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="state"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="136" height="90" x="332" y="120">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="76" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
- <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="51" y="3" cornerHeight="5" cornerWidth="5"/>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="38" y="24">
- <points x="-3" y="-3"/>
- <points x="-3" y="3"/>
- <points x="-11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="38" y="24">
- <points x="3" y="-3"/>
- <points x="3" y="3"/>
- <points x="11" y="3"/>
- </graphicsAlgorithmChildren>
- <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="38" y="24">
- <points x="-2" y="-3"/>
- <points x="-2" y="3"/>
- <points x="2" y="3"/>
- <points x="2" y="-3"/>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithmChildren>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SimpleState:ATimingService$Operational"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1 //@connections.2 //@connections.3" incomingConnections="//@connections.0 //@connections.1 //@connections.2 //@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="76" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Operational"/>
- </children>
- </children>
- </children>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#InitialTransition:ATimingService$initial"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="init"/>
- </connectionDecorators>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr1"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: <internalStartT..."/>
- </connectionDecorators>
- <bendpoints x="440" y="325"/>
- <bendpoints x="440" y="325"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr3"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr3: <internalStartT..."/>
- </connectionDecorators>
- <bendpoints x="440" y="325"/>
- <bendpoints x="440" y="325"/>
- </connections>
- <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.2/@anchors.0">
- <properties key="obj-type" value="trans"/>
- <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
- <link>
- <businessObjects href="../TimingService.room#TriggeredTransition:ATimingService$tr4"/>
- </link>
- <connectionDecorators visible="true" locationRelative="true" location="1.0">
- <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
- <points x="-15" y="5"/>
- <points/>
- <points x="-15" y="-5"/>
- </graphicsAlgorithm>
- </connectionDecorators>
- <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr4: <kill:timer>"/>
- </connectionDecorators>
- <bendpoints x="440" y="325"/>
- <bendpoints x="440" y="325"/>
- </connections>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <colors red="200" green="200" blue="200"/>
- <fonts name="Arial" size="8"/>
- <fonts name="Arial" size="9" bold="true"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.structure b/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.structure
deleted file mode 100644
index a951de9..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/model/diagrams/room.basic.service.timing.ATimingService.structure
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.structure" name="Structure of ATimingService" pictogramLinks="//@link //@children.0/@link //@children.0/@children.0/@link" verticalGridUnit="10" version="0.10.0">
- <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="1000" height="1000"/>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="cls"/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40"/>
- <graphicsAlgorithmChildren xsi:type="al:Rectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#ActorClass:ATimingService"/>
- </link>
- <children xsi:type="pi:ContainerShape" visible="true" active="true">
- <properties key="obj-type" value="port"/>
- <properties key="item-kind" value=""/>
- <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="400">
- <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.2" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="40" height="40" x="20" y="20"/>
- </graphicsAlgorithm>
- <link>
- <businessObjects href="../TimingService.room#SPP:ATimingService$timer"/>
- </link>
- <anchors xsi:type="pi:ChopboxAnchor"/>
- <children visible="true">
- <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="20" font="//@fonts.0" value="timer"/>
- </children>
- </children>
- </children>
- <colors red="227" green="238" blue="249"/>
- <colors red="255" green="255" blue="255"/>
- <colors/>
- <fonts name="Arial" size="8"/>
-</pi:Diagram>
diff --git a/runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/annotations.room
similarity index 63%
copy from runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room
copy to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/annotations.room
index 097b72e..ff8ef60 100644
--- a/runtime/org.eclipse.etrice.modellib.cpp/model/Tests.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/annotations.room
@@ -1,8 +1,15 @@
-RoomModel room.basic.test {
+RoomModel etrice.api.annotations {
- import room.basic.service.timing.* from "TimingService.room"
- import room.basic.types.* from "Types.room"
-
+ AnnotationType BehaviorManual {
+ target = ActorBehavior
+ }
+
+ AnnotationType ActorBaseClass {
+ target = ActorClass
+ mandatory attribute class: ptCharacter
+ mandatory attribute package: ptCharacter
+ }
+
/**
* A SubSystemClass or ActorClass having this annotation is construed as an instance.<br>
* During generation the necessary instantiation (LogicalSystem, SubSystemRef etc.) and mapping will be created.
@@ -13,5 +20,5 @@
AnnotationType TestInstance {
target = { SubSystemClass, ActorClass }
}
-
+
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/monitors.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/monitors.room
index 5923fdd..f61d561 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/monitors.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/contracts/monitors.room
@@ -4,7 +4,8 @@
*/
RoomModel etrice.api.contracts.monitors {
- import room.basic.types.*
+ import etrice.api.types.boolean
+ import etrice.api.types.string
/** Protocol to get validation status and control monitor behavior. */
ProtocolClass PContractMonitorControl {
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/Language.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/language.room
similarity index 69%
rename from runtime/org.eclipse.etrice.modellib.java/model/Language.room
rename to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/language.room
index e243dae..c1b0e02 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/Language.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/language.room
@@ -1,3 +1,3 @@
-RoomModel room.basic.language {
+RoomModel etrice.api.language {
PrimitiveType languageIndicator: ptInteger -> 'byte' (Byte) default '1'
}
\ No newline at end of file
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/ALogService.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/logger.room
similarity index 94%
rename from runtime/org.eclipse.etrice.modellib.java/model/ALogService.room
rename to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/logger.room
index e209342..1b1876c 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/ALogService.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/logger.room
@@ -1,7 +1,9 @@
-RoomModel room.basic.service.logging {
+RoomModel etrice.api.logger {
- import room.basic.types.* from "Types.room"
-
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.string
+
ActorClass ALogService {
Interface {
SPP log: Log
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/TcpService.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/tcp.room
similarity index 97%
rename from runtime/org.eclipse.etrice.modellib.java/model/TcpService.room
rename to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/tcp.room
index 4062126..bd3c39e 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/TcpService.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/tcp.room
@@ -1,6 +1,8 @@
-RoomModel room.basic.service.tcp {
+RoomModel etrice.api.tcp {
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.int8
+ import etrice.api.types.int32
+ import etrice.api.types.string
ActorClass ATcpServer {
Interface {
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/TimingService.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/timer.room
similarity index 97%
rename from runtime/org.eclipse.etrice.modellib.java/model/TimingService.room
rename to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/timer.room
index c9eb5c5..1c54b6e 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/TimingService.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/timer.room
@@ -1,8 +1,8 @@
-RoomModel room.basic.service.timing {
+RoomModel etrice.api.timer {
- import room.basic.types.* from "Types.room"
+ import etrice.api.types.int32
- ActorClass ATimingService {
+ ActorClass ATimerService {
Interface {
SPP timer: PTimer
}
diff --git a/runtime/org.eclipse.etrice.modellib.java/model/Types.room b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/types.room
similarity index 94%
rename from runtime/org.eclipse.etrice.modellib.java/model/Types.room
rename to runtime/org.eclipse.etrice.modellib.java/model/etrice/api/types.room
index 9e9f3c4..69c7505 100644
--- a/runtime/org.eclipse.etrice.modellib.java/model/Types.room
+++ b/runtime/org.eclipse.etrice.modellib.java/model/etrice/api/types.room
@@ -1,4 +1,4 @@
-RoomModel room.basic.types {
+RoomModel etrice.api.types {
PrimitiveType boolean: ptBoolean -> 'boolean' (Boolean) default 'false'
PrimitiveType char: ptCharacter -> 'char' (Character) default ''
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen-info/readme.txt b/runtime/org.eclipse.etrice.modellib.java/src-gen-info/readme.txt
deleted file mode 100644
index 1dc2b35..0000000
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen-info/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory is an eTrice code generation target.
-It will be erased every time the generator is executed.
-
-DO NOT PLACE OTHER FILES HERE!
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.java
new file mode 100644
index 0000000..ac6ad4f
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/AContractMonitorBase.java
@@ -0,0 +1,233 @@
+package etrice.api.contracts.monitors;
+
+import org.eclipse.etrice.runtime.java.messaging.*;
+import org.eclipse.etrice.runtime.java.modelbase.*;
+import org.eclipse.etrice.runtime.java.debugging.*;
+
+import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
+
+import etrice.api.contracts.monitors.PContractMonitorControl.*;
+
+
+
+public abstract class AContractMonitorBase extends ActorClassBase {
+
+
+ //--------------------- ports
+ protected PContractMonitorControlPort monitor_ctrl = null;
+
+ //--------------------- saps
+
+ //--------------------- services
+
+ //--------------------- optional actors
+
+ //--------------------- interface item IDs
+ public static final int IFITEM_monitor_ctrl = 1;
+
+ /*--------------------- attributes ---------------------*/
+ public boolean _violation;
+ public boolean forwardInvalidMessages;
+
+ /*--------------------- operations ---------------------*/
+ public void onViolation(String comment) {
+ _violation = true;
+ DebuggingService.getInstance().addVisibleComment(comment + " location: " + this.getInstancePath()/* + " : " + ifitem.toString()*/);
+ monitor_ctrl.violationOccured();
+ }
+
+
+ //--------------------- construction
+ public AContractMonitorBase(IRTObject parent, String name) {
+ super(parent, name);
+ setClassName("AContractMonitorBase");
+
+ // initialize attributes
+ this.set_violation(false);
+ this.setForwardInvalidMessages(false);
+
+ // own ports
+ monitor_ctrl = new PContractMonitorControlPort(this, "monitor_ctrl", IFITEM_monitor_ctrl);
+
+ // own saps
+
+ // own service implementations
+
+ // sub actors
+
+ // wiring
+
+
+ /* user defined constructor body */
+
+ }
+
+ /* --------------------- attribute setters and getters */
+ public void set_violation(boolean _violation) {
+ this._violation = _violation;
+ }
+ public boolean get_violation() {
+ return this._violation;
+ }
+ public void setForwardInvalidMessages(boolean forwardInvalidMessages) {
+ this.forwardInvalidMessages = forwardInvalidMessages;
+ }
+ public boolean getForwardInvalidMessages() {
+ return this.forwardInvalidMessages;
+ }
+
+
+ //--------------------- port getters
+ public PContractMonitorControlPort getMonitor_ctrl (){
+ return this.monitor_ctrl;
+ }
+
+ //--------------------- lifecycle functions
+ public void stop(){
+ super.stop();
+ }
+
+ public void destroy(){
+ /* user defined destructor body */
+ DebuggingService.getInstance().addMessageActorDestroy(this);
+ super.destroy();
+ }
+
+ /* state IDs */
+ public static final int STATE_MAX = 2;
+
+ /* transition chains */
+ public static final int CHAIN_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus = 1;
+ public static final int CHAIN_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward = 2;
+
+ /* triggers */
+ public static final int POLLING = 0;
+ public static final int TRIG_monitor_ctrl__getAndResetStatus = IFITEM_monitor_ctrl + EVT_SHIFT*PContractMonitorControl.IN_getAndResetStatus;
+ public static final int TRIG_monitor_ctrl__setForwardInvalidMessages = IFITEM_monitor_ctrl + EVT_SHIFT*PContractMonitorControl.IN_setForwardInvalidMessages;
+
+ // state names
+ protected static final String stateStrings[] = {
+ "<no state>",
+ "<top>",
+ };
+
+ // history
+ protected int history[] = {NO_STATE, NO_STATE};
+
+ private void setState(int new_state) {
+ DebuggingService.getInstance().addActorState(this,stateStrings[new_state]);
+ this.state = new_state;
+ }
+
+ /* Entry and Exit Codes */
+
+ /* Action Codes */
+ protected void action_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus(InterfaceItemBase ifitem) {
+ monitor_ctrl.violationStatus(_violation);
+ _violation = false;
+ }
+ protected void action_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward(InterfaceItemBase ifitem, boolean transitionData) {
+ forwardInvalidMessages = transitionData;
+ }
+
+ /* State Switch Methods */
+ /**
+ * calls exit codes while exiting from the current state to one of its
+ * parent states while remembering the history
+ * @param current__et - the current state
+ * @param to - the final parent state
+ * @param handler__et - entry and exit codes are called only if not handler (for handler TransitionPoints)
+ */
+ private void exitTo(int current__et, int to, boolean handler__et) {
+ while (current__et!=to) {
+ switch (current__et) {
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ }
+
+ /**
+ * calls action, entry and exit codes along a transition chain. The generic data are cast to typed data
+ * matching the trigger of this chain. The ID of the final state is returned
+ * @param chain__et - the chain ID
+ * @param generic_data__et - the generic data pointer
+ * @return the +/- ID of the final state either with a positive sign, that indicates to execute the state's entry code, or a negative sign vice versa
+ */
+ private int executeTransitionChain(int chain__et, InterfaceItemBase ifitem, Object generic_data__et) {
+ switch (chain__et) {
+ case AContractMonitorBase.CHAIN_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward:
+ {
+ boolean transitionData = (Boolean) generic_data__et;
+ action_TRANS__trForward_FROM__trBase_TO__trBase_BY_setForwardInvalidMessagesmonitor_ctrl__trForward(ifitem, transitionData);
+ return STATE_TOP + STATE_MAX;
+ }
+ case AContractMonitorBase.CHAIN_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus:
+ {
+ action_TRANS__trStatus_FROM__trBase_TO__trBase_BY_getAndResetStatusmonitor_ctrl__trStatus(ifitem);
+ return STATE_TOP + STATE_MAX;
+ }
+ default:
+ /* should not occur */
+ break;
+ }
+ return NO_STATE;
+ }
+
+ /**
+ * calls entry codes while entering a state's history. The ID of the final leaf state is returned
+ * @param state__et - the state which is entered
+ * @param handler__et - entry code is executed if not handler
+ * @return - the ID of the final leaf state
+ */
+ private int enterHistory(int state__et, boolean handler__et) {
+ if (state__et >= STATE_MAX) {
+ state__et = (state__et - STATE_MAX);
+ }
+ while (true) {
+ switch (state__et) {
+ case STATE_TOP:
+ state__et = this.history[STATE_TOP];
+ break;
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ /* return NO_STATE; // required by CDT but detected as unreachable by JDT because of while (true) */
+ }
+
+ public void executeInitTransition() {
+ /* no initial transition allowed for abstract actor class */
+ }
+
+ /* receiveEvent contains the main implementation of the FSM */
+ public void receiveEventInternal(InterfaceItemBase ifitem, int localId, int evt, Object generic_data__et) {
+ int trigger__et = localId + EVT_SHIFT*evt;
+ int chain__et = NOT_CAUGHT;
+ int catching_state__et = NO_STATE;
+ boolean is_handler__et = false;
+
+ if (!handleSystemEvent(ifitem, evt, generic_data__et)) {
+ switch (getState()) {
+ default:
+ /* should not occur */
+ break;
+ }
+ }
+ if (chain__et != NOT_CAUGHT) {
+ exitTo(getState(), catching_state__et, is_handler__et);
+ {
+ int next__et = executeTransitionChain(chain__et, ifitem, generic_data__et);
+ next__et = enterHistory(next__et, is_handler__et);
+ setState(next__et);
+ }
+ }
+ }
+ public void receiveEvent(InterfaceItemBase ifitem, int evt, Object generic_data__et) {
+ int localId = (ifitem==null)? 0 : ifitem.getLocalId();
+ receiveEventInternal(ifitem, localId, evt, generic_data__et);
+ }
+
+};
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.java
new file mode 100644
index 0000000..d74d2b3
--- /dev/null
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/contracts/monitors/PContractMonitorControl.java
@@ -0,0 +1,199 @@
+package etrice.api.contracts.monitors;
+
+import org.eclipse.etrice.runtime.java.messaging.Message;
+import org.eclipse.etrice.runtime.java.modelbase.EventMessage;
+import org.eclipse.etrice.runtime.java.modelbase.EventWithDataMessage;
+import org.eclipse.etrice.runtime.java.modelbase.IInterfaceItemOwner;
+import org.eclipse.etrice.runtime.java.modelbase.InterfaceItemBase;
+import org.eclipse.etrice.runtime.java.modelbase.PortBase;
+import org.eclipse.etrice.runtime.java.modelbase.ReplicatedPortBase;
+import org.eclipse.etrice.runtime.java.debugging.DebuggingService;
+import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
+
+
+
+public class PContractMonitorControl {
+ // message IDs
+ public static final int MSG_MIN = 0;
+ public static final int OUT_violationStatus = 1;
+ public static final int OUT_violationOccured = 2;
+ public static final int IN_getAndResetStatus = 3;
+ public static final int IN_setForwardInvalidMessages = 4;
+ public static final int MSG_MAX = 5;
+
+
+ private static String messageStrings[] = {"MIN", "violationStatus","violationOccured", "getAndResetStatus","setForwardInvalidMessages","MAX"};
+
+ public String getMessageString(int msg_id) {
+ if (msg_id<MSG_MIN || msg_id>MSG_MAX+1){
+ // id out of range
+ return "Message ID out of range";
+ }
+ else{
+ return messageStrings[msg_id];
+ }
+ }
+
+
+ // port class
+ static public class PContractMonitorControlPort extends PortBase {
+ // constructors
+ public PContractMonitorControlPort(IInterfaceItemOwner actor, String name, int localId) {
+ this(actor, name, localId, 0);
+ }
+ public PContractMonitorControlPort(IInterfaceItemOwner actor, String name, int localId, int idx) {
+ super(actor, name, localId, idx);
+ DebuggingService.getInstance().addPortInstance(this);
+ }
+
+ public void destroy() {
+ DebuggingService.getInstance().removePortInstance(this);
+ super.destroy();
+ }
+
+ @Override
+ public void receive(Message m) {
+ if (!(m instanceof EventMessage))
+ return;
+ EventMessage msg = (EventMessage) m;
+ if (0 < msg.getEvtId() && msg.getEvtId() < MSG_MAX) {
+ DebuggingService.getInstance().addMessageAsyncIn(getPeerAddress(), getAddress(), messageStrings[msg.getEvtId()]);
+ if (msg instanceof EventWithDataMessage)
+ getActor().receiveEvent(this, msg.getEvtId(), ((EventWithDataMessage)msg).getData());
+ else
+ getActor().receiveEvent(this, msg.getEvtId(), null);
+ }
+ }
+
+
+ // sent messages
+ public void violationStatus(boolean transitionData) {
+ DebuggingService.getInstance().addMessageAsyncOut(getAddress(), getPeerAddress(), messageStrings[OUT_violationStatus]);
+ if (getPeerAddress()!=null)
+ getPeerMsgReceiver().receive(new EventWithDataMessage(getPeerAddress(), OUT_violationStatus, transitionData));
+ }
+ public void violationOccured() {
+ DebuggingService.getInstance().addMessageAsyncOut(getAddress(), getPeerAddress(), messageStrings[OUT_violationOccured]);
+ if (getPeerAddress()!=null)
+ getPeerMsgReceiver().receive(new EventMessage(getPeerAddress(), OUT_violationOccured));
+ }
+ }
+
+ // replicated port class
+ static public class PContractMonitorControlReplPort extends ReplicatedPortBase {
+
+ public PContractMonitorControlReplPort(IInterfaceItemOwner actor, String name, int localId) {
+ super(actor, name, localId);
+ }
+
+ public int getReplication() {
+ return getNInterfaceItems();
+ }
+
+ public int getIndexOf(InterfaceItemBase ifitem){
+ return ifitem.getIdx();
+ }
+
+ public PContractMonitorControlPort get(int idx) {
+ return (PContractMonitorControlPort) getInterfaceItem(idx);
+ }
+
+ protected InterfaceItemBase createInterfaceItem(IInterfaceItemOwner rcv, String name, int lid, int idx) {
+ return new PContractMonitorControlPort(rcv, name, lid, idx);
+ }
+
+ // outgoing messages
+ public void violationStatus(boolean transitionData){
+ for (InterfaceItemBase item : getItems()) {
+ ((PContractMonitorControlPort)item).violationStatus( transitionData);
+ }
+ }
+ public void violationOccured(){
+ for (InterfaceItemBase item : getItems()) {
+ ((PContractMonitorControlPort)item).violationOccured();
+ }
+ }
+ }
+
+
+ // port class
+ static public class PContractMonitorControlConjPort extends PortBase {
+ // constructors
+ public PContractMonitorControlConjPort(IInterfaceItemOwner actor, String name, int localId) {
+ this(actor, name, localId, 0);
+ }
+ public PContractMonitorControlConjPort(IInterfaceItemOwner actor, String name, int localId, int idx) {
+ super(actor, name, localId, idx);
+ DebuggingService.getInstance().addPortInstance(this);
+ }
+
+ public void destroy() {
+ DebuggingService.getInstance().removePortInstance(this);
+ super.destroy();
+ }
+
+ @Override
+ public void receive(Message m) {
+ if (!(m instanceof EventMessage))
+ return;
+ EventMessage msg = (EventMessage) m;
+ if (0 < msg.getEvtId() && msg.getEvtId() < MSG_MAX) {
+ DebuggingService.getInstance().addMessageAsyncIn(getPeerAddress(), getAddress(), messageStrings[msg.getEvtId()]);
+ if (msg instanceof EventWithDataMessage)
+ getActor().receiveEvent(this, msg.getEvtId(), ((EventWithDataMessage)msg).getData());
+ else
+ getActor().receiveEvent(this, msg.getEvtId(), null);
+ }
+ }
+
+
+ // sent messages
+ public void getAndResetStatus() {
+ DebuggingService.getInstance().addMessageAsyncOut(getAddress(), getPeerAddress(), messageStrings[IN_getAndResetStatus]);
+ if (getPeerAddress()!=null)
+ getPeerMsgReceiver().receive(new EventMessage(getPeerAddress(), IN_getAndResetStatus));
+ }
+ public void setForwardInvalidMessages(boolean transitionData) {
+ DebuggingService.getInstance().addMessageAsyncOut(getAddress(), getPeerAddress(), messageStrings[IN_setForwardInvalidMessages]);
+ if (getPeerAddress()!=null)
+ getPeerMsgReceiver().receive(new EventWithDataMessage(getPeerAddress(), IN_setForwardInvalidMessages, transitionData));
+ }
+ }
+
+ // replicated port class
+ static public class PContractMonitorControlConjReplPort extends ReplicatedPortBase {
+
+ public PContractMonitorControlConjReplPort(IInterfaceItemOwner actor, String name, int localId) {
+ super(actor, name, localId);
+ }
+
+ public int getReplication() {
+ return getNInterfaceItems();
+ }
+
+ public int getIndexOf(InterfaceItemBase ifitem){
+ return ifitem.getIdx();
+ }
+
+ public PContractMonitorControlConjPort get(int idx) {
+ return (PContractMonitorControlConjPort) getInterfaceItem(idx);
+ }
+
+ protected InterfaceItemBase createInterfaceItem(IInterfaceItemOwner rcv, String name, int lid, int idx) {
+ return new PContractMonitorControlConjPort(rcv, name, lid, idx);
+ }
+
+ // incoming messages
+ public void getAndResetStatus(){
+ for (InterfaceItemBase item : getItems()) {
+ ((PContractMonitorControlConjPort)item).getAndResetStatus();
+ }
+ }
+ public void setForwardInvalidMessages(boolean transitionData){
+ for (InterfaceItemBase item : getItems()) {
+ ((PContractMonitorControlConjPort)item).setForwardInvalidMessages( transitionData);
+ }
+ }
+ }
+
+}
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/ALogService.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/ALogService.java
similarity index 98%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/ALogService.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/ALogService.java
index 0690a7f..f823eda 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/ALogService.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/ALogService.java
@@ -1,4 +1,4 @@
-package room.basic.service.logging;
+package etrice.api.logger;
import org.eclipse.etrice.runtime.java.messaging.*;
import org.eclipse.etrice.runtime.java.modelbase.*;
@@ -6,7 +6,7 @@
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
-import room.basic.service.logging.Log.*;
+import etrice.api.logger.Log.*;
/*--------------------- begin user code ---------------------*/
import java.io.*;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/InternalLogData.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/InternalLogData.java
similarity index 68%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/InternalLogData.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/InternalLogData.java
index d14c2e3..837419f 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/InternalLogData.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/InternalLogData.java
@@ -1,14 +1,15 @@
-package room.basic.service.logging;
+package etrice.api.logger;
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
import java.io.Serializable;
+import java.util.Objects;
public class InternalLogData implements Serializable {
- private static final long serialVersionUID = 463634558L;
+ private static final long serialVersionUID = -628590937L;
/*--------------------- attributes ---------------------*/
@@ -68,4 +69,24 @@
copy.timeStamp = timeStamp;
return copy;
}
+
+ // deep equals
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ }
+ if(other == null || this.getClass() != other.getClass()) {
+ return false;
+ }
+
+ InternalLogData casted = (InternalLogData) other;
+ return Objects.deepEquals(this.userString, casted.userString) && Objects.deepEquals(this.sender, casted.sender) && Objects.deepEquals(this.timeStamp, casted.timeStamp);
+ }
+
+ // deep hashCode
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.userString, this.sender, this.timeStamp);
+ }
};
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/Log.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/Log.java
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/Log.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/Log.java
index ed23fe2..897e63d 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/logging/Log.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/logger/Log.java
@@ -1,4 +1,4 @@
-package room.basic.service.logging;
+package etrice.api.logger;
import org.eclipse.etrice.runtime.java.messaging.Message;
import org.eclipse.etrice.runtime.java.modelbase.EventMessage;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpClient.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpClient.java
similarity index 98%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpClient.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpClient.java
index 9c3c2bb..115bb29 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpClient.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpClient.java
@@ -1,4 +1,4 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import org.eclipse.etrice.runtime.java.messaging.*;
import org.eclipse.etrice.runtime.java.modelbase.*;
@@ -6,8 +6,8 @@
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
-import room.basic.service.tcp.PTcpControl.*;
-import room.basic.service.tcp.PTcpPayload.*;
+import etrice.api.tcp.PTcpControl.*;
+import etrice.api.tcp.PTcpPayload.*;
/*--------------------- begin user code ---------------------*/
import java.net.Socket;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpServer.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpServer.java
similarity index 98%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpServer.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpServer.java
index 599fb59..a13aac1 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/ATcpServer.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/ATcpServer.java
@@ -1,4 +1,4 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import org.eclipse.etrice.runtime.java.messaging.*;
import org.eclipse.etrice.runtime.java.modelbase.*;
@@ -6,8 +6,8 @@
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
-import room.basic.service.tcp.PTcpControl.*;
-import room.basic.service.tcp.PTcpPayload.*;
+import etrice.api.tcp.PTcpControl.*;
+import etrice.api.tcp.PTcpPayload.*;
/*--------------------- begin user code ---------------------*/
import java.net.ServerSocket;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpControl.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpControl.java
similarity index 66%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpControl.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpControl.java
index c8fbef7..78927ce 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpControl.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpControl.java
@@ -1,14 +1,15 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
import java.io.Serializable;
+import java.util.Objects;
public class DTcpControl implements Serializable {
- private static final long serialVersionUID = -156692117L;
+ private static final long serialVersionUID = 1104167705L;
/*--------------------- attributes ---------------------*/
@@ -58,4 +59,24 @@
copy.TcpPort = TcpPort;
return copy;
}
+
+ // deep equals
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ }
+ if(other == null || this.getClass() != other.getClass()) {
+ return false;
+ }
+
+ DTcpControl casted = (DTcpControl) other;
+ return Objects.deepEquals(this.IPAddr, casted.IPAddr) && Objects.deepEquals(this.TcpPort, casted.TcpPort);
+ }
+
+ // deep hashCode
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.IPAddr, this.TcpPort);
+ }
};
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpPayload.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpPayload.java
similarity index 70%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpPayload.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpPayload.java
index c08b663..7b3275b 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/DTcpPayload.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/DTcpPayload.java
@@ -1,14 +1,15 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
import java.io.Serializable;
+import java.util.Objects;
public class DTcpPayload implements Serializable {
- private static final long serialVersionUID = -1894937188L;
+ private static final long serialVersionUID = -634077366L;
/*--------------------- attributes ---------------------*/
@@ -75,4 +76,24 @@
}
return copy;
}
+
+ // deep equals
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ }
+ if(other == null || this.getClass() != other.getClass()) {
+ return false;
+ }
+
+ DTcpPayload casted = (DTcpPayload) other;
+ return Objects.deepEquals(this.connectionId, casted.connectionId) && Objects.deepEquals(this.length, casted.length) && Objects.deepEquals(this.data, casted.data);
+ }
+
+ // deep hashCode
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.connectionId, this.length, this.data);
+ }
};
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpControl.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpControl.java
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpControl.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpControl.java
index 1e6bfec..1f86a80 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpControl.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpControl.java
@@ -1,4 +1,4 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import org.eclipse.etrice.runtime.java.messaging.Message;
import org.eclipse.etrice.runtime.java.modelbase.EventMessage;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpPayload.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpPayload.java
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpPayload.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpPayload.java
index 972ab7e..807793c 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/tcp/PTcpPayload.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/tcp/PTcpPayload.java
@@ -1,4 +1,4 @@
-package room.basic.service.tcp;
+package etrice.api.tcp;
import org.eclipse.etrice.runtime.java.messaging.Message;
import org.eclipse.etrice.runtime.java.modelbase.EventMessage;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/ATimingService.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/ATimerService.java
similarity index 87%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/ATimingService.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/ATimerService.java
index 879caea..961f7b7 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/ATimingService.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/ATimerService.java
@@ -1,4 +1,4 @@
-package room.basic.service.timing;
+package etrice.api.timer;
import org.eclipse.etrice.runtime.java.messaging.*;
import org.eclipse.etrice.runtime.java.modelbase.*;
@@ -6,14 +6,14 @@
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
-import room.basic.service.timing.PTimer.*;
+import etrice.api.timer.PTimer.*;
/*--------------------- begin user code ---------------------*/
import java.util.Timer;
/*--------------------- end user code ---------------------*/
-public class ATimingService extends ActorClassBase {
+public class ATimerService extends ActorClassBase {
/*--------------------- begin user code ---------------------*/
private Timer timerService = null;
@@ -36,17 +36,19 @@
/*--------------------- attributes ---------------------*/
/*--------------------- operations ---------------------*/
- public void stop() {
- System.out.println(toString() + "::stop()");
- timerService.cancel();
- timerService = null;
+ public void stopUser() {
+ System.out.println(toString() + "::stop()");
+ if(timerService != null) {
+ timerService.cancel();
+ timerService = null;
+ }
}
//--------------------- construction
- public ATimingService(IRTObject parent, String name) {
+ public ATimerService(IRTObject parent, String name) {
super(parent, name);
- setClassName("ATimingService");
+ setClassName("ATimerService");
// initialize attributes
@@ -75,6 +77,9 @@
}
//--------------------- lifecycle functions
+ public void stop(){
+ super.stop();
+ }
public void destroy(){
/* user defined destructor body */
@@ -169,24 +174,24 @@
*/
private int executeTransitionChain(int chain__et, InterfaceItemBase ifitem, Object generic_data__et) {
switch (chain__et) {
- case ATimingService.CHAIN_TRANS_INITIAL_TO__Operational:
+ case ATimerService.CHAIN_TRANS_INITIAL_TO__Operational:
{
action_TRANS_INITIAL_TO__Operational();
return STATE_Operational;
}
- case ATimingService.CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_internalStartTimertimer_tr1:
+ case ATimerService.CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_internalStartTimertimer_tr1:
{
TimerData transitionData = (TimerData) generic_data__et;
action_TRANS_tr1_FROM_Operational_TO_Operational_BY_internalStartTimertimer_tr1(ifitem, transitionData);
return STATE_Operational;
}
- case ATimingService.CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_internalStartTimeouttimer_tr3:
+ case ATimerService.CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_internalStartTimeouttimer_tr3:
{
TimerData transitionData = (TimerData) generic_data__et;
action_TRANS_tr3_FROM_Operational_TO_Operational_BY_internalStartTimeouttimer_tr3(ifitem, transitionData);
return STATE_Operational;
}
- case ATimingService.CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
+ case ATimerService.CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4:
{
action_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4(ifitem);
return STATE_Operational;
@@ -228,7 +233,7 @@
}
public void executeInitTransition() {
- int chain__et = ATimingService.CHAIN_TRANS_INITIAL_TO__Operational;
+ int chain__et = ATimerService.CHAIN_TRANS_INITIAL_TO__Operational;
int next__et = executeTransitionChain(chain__et, null, null);
next__et = enterHistory(next__et);
setState(next__et);
@@ -246,19 +251,19 @@
switch(trigger__et) {
case TRIG_timer__internalStartTimeout:
{
- chain__et = ATimingService.CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_internalStartTimeouttimer_tr3;
+ chain__et = ATimerService.CHAIN_TRANS_tr3_FROM_Operational_TO_Operational_BY_internalStartTimeouttimer_tr3;
catching_state__et = STATE_TOP;
}
break;
case TRIG_timer__internalStartTimer:
{
- chain__et = ATimingService.CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_internalStartTimertimer_tr1;
+ chain__et = ATimerService.CHAIN_TRANS_tr1_FROM_Operational_TO_Operational_BY_internalStartTimertimer_tr1;
catching_state__et = STATE_TOP;
}
break;
case TRIG_timer__kill:
{
- chain__et = ATimingService.CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
+ chain__et = ATimerService.CHAIN_TRANS_tr4_FROM_Operational_TO_Operational_BY_killtimer_tr4;
catching_state__et = STATE_TOP;
}
break;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/PTimer.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/PTimer.java
similarity index 99%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/PTimer.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/PTimer.java
index 155158a..9f66393 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/PTimer.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/PTimer.java
@@ -1,4 +1,4 @@
-package room.basic.service.timing;
+package etrice.api.timer;
import org.eclipse.etrice.runtime.java.messaging.Message;
import org.eclipse.etrice.runtime.java.modelbase.EventMessage;
diff --git a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/TimerData.java b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/TimerData.java
similarity index 64%
rename from runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/TimerData.java
rename to runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/TimerData.java
index a6a4dc2..576f6c4 100644
--- a/runtime/org.eclipse.etrice.modellib.java/src-gen/room/basic/service/timing/TimerData.java
+++ b/runtime/org.eclipse.etrice.modellib.java/src-gen/etrice/api/timer/TimerData.java
@@ -1,14 +1,15 @@
-package room.basic.service.timing;
+package etrice.api.timer;
import static org.eclipse.etrice.runtime.java.etunit.EtUnit.*;
import java.io.Serializable;
+import java.util.Objects;
public class TimerData implements Serializable {
- private static final long serialVersionUID = 633780889L;
+ private static final long serialVersionUID = -1450140988L;
/*--------------------- attributes ---------------------*/
@@ -57,4 +58,24 @@
copy.id = id;
return copy;
}
+
+ // deep equals
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ }
+ if(other == null || this.getClass() != other.getClass()) {
+ return false;
+ }
+
+ TimerData casted = (TimerData) other;
+ return Objects.deepEquals(this.time, casted.time) && Objects.deepEquals(this.id, casted.id);
+ }
+
+ // deep hashCode
+ @Override
+ public int hashCode() {
+ return Objects.hash(this.time, this.id);
+ }
};
diff --git a/tests/org.eclipse.etrice.generator.c.tests/models/SendingDataTest.room b/tests/org.eclipse.etrice.generator.c.tests/models/SendingDataTest.room
index b1cb1bc..46df9f6 100644
--- a/tests/org.eclipse.etrice.generator.c.tests/models/SendingDataTest.room
+++ b/tests/org.eclipse.etrice.generator.c.tests/models/SendingDataTest.room
@@ -1,13 +1,13 @@
RoomModel SendingDataTest {
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.language.languageIndicator
- import room.basic.test.TestInstance
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.language.languageIndicator
+ import etrice.api.annotations.TestInstance
ActorClass SendingDataTop {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.etmap b/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.etmap
index 2fd5a28..b20a3be 100644
--- a/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.etmap
+++ b/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.etmap
@@ -1,7 +1,7 @@
MappingModel StaticConfigTest {
import StaticConfigTest.System_StaticConfigTest
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping System_StaticConfigTest -> GenericPhysicalSystem {
SubSystemMapping main -> node {
diff --git a/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.room b/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.room
index 53151de..fe886ae 100644
--- a/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.room
+++ b/tests/org.eclipse.etrice.generator.c.tests/models/StaticConfigTest.room
@@ -1,16 +1,16 @@
RoomModel StaticConfigTest {
- import room.basic.types.boolean
- import room.basic.types.char
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.types.string
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.boolean
+ import etrice.api.types.char
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.types.string
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem System_StaticConfigTest {
SubSystemRef main: SubSystem_StaticConfigTest
@@ -19,7 +19,7 @@
SubSystemClass SubSystem_StaticConfigTest {
LayerConnection ref top satisfied_by timer.timer
ActorRef top: Top_ac
- ActorRef timer: ATimingService
+ ActorRef timer: ATimerService
LogicalThread defaultThread
}
diff --git a/tests/org.eclipse.etrice.generator.common.tests/model-gen/ContractMonitor_monitors.room b/tests/org.eclipse.etrice.generator.common.tests/model-gen/ContractMonitor_monitors.room
index 6fe971b..c891f36 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/model-gen/ContractMonitor_monitors.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/model-gen/ContractMonitor_monitors.room
@@ -2,7 +2,7 @@
RoomModel ContractMonitor_monitors {
- import room.basic.types.*
+ import etrice.api.types.*
import etrice.api.contracts.definitions.*
import ContractMonitor.*
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ActorCommunicationTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/ActorCommunicationTest.room
index 0d624e1..ce65235 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ActorCommunicationTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ActorCommunicationTest.room
@@ -1,18 +1,18 @@
RoomModel ActorCommunicationTest {
- import room.basic.types.boolean
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.boolean
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
ActorClass ActorCommunicationTest_Top {
@TestInstance
Structure {
ActorRef singleThread_Appl: Appl
- ActorRef timing: ATimingService
+ ActorRef timing: ATimerService
LayerConnection ref singleThread_Appl satisfied_by timing.timer
}
}
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTest.room
index 5bfaed5..9f92417 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTest.room
@@ -1,8 +1,8 @@
RoomModel ChoicePointTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
ActorClass CPTest_Top {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTestExtended.room b/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTestExtended.room
index 9d6e0ff..8e1e7aa 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTestExtended.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ChoicePointTestExtended.room
@@ -1,8 +1,8 @@
RoomModel ChoicePointTestExtended {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
ActorClass ChoicePointTestExtended_Top {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/CompileTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/CompileTest.room
index 2646da9..560ca46 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/CompileTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/CompileTest.room
@@ -1,7 +1,7 @@
RoomModel CompileTest {
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
import DetailExpressionTest.DetailExpressionTest
import StatemachineInterfaceTest.StatemachineInterfaceTest
import StatemachineInterfaceInheritedTest.StatemachineInterfaceInheritedTest
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ContinuationTransitionTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/ContinuationTransitionTest.room
index eee0e74..f96afca 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ContinuationTransitionTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ContinuationTransitionTest.room
@@ -1,8 +1,8 @@
RoomModel ContinuationTransitionTest {
- import room.basic.types.boolean
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.boolean
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
ActorClass ContinuationTransitionTest {
Structure {
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitor.room b/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitor.room
index e3d9685..6a84ac6 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitor.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitor.room
@@ -1,6 +1,6 @@
RoomModel ContractMonitor {
- import room.basic.types.*
+ import etrice.api.types.*
import etrice.api.contracts.definitions.*
ProtocolClass PLoginProtocol {
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitorTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitorTest.room
index 6c518e9..0b46da9 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitorTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/ContractMonitorTest.room
@@ -1,11 +1,11 @@
RoomModel ContractMonitorTest {
- import room.basic.service.timing.PTimer
- import room.basic.types.*
- import room.basic.test.TestInstance
- import ContractMonitor.*
- import room.basic.service.timing.ATimingService
+ import etrice.api.timer.PTimer
+ import etrice.api.types.*
+ import etrice.api.annotations.TestInstance
+ import etrice.api.timer.ATimerService
import etrice.api.contracts.monitors.PContractMonitorControl
+ import ContractMonitor.*
import ContractMonitor_monitors.LoginProtocolMonitor
ProtocolClass PClientTest {
@@ -22,7 +22,7 @@
@TestInstance
Structure {
ActorRef appl: Appl
- ActorRef timing: ATimingService
+ ActorRef timing: ATimerService
LayerConnection ref appl satisfied_by timing.timer
}
}
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/DataDrivenTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/DataDrivenTest.room
index 5b99bff..b5889c9 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/DataDrivenTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/DataDrivenTest.room
@@ -1,18 +1,18 @@
RoomModel DataDrivenTest {
- import room.basic.types.float32
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
- import room.basic.test.TestInstance
+ import etrice.api.types.float32
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
+ import etrice.api.annotations.TestInstance
ActorClass DataDrivenTest_Top {
@TestInstance
Structure {
ActorRef appl: Appl
- ActorRef timing: ATimingService
+ ActorRef timing: ATimerService
LayerConnection ref appl satisfied_by timing.timer
}
}
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
index 8fa7771..ed01c9b 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
@@ -1,9 +1,9 @@
RoomModel DetailExpressionTest {
- import room.basic.types.boolean
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.boolean
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
import DetailExpressionEnum.PEnumProtocol
ActorClass DetailExpressionCompileTest {
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/EnumTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/EnumTest.room
index b3dd275..e82f763 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/EnumTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/EnumTest.room
@@ -1,8 +1,8 @@
RoomModel EnumTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
ActorClass EnumTest_Top {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/HandlerTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/HandlerTest.room
index 0aebcb9..7bf88bd 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/HandlerTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/HandlerTest.room
@@ -1,8 +1,8 @@
RoomModel HandlerTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
ActorClass HandlerTest_Top {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/OperationInheritanceTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/OperationInheritanceTest.room
index 9520754..43af16a 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/OperationInheritanceTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/OperationInheritanceTest.room
@@ -1,7 +1,7 @@
RoomModel OperationInheritanceTest {
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
async ActorClass OperationInheritanceTest extends BaseActor {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadReplPortTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadReplPortTest.room
index 062ded6..669e232 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadReplPortTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadReplPortTest.room
@@ -1,9 +1,9 @@
RoomModel PingPongThreadReplPortTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem System_PingPongReplPort {
@@ -12,7 +12,7 @@
SubSystemClass SubSystem_PingPongReplPort {
ActorRef application: PingPongTop
- ActorRef services: ATimingService
+ ActorRef services: ATimerService
LayerConnection ref application satisfied_by services.timer
LogicalThread mrPingThread
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadTest.room
index 116664d..343b927 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/PingPongThreadTest.room
@@ -1,9 +1,9 @@
RoomModel PingPongThreadTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem System_PingPong {
SubSystemRef main: SubSystem_PingPong
@@ -11,7 +11,7 @@
SubSystemClass SubSystem_PingPong {
ActorRef application: PingPongTop
- ActorRef services: ATimingService
+ ActorRef services: ATimerService
LayerConnection ref application satisfied_by services.timer
LogicalThread mrPingThread
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/StatemachineInterfaceTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/StatemachineInterfaceTest.room
index f424be6..f74e1e3 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/StatemachineInterfaceTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/StatemachineInterfaceTest.room
@@ -1,6 +1,6 @@
RoomModel StatemachineInterfaceTest {
- import room.basic.types.boolean
+ import etrice.api.types.boolean
ActorClass StatemachineInterfaceTest {
Structure {
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room
index 71ff99d..ddf1dc2 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room
@@ -1,7 +1,7 @@
RoomModel SubSystemUserCodeTest {
- import room.basic.annotations.SubSystemUserCode
- import room.basic.test.TestInstance
+ import etrice.api.annotations.SubSystemUserCode
+ import etrice.api.annotations.TestInstance
ActorClass AGeneratedUserCode {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/VarargsTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/VarargsTest.room
index 12933cb..e65593f 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/VarargsTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/VarargsTest.room
@@ -1,9 +1,9 @@
RoomModel VarargsTest {
- import room.basic.types.boolean
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.boolean
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
ActorClass AVarargs {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.cpp.tests/models/InitializationTest.room b/tests/org.eclipse.etrice.generator.cpp.tests/models/InitializationTest.room
index dc3b671..bf59121 100644
--- a/tests/org.eclipse.etrice.generator.cpp.tests/models/InitializationTest.room
+++ b/tests/org.eclipse.etrice.generator.cpp.tests/models/InitializationTest.room
@@ -1,9 +1,9 @@
RoomModel InitializationTest {
- import room.basic.types.boolean
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.test.TestInstance
+ import etrice.api.types.boolean
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.annotations.TestInstance
async ActorClass InitializationTest {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.cpp.tests/models/SendingDataTest.room b/tests/org.eclipse.etrice.generator.cpp.tests/models/SendingDataTest.room
index 349fa45..a753f7e 100644
--- a/tests/org.eclipse.etrice.generator.cpp.tests/models/SendingDataTest.room
+++ b/tests/org.eclipse.etrice.generator.cpp.tests/models/SendingDataTest.room
@@ -1,13 +1,13 @@
RoomModel SendingDataTest {
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.test.TestInstance
- import room.basic.language.languageIndicator
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.annotations.TestInstance
+ import etrice.api.language.languageIndicator
ActorClass SendingDataTop {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.etmap b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.etmap
index 70952d3..6e17724 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.etmap
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.etmap
@@ -1,7 +1,7 @@
MappingModel DynamicActorTest1 {
import DynamicActorTest1.JavaGenTests
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping JavaGenTests -> GenericPhysicalSystem {
SubSystemMapping da1Test -> node {
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.room
index fa0c36d..d9343b1 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest1.room
@@ -1,7 +1,7 @@
RoomModel DynamicActorTest1 {
- import room.basic.types.int32
- import room.basic.types.string
+ import etrice.api.types.int32
+ import etrice.api.types.string
LogicalSystem JavaGenTests {
SubSystemRef da1Test: SubSystem_DynamicActorTest1
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.etmap b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.etmap
index af042ed..ae1a627 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.etmap
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.etmap
@@ -1,6 +1,6 @@
MappingModel DynamicActorTest1 {
import DynamicActorTest2.JavaGenTests
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping JavaGenTests -> GenericPhysicalSystem {
SubSystemMapping da2Test -> node {
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.room
index a11f065..aa6aad1 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest2.room
@@ -1,7 +1,7 @@
RoomModel DynamicActorTest2 {
- import room.basic.types.int32
- import room.basic.types.string
+ import etrice.api.types.int32
+ import etrice.api.types.string
LogicalSystem JavaGenTests {
SubSystemRef da2Test: SubSystem_DynamicActorTest2
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest3.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest3.room
index 1c39154..9c36bcb 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest3.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest3.room
@@ -1,8 +1,8 @@
RoomModel DynamicActorTest3 {
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
ActorClass Appl {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest4.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest4.room
index 9f05cef..1314a0c 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest4.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest4.room
@@ -1,8 +1,8 @@
RoomModel DynamicActorTest4 {
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
ActorClass Appl {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest5.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest5.room
index 0c642c8..c2558a7 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest5.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest5.room
@@ -1,8 +1,8 @@
RoomModel DynamicActorTest5 {
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
ActorClass Appl {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest6.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest6.room
index 3a10ce5..fe95b06 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest6.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest6.room
@@ -1,8 +1,8 @@
RoomModel DynamicActorTest6 {
- import room.basic.types.int32
- import room.basic.types.string
- import room.basic.test.TestInstance
+ import etrice.api.types.int32
+ import etrice.api.types.string
+ import etrice.api.annotations.TestInstance
ActorClass Appl {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.etmap b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.etmap
index a2738a1..e53423a 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.etmap
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.etmap
@@ -1,7 +1,7 @@
MappingModel DynamicActorTest1 {
import DynamicActorTest7.JavaGenTests
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping JavaGenTests -> GenericPhysicalSystem {
SubSystemMapping da7Test -> node {
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.room
index f57cde4..731adfb 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicActorTest7.room
@@ -1,13 +1,13 @@
RoomModel DynamicActorTest7 {
- import room.basic.types.boolean
- import room.basic.types.char
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.types.string
+ import etrice.api.types.boolean
+ import etrice.api.types.char
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.types.string
LogicalSystem JavaGenTests {
SubSystemRef da7Test: SubSystem_DynamicActorTest7
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.etmap b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.etmap
index c6423ca..95f5759 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.etmap
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.etmap
@@ -1,7 +1,7 @@
MappingModel DynamicConfigTest {
import DynamicConfigTest.System_DynamicConfigTest
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping System_DynamicConfigTest -> GenericPhysicalSystem {
SubSystemMapping main -> node {
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.room b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.room
index 9fe6321..8ee8927 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/DynamicConfigTest.room
@@ -1,16 +1,16 @@
RoomModel DynamicConfigTest {
- import room.basic.types.char
- import room.basic.types.boolean
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.types.string
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.char
+ import etrice.api.types.boolean
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.types.string
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem System_DynamicConfigTest {
SubSystemRef main: SubSystem_DynamicConfigTest
@@ -18,7 +18,7 @@
SubSystemClass SubSystem_DynamicConfigTest {
ActorRef testee: Testee_ac
- ActorRef timingService: ATimingService
+ ActorRef timingService: ATimerService
LayerConnection ref testee satisfied_by timingService.timer
LogicalThread defaultThread
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/SendingDataTest.room b/tests/org.eclipse.etrice.generator.java.tests/models/SendingDataTest.room
index 0e8f5f7..f1726d3 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/SendingDataTest.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/SendingDataTest.room
@@ -1,13 +1,13 @@
RoomModel SendingDataTest {
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.test.TestInstance
- import room.basic.language.languageIndicator
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.annotations.TestInstance
+ import etrice.api.language.languageIndicator
ActorClass SendingDataTop {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.etmap b/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.etmap
index 2fd5a28..b20a3be 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.etmap
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.etmap
@@ -1,7 +1,7 @@
MappingModel StaticConfigTest {
import StaticConfigTest.System_StaticConfigTest
- import room.generic.physical.GenericPhysicalSystem
+ import GenericPhysical.GenericPhysicalSystem
Mapping System_StaticConfigTest -> GenericPhysicalSystem {
SubSystemMapping main -> node {
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.room b/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.room
index a23ad85..03b26ac 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/StaticConfigTest.room
@@ -1,16 +1,16 @@
RoomModel StaticConfigTest {
- import room.basic.types.boolean
- import room.basic.types.char
- import room.basic.types.int8
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.types.int64
- import room.basic.types.float32
- import room.basic.types.float64
- import room.basic.types.string
- import room.basic.service.timing.PTimer
- import room.basic.service.timing.ATimingService
+ import etrice.api.types.boolean
+ import etrice.api.types.char
+ import etrice.api.types.int8
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.types.int64
+ import etrice.api.types.float32
+ import etrice.api.types.float64
+ import etrice.api.types.string
+ import etrice.api.timer.PTimer
+ import etrice.api.timer.ATimerService
LogicalSystem System_StaticConfigTest {
SubSystemRef main: SubSystem_StaticConfigTest
@@ -19,7 +19,7 @@
SubSystemClass SubSystem_StaticConfigTest {
LayerConnection ref top satisfied_by timer.timer
ActorRef top: Top_ac
- ActorRef timer: ATimingService
+ ActorRef timer: ATimerService
LogicalThread defaultThread
}
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/StoreRestoreTest.room b/tests/org.eclipse.etrice.generator.java.tests/models/StoreRestoreTest.room
index e2b90ee..b6db665 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/StoreRestoreTest.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/StoreRestoreTest.room
@@ -1,6 +1,6 @@
RoomModel StoreRestoreTest {
- import room.basic.test.TestInstance
+ import etrice.api.annotations.TestInstance
ActorClass StoreRestore_Top {
@TestInstance
diff --git a/tests/org.eclipse.etrice.generator.java.tests/models/TCPTest.room b/tests/org.eclipse.etrice.generator.java.tests/models/TCPTest.room
index fa510c5..e9529a8 100644
--- a/tests/org.eclipse.etrice.generator.java.tests/models/TCPTest.room
+++ b/tests/org.eclipse.etrice.generator.java.tests/models/TCPTest.room
@@ -1,14 +1,14 @@
RoomModel TCPTest {
- import room.basic.types.int16
- import room.basic.types.int32
- import room.basic.service.tcp.DTcpPayload
- import room.basic.service.tcp.DTcpControl
- import room.basic.service.tcp.PTcpPayload
- import room.basic.service.tcp.PTcpControl
- import room.basic.service.tcp.ATcpClient
- import room.basic.service.tcp.ATcpServer
- import room.basic.test.TestInstance
+ import etrice.api.types.int16
+ import etrice.api.types.int32
+ import etrice.api.tcp.DTcpPayload
+ import etrice.api.tcp.DTcpControl
+ import etrice.api.tcp.PTcpPayload
+ import etrice.api.tcp.PTcpControl
+ import etrice.api.tcp.ATcpClient
+ import etrice.api.tcp.ATcpServer
+ import etrice.api.annotations.TestInstance
ActorClass TCPTestTop {
@TestInstance