From 545e9d484546f04bf29cc29720ee0211f6b67c98 Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Mon, 10 Jul 2023 13:43:17 +0200 Subject: [PATCH] usecase nets --- src/main/resources/nets/SortingNet.pnml | 158 --- .../resources/nets/{ => sample}/TestNet1.pnml | 0 .../resources/nets/{ => sample}/TestNet2.pnml | 4 +- .../resources/nets/{ => sample}/TestNet3.pnml | 0 .../resources/nets/{ => sample}/TestNet4.pnml | 4 +- .../resources/nets/usecase/SortingNet.pnml | 1194 +++++++++++++++++ .../nets/usecase/SortingNetSensor.pnml | 249 ++++ 7 files changed, 1447 insertions(+), 162 deletions(-) delete mode 100644 src/main/resources/nets/SortingNet.pnml rename src/main/resources/nets/{ => sample}/TestNet1.pnml (100%) rename src/main/resources/nets/{ => sample}/TestNet2.pnml (98%) rename src/main/resources/nets/{ => sample}/TestNet3.pnml (100%) rename src/main/resources/nets/{ => sample}/TestNet4.pnml (99%) create mode 100644 src/main/resources/nets/usecase/SortingNet.pnml create mode 100644 src/main/resources/nets/usecase/SortingNetSensor.pnml diff --git a/src/main/resources/nets/SortingNet.pnml b/src/main/resources/nets/SortingNet.pnml deleted file mode 100644 index e668fa7..0000000 --- a/src/main/resources/nets/SortingNet.pnml +++ /dev/null @@ -1,158 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> - <net id="SortingNet" type="http://www.pnml.org/version-2009/grammar/ptnet"> - <name> - <text>SortingNet</text> - </name> - <page id="top"> - <page id="SelectorNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - <place id="RedObjectPool"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeRed</subnet> - </toolspecific> - <name> - <text>RedObjectPool</text> - </name> - </place> - <place id="BlueObjectPool"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeBlue</subnet> - </toolspecific> - <name> - <text>BlueObjectPool</text> - </name> - </place> - <place id="GreenObjectPool"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeGreen</subnet> - </toolspecific> - <name> - <text>GreenObjectPool</text> - </name> - </place> - <place id="RedPublisher"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeRed</subnet> - </toolspecific> - <name> - <text>RedPublisher</text> - </name> - </place> - <place id="BluePublisher"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeBlue</subnet> - </toolspecific> - <name> - <text>BluePublisher</text> - </name> - </place> - <place id="GreenPublisher"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeGreen</subnet> - </toolspecific> - <name> - <text>GreenPublisher</text> - </name> - </place> - - <transition id="SortRed"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeRed</subnet> - <type>discreteTransitionType</type> - <inputsignalclause>(SignalRed)</inputsignalclause> - </toolspecific> - <name> - <text>SortRed</text> - </name> - </transition> - <transition id="SortGreen"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeGreen</subnet> - <type>discreteTransitionType</type> - <inputsignalclause>(SignalGreen)</inputsignalclause> - </toolspecific> - <name> - <text>SortGreen</text> - </name> - </transition> - <transition id="SortBlue"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <node>SelectorNode</node> - <subnet>SelectorNodeBlue</subnet> - <type>discreteTransitionType</type> - <inputsignalclause>(SignalBlue)</inputsignalclause> - </toolspecific> - <name> - <text>SortBlue</text> - </name> - </transition> - - <arc id="sn1" source="RedObjectPool" target="SortRed"> - </arc> - <arc id="sn2" source="GreenObjectPool" target="SortGreen"> - </arc> - <arc id="sn3" source="BlueObjectPool" target="SortBlue"> - </arc> - <arc id="sn4" source="SortRed" target="RedPublisher"> - </arc> - <arc id="sn5" source="SortGreen" target="GreenPublisher"> - </arc> - <arc id="sn6" source="SortBlue" target="BluePublisher"> - </arc> - </page> - - <page id="ControllerLeftNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - - <page id="ControllerRightNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - - <page id="SynchronizerNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - - <page id="ExecutorNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - - <page id="SensorNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - - <page id="FeedbackNodePage"> - <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <type>nodePage</type> - </toolspecific> - - </page> - </page> - </net> -</pnml> diff --git a/src/main/resources/nets/TestNet1.pnml b/src/main/resources/nets/sample/TestNet1.pnml similarity index 100% rename from src/main/resources/nets/TestNet1.pnml rename to src/main/resources/nets/sample/TestNet1.pnml diff --git a/src/main/resources/nets/TestNet2.pnml b/src/main/resources/nets/sample/TestNet2.pnml similarity index 98% rename from src/main/resources/nets/TestNet2.pnml rename to src/main/resources/nets/sample/TestNet2.pnml index 3f15265..3ceccac 100644 --- a/src/main/resources/nets/TestNet2.pnml +++ b/src/main/resources/nets/sample/TestNet2.pnml @@ -6,7 +6,7 @@ <text>ServiceNet</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <communicators> + <!-- <communicators> <communicator> <cType>serviceClient</cType> <cSubnet>s1</cSubnet> @@ -15,7 +15,7 @@ <cType>serviceServer</cType> <cSubnet>s2</cSubnet> </communicator> - </communicators> + </communicators>--> </toolspecific> <page id="top"> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> diff --git a/src/main/resources/nets/TestNet3.pnml b/src/main/resources/nets/sample/TestNet3.pnml similarity index 100% rename from src/main/resources/nets/TestNet3.pnml rename to src/main/resources/nets/sample/TestNet3.pnml diff --git a/src/main/resources/nets/TestNet4.pnml b/src/main/resources/nets/sample/TestNet4.pnml similarity index 99% rename from src/main/resources/nets/TestNet4.pnml rename to src/main/resources/nets/sample/TestNet4.pnml index c2615c5..5ea8aa7 100644 --- a/src/main/resources/nets/TestNet4.pnml +++ b/src/main/resources/nets/sample/TestNet4.pnml @@ -6,7 +6,7 @@ <text>ServiceNet2</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> - <communicators> + <!-- <communicators> <communicator> <cType>serviceClient</cType> <cSubnet>s1</cSubnet> @@ -23,7 +23,7 @@ <cType>serviceServer</cType> <cSubnet>s3</cSubnet> </communicator> - </communicators> + </communicators>--> </toolspecific> <page id="top"> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> diff --git a/src/main/resources/nets/usecase/SortingNet.pnml b/src/main/resources/nets/usecase/SortingNet.pnml new file mode 100644 index 0000000..c79d587 --- /dev/null +++ b/src/main/resources/nets/usecase/SortingNet.pnml @@ -0,0 +1,1194 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="SortingNet" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <name> + <text>SortingNet</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal> + <inputsignalID>SignalRed</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>SignalBlue</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>SignalGreen</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>Stop</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PickSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceFail</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>PlaceSuccess</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>SensorReady</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + </inputsignals> + </toolspecific> + + <page id="top"> + <page id="SelectorNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + <place id="RedObjectPool"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeRed</subnet> + </toolspecific> + <name> + <text>RedObjectPool</text> + </name> + </place> + <place id="BlueObjectPool"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeBlue</subnet> + </toolspecific> + <name> + <text>BlueObjectPool</text> + </name> + </place> + <place id="GreenObjectPool"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeGreen</subnet> + </toolspecific> + <name> + <text>GreenObjectPool</text> + </name> + </place> + <place id="RedPublisher"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeRed</subnet> + </toolspecific> + <name> + <text>RedPublisher</text> + </name> + </place> + <place id="BluePublisher"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeBlue</subnet> + </toolspecific> + <name> + <text>BluePublisher</text> + </name> + </place> + <place id="GreenPublisher"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeGreen</subnet> + </toolspecific> + <name> + <text>GreenPublisher</text> + </name> + </place> + + <transition id="SortRed"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeRed</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(SignalRed)</inputsignalclause> + </toolspecific> + <name> + <text>SortRed</text> + </name> + </transition> + <transition id="SortGreen"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeGreen</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(SignalGreen)</inputsignalclause> + </toolspecific> + <name> + <text>SortGreen</text> + </name> + </transition> + <transition id="SortBlue"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SelectorNode</node> + <subnet>SelectorNodeBlue</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(SignalBlue)</inputsignalclause> + </toolspecific> + <name> + <text>SortBlue</text> + </name> + </transition> + + <arc id="sn1" source="RedObjectPool" target="SortRed"> + </arc> + <arc id="sn2" source="GreenObjectPool" target="SortGreen"> + </arc> + <arc id="sn3" source="BlueObjectPool" target="SortBlue"> + </arc> + <arc id="sn4" source="SortRed" target="RedPublisher"> + </arc> + <arc id="sn5" source="SortGreen" target="GreenPublisher"> + </arc> + <arc id="sn6" source="SortBlue" target="BluePublisher"> + </arc> + </page> + + <transition id="LeftCellObjectsTopicTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>LeftCellObjects</topicName> + <publishers> + <publisher> + <id>RedPublisher</id> + <limit>10</limit> + </publisher> + <publisher> + <id>GreenPublisher</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>L-AwaitingControl</id> + <limit>20</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>LeftCellObjectsTopicTransition</text> + </name> + </transition> + + <transition id="RightCellObjectsTopicTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>RightCellObjects</topicName> + <publishers> + <publisher> + <id>BluePublisher</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>R-AwaitingControl</id> + <limit>10</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>RightCellObjectsTopicTransition</text> + </name> + </transition> + + <page id="ControllerLeftNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="L-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>L-ControllerNode</node> + <subnet>LC1</subnet> + </toolspecific> + <name> + <text>L-AwaitingControl</text> + </name> + </place> + + <place id="L-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>L-ControllerNode</node> + <subnet>LC2</subnet> + </toolspecific> + <name> + <text>L-Ready</text> + </name> + </place> + + <place id="L-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>L-ControllerNode</node> + <subnet>LC3</subnet> + </toolspecific> + <name> + <text>L-ObjectPicked</text> + </name> + </place> + + <place id="L-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>L-ControllerNode</node> + <subnet>LC4</subnet> + </toolspecific> + <name> + <text>L-ObjectPlaced</text> + </name> + </place> + + <place id="L-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>L-ControllerNode</node> + <subnet>LC5</subnet> + </toolspecific> + <name> + <text>L-Done</text> + </name> + </place> + </page> + + <page id="ControllerRightNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="R-AwaitingControl"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>R-ControllerNode</node> + <subnet>RC1</subnet> + </toolspecific> + <name> + <text>R-AwaitingControl</text> + </name> + </place> + + <place id="R-Ready"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>R-ControllerNode</node> + <subnet>RC2</subnet> + </toolspecific> + <name> + <text>R-Ready</text> + </name> + </place> + + <place id="R-ObjectPicked"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>R-ControllerNode</node> + <subnet>RC3</subnet> + </toolspecific> + <name> + <text>R-ObjectPicked</text> + </name> + </place> + + <place id="R-ObjectPlaced"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>R-ControllerNode</node> + <subnet>RC4</subnet> + </toolspecific> + <name> + <text>R-ObjectPlaced</text> + </name> + </place> + + <place id="R-Done"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>R-ControllerNode</node> + <subnet>RC5</subnet> + </toolspecific> + <name> + <text>R-Done</text> + </name> + </place> + </page> + + <transition id="UiTopicTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>topicTransitionType</type> + <topicName>UI</topicName> + <publishers> + <publisher> + <id>R-Done</id> + <limit>10</limit> + </publisher> + <publisher> + <id>L-Done</id> + <limit>10</limit> + </publisher> + </publishers> + <subscribers> + <subscriber> + <id>FeedbackNode</id> + <limit>20</limit> + </subscriber> + </subscribers> + </toolspecific> + <name> + <text>UiTopicTransition</text> + </name> + </transition> + + <page id="SynchronizerNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="GetControlServer"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>GetControl</serviceName> + </toolspecific> + + <place id="GetServerIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>GetServerSubnet</subnet> + </toolspecific> + <name> + <text>GetServerIn</text> + </name> + </place> + + <place id="GetServerOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>GetServerSubnet</subnet> + </toolspecific> + <name> + <text>GetServerOut</text> + </name> + </place> + + <transition id="GetT"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>GetServerSubnet</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>GetT</text> + </name> + </transition> + + <referencePlace id="GetServerRef" ref="Get"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>SynchronizerNode</location> + <subnet>GetServerSubnet</subnet> + </toolspecific> + <name> + <text>GetServerRef</text> + </name> + </referencePlace> + + <arc id="gs1" source="GetServerIn" target="GetT"> + </arc> + <arc id="gs2" source="GetT" target="GetServerOut"> + </arc> + <arc id="gs3" source="referencePlace" target="GetT"> + </arc> + + </page> + + <page id="EndControlServer"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>EndControl</serviceName> + </toolspecific> + + <place id="EndServerIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>EndServerSubnet</subnet> + </toolspecific> + <name> + <text>EndServerIn</text> + </name> + </place> + + <place id="EndServerOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>EndServerSubnet</subnet> + </toolspecific> + <name> + <text>EndServerOut</text> + </name> + </place> + + <referenceTransition id="EndControlRef" ref="End"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>SynchronizerNode</location> + <subnet>EndServerSubnet</subnet> + </toolspecific> + <name> + <text>EndControlRef</text> + </name> + </referenceTransition> + + <arc id="ec1" source="EndServerIn" target="EndControlRef"> + </arc> + <arc id="ec2" source="EndControlRef" target="EndServerOut"> + </arc> + + </page> + + <page id="SemaphorePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>page</type> + </toolspecific> + + <place id="Get"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>SP</subnet> + </toolspecific> + <name> + <text>Get</text> + </name> + <initialMarking> + <text>1</text> + </initialMarking> + </place> + + <transition id="End"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SynchronizerNode</node> + <subnet>SP</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SortBlue</text> + </name> + </transition> + + <arc id="sp1" source="Get" target="End"> + </arc> + </page> + </page> + + <transition id="GetControlServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>GetControl</serviceName> + <serverInput>GetServerIn</serverInput> + <serverOutput>GetServerout</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>L-AwaitingControl</request> + <response>L-Ready</response> + </channel> + <channel> + <cid>RightCellChannel</cid> + <request>R-AwaitingControl</request> + <response>R-Ready</response> + </channel> + </channels> + </toolspecific> + <name> + <text>GetControlServiceTransition</text> + </name> + </transition> + + <transition id="EndControlServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>EndControl</serviceName> + <serverInput>EndControlIn</serverInput> + <serverOutput>EndControlOut</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>L-ObjectPlaced</request> + <response>L-Done</response> + </channel> + <channel> + <cid>RightCellChannel</cid> + <request>R-ObjectPlaced</request> + <response>R-Done</response> + </channel> + </channels> + </toolspecific> + <name> + <text>EndControlServiceTransition</text> + </name> + </transition> + + <page id="ExecutorNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="SafetyModelPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>page</type> + </toolspecific> + + <place id="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Unsafe</text> + </name> + <initialMarking> + <text>1</text> + </initialMarking> + </place> + + <place id="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Safe</text> + </name> + </place> + + <place id="CallSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>CallSensor</text> + </name> + </place> + + <place id="GetSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>GetSensor</text> + </name> + </place> + + <transition id="SafeToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Stop)</inputsignalclause> + </toolspecific> + <name> + <text>SafeToUnsafe</text> + </name> + </transition> + + <transition id="UnsafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>UnsafeToSensorCall</text> + </name> + </transition> + + <transition id="GetSensorToSafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>GetSensorToSafe</text> + </name> + </transition> + + <transition id="SafeToCallSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SafeToCallSensor</text> + </name> + </transition> + + <transition id="GetSensorToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>GetSensorToUnsafe</text> + </name> + </transition> + + <arc id="sm1" source="Unsafe" target="UnsafeToSensorCall"> + </arc> + <arc id="sm2" source="UnsafeToSensorCall" target="CallSensor"> + </arc> + <arc id="sm3" source="GetSensorToUnsafe" target="Unsafe"> + </arc> + <arc id="sm4" source="SafeToUnsafe" target="Unsafe"> + </arc> + <arc id="sm5" source="Safe" target="SafeToUnsafe"> + </arc> + <arc id="sm6" source="Safe" target="SafeToCallSensor"> + </arc> + <arc id="sm7" source="SafeToCallSensor" target="CallSensor"> + </arc> + <arc id="sm8" source="GetSensor" target="GetSensorToUnsafe"> + </arc> + <arc id="sm9" source="GetSensor" target="GetSensorToSafe"> + </arc> + <arc id="sm10" source="GetSensorToSafe" target="Safe"> + </arc> + + </page> + + <page id="PickServerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>PickService</serviceName> + </toolspecific> + + <place id="PickInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickInput</text> + </name> + </place> + + <place id="PickSystemOK"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickSystemOK</text> + </name> + </place> + + <place id="PickSystemFailure"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickSystemFailure</text> + </name> + </place> + + <place id="PickOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickOutput</text> + </name> + </place> + + <place id="PickInter"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickInter</text> + </name> + </place> + + <referencePlace id="PickSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>ExecutorNode</location> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickSafeRef</text> + </name> + </referencePlace> + + <referencePlace id="PickUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>ExecutorNode</location> + <subnet>PickS</subnet> + </toolspecific> + <name> + <text>PickUnsafeRef</text> + </name> + </referencePlace> + + <transition id="PickUnsafeTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickUnsafeTransition</text> + </name> + </transition> + + <transition id="PickOkToFailure"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickFail)</inputsignalclause> + </toolspecific> + <name> + <text>PickOkToFailure</text> + </name> + </transition> + + <transition id="PickFailureToOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickFailureToOutput</text> + </name> + </transition> + + <transition id="PickSafeTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PickSafeTransition</text> + </name> + </transition> + + <transition id="PickSafeToOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PickS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PickSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PickSafeToOutput</text> + </name> + </transition> + + <arc id="ps1" source="PickUnsafeRef" target="PickUnsafeTransition"> + </arc> + <arc id="ps2" source="PickUnsafeTransition" target="PickUnsafeRef"> + </arc> + <arc id="ps3" source="PickSystemOK" target="PickUnsafeTransition"> + </arc> + <arc id="ps4" source="PickSafeTransition" target="PickSystemOK"> + </arc> + <arc id="ps5" source="PickSafeTransition" target="PickSafeRef"> + </arc> + <arc id="ps6" source="PickSafeRef" target="PickSafeTransition"> + </arc> + <arc id="ps7" source="PickInput" target="PickSafeTransition"> + </arc> + <arc id="ps8" source="PickSafeTransition" target="PickInter"> + </arc> + <arc id="ps9" source="PickInter" target="PickSafeToOutput"> + </arc> + <arc id="ps10" source="PickInter" target="PickFailureToOutput"> + </arc> + <arc id="ps11" source="PickFailureToOutput" target="PickOutput"> + </arc> + <arc id="ps12" source="PickSafeToOutput" target="PickOutput"> + </arc> + <arc id="ps13" source="PickSystemOK" target="PickOkToFailure"> + </arc> + <arc id="ps14" source="PickOkToFailure" target="PickSystemFailure"> + </arc> + <arc id="ps15" source="PickSystemFailure" target="PickFailureToOutput"> + </arc> + <arc id="ps16" source="PickUnsafeTransition" target="PickSystemFailure"> + </arc> + + </page> + + <page id="PlaceServerPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>PlaceService</serviceName> + </toolspecific> + + <place id="PlaceInput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceInput</text> + </name> + </place> + + <place id="PlaceSystemOK"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceSystemOK</text> + </name> + </place> + + <place id="PlaceSystemFailure"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceSystemFailure</text> + </name> + </place> + + <place id="PlaceOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceOutput</text> + </name> + </place> + + <place id="PlaceInter"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceInter</text> + </name> + </place> + + <referencePlace id="PlaceSafeRef" ref="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>ExecutorNode</location> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceSafeRef</text> + </name> + </referencePlace> + + <referencePlace id="PlaceUnsafeRef" ref="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <location>ExecutorNode</location> + <subnet>PlaceS</subnet> + </toolspecific> + <name> + <text>PlaceUnsafeRef</text> + </name> + </referencePlace> + + <transition id="PlaceUnsafeTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceUnsafeTransition</text> + </name> + </transition> + + <transition id="PlaceOkToFailure"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceFail)</inputsignalclause> + </toolspecific> + <name> + <text>PlaceOkToFailure</text> + </name> + </transition> + + <transition id="PlaceFailureToOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceFailureToOutput</text> + </name> + </transition> + + <transition id="PlaceSafeTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>PlaceSafeTransition</text> + </name> + </transition> + + <transition id="PlaceSafeToOutput"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>PlaceS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(PlaceSuccess)</inputsignalclause> + </toolspecific> + <name> + <text>PlaceSafeToOutput</text> + </name> + </transition> + + <arc id="pls1" source="PlaceUnsafeRef" target="PlaceUnsafeTransition"> + </arc> + <arc id="pls2" source="PlaceUnsafeTransition" target="PlaceUnsafeRef"> + </arc> + <arc id="pls3" source="PlaceSystemOK" target="PlaceUnsafeTransition"> + </arc> + <arc id="pls4" source="PlaceSafeTransition" target="PlaceSystemOK"> + </arc> + <arc id="pls5" source="PlaceSafeTransition" target="PlaceSafeRef"> + </arc> + <arc id="pls6" source="PlaceSafeRef" target="PlaceSafeTransition"> + </arc> + <arc id="pls7" source="PlaceInput" target="PlaceSafeTransition"> + </arc> + <arc id="pls8" source="PlaceSafeTransition" target="PlaceInter"> + </arc> + <arc id="pls9" source="PlaceInter" target="PlaceSafeToOutput"> + </arc> + <arc id="pls10" source="PlaceInter" target="PlaceFailureToOutput"> + </arc> + <arc id="pls11" source="PlaceFailureToOutput" target="PlaceOutput"> + </arc> + <arc id="pls12" source="PlaceSafeToOutput" target="PlaceOutput"> + </arc> + <arc id="pls13" source="PlaceSystemOK" target="PlaceOkToFailure"> + </arc> + <arc id="pls14" source="PlaceOkToFailure" target="PlaceSystemFailure"> + </arc> + <arc id="pls15" source="PlaceSystemFailure" target="PlaceFailureToOutput"> + </arc> + <arc id="pls16" source="PlaceUnsafeTransition" target="PlaceSystemFailure"> + </arc> + </page> + </page> + + <transition id="PlaceServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>PlaceService</serviceName> + <serverInput>PlaceServiceInput</serverInput> + <serverOutput>PlaceServiceOutput</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>L-ObjectPicked</request> + <response>L-ObjectPlaced</response> + </channel> + <channel> + <cid>LeftCellChannel</cid> + <request>R-ObjectPicked</request> + <response>R-ObjectPlaced</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PlaceServiceTransition</text> + </name> + </transition> + + <transition id="PickServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>PickService</serviceName> + <serverInput>PickServiceInput</serverInput> + <serverOutput>PickServiceOutput</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>L-Ready</request> + <response>L-ObjectPicked</response> + </channel> + <channel> + <cid>LeftCellChannel</cid> + <request>R-Ready</request> + <response>R-ObjectPicked</response> + </channel> + </channels> + </toolspecific> + <name> + <text>PickServiceTransition</text> + </name> + </transition> + + <transition id="SensorServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>SensorService</serviceName> + <serverInput>SensorServiceIn</serverInput> + <serverOutput>SensorServiceOut</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>CallSensor</request> + <response>GetSensor</response> + </channel> + </channels> + </toolspecific> + <name> + <text>SensorServiceTransition</text> + </name> + </transition> + + <page id="SensorNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>SensorService</serviceName> + </toolspecific> + + <place id="SensorServiceIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorServiceIn</text> + </name> + </place> + + <place id="SensorResult"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorResult</text> + </name> + </place> + + <place id="SensorServiceOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorServiceOut</text> + </name> + </place> + + <transition id="GetSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(SensorReady)</inputsignalclause> + </toolspecific> + <name> + <text>GetSensorData</text> + </name> + </transition> + + <transition id="ProcessSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ProcessSensorData</text> + </name> + </transition> + + <arc id="ses1" source="SensorServiceIn" target="GetSensorData"> + </arc> + <arc id="ses2" source="GetSensorData" target="SensorResult"> + </arc> + <arc id="ses3" source="SensorResult" target="ProcessSensorData"> + </arc> + <arc id="ses4" source="ProcessSensorData" target="SensorServiceOut"> + </arc> + </page> + + <page id="FeedbackNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <place id="FeedbackSubscriber"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>FeedbackNode</node> + <subnet>FNS</subnet> + </toolspecific> + <name> + <text>FeedbackSubscriber</text> + </name> + </place> + + <place id="FeedbackFinished"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>FeedbackNode</node> + <subnet>FNS</subnet> + </toolspecific> + <name> + <text>FeedbackFinished</text> + </name> + </place> + + <transition id="CreateFeedback"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>FeedbackNode</node> + <subnet>FNS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>CreateFeedback</text> + </name> + </transition> + + <arc id="fn1" source="FeedbackSubscriber" target="CreateFeedback"> + </arc> + <arc id="fn2" source="CreateFeedback" target="FeedbackFinished"> + </arc> + </page> + </page> + </net> +</pnml> diff --git a/src/main/resources/nets/usecase/SortingNetSensor.pnml b/src/main/resources/nets/usecase/SortingNetSensor.pnml new file mode 100644 index 0000000..87f9acb --- /dev/null +++ b/src/main/resources/nets/usecase/SortingNetSensor.pnml @@ -0,0 +1,249 @@ +<?xml version="1.0" encoding="UTF-8"?> +<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml"> + <net id="SortingNetSensor" type="http://www.pnml.org/version-2009/grammar/ptnet"> + <name> + <text>SortingNetSensor</text> + </name> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <inputsignals> + <inputsignal> + <inputsignalID>Stop</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + <inputsignal> + <inputsignalID>SensorReady</inputsignalID> + <initialvalue>false</initialvalue> + </inputsignal> + </inputsignals> + </toolspecific> + + <page id="top"> + <page id="ExecutorNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>nodePage</type> + </toolspecific> + + <page id="SafetyModelPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>page</type> + </toolspecific> + + <place id="Unsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Unsafe</text> + </name> + <initialMarking> + <text>1</text> + </initialMarking> + </place> + + <place id="Safe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>Safe</text> + </name> + </place> + + <place id="CallSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>CallSensor</text> + </name> + </place> + + <place id="GetSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + </toolspecific> + <name> + <text>GetSensor</text> + </name> + </place> + + <transition id="SafeToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(Stop)</inputsignalclause> + </toolspecific> + <name> + <text>SafeToUnsafe</text> + </name> + </transition> + + <transition id="UnsafeToSensorCall"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>UnsafeToSensorCall</text> + </name> + </transition> + + <transition id="GetSensorToSafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>GetSensorToSafe</text> + </name> + </transition> + + <transition id="SafeToCallSensor"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>SafeToCallSensor</text> + </name> + </transition> + + <transition id="GetSensorToUnsafe"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>ExecutorNode</node> + <subnet>SafetyModel</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>GetSensorToUnsafe</text> + </name> + </transition> + + <arc id="sm1" source="Unsafe" target="UnsafeToSensorCall"> + </arc> + <arc id="sm2" source="UnsafeToSensorCall" target="CallSensor"> + </arc> + <arc id="sm3" source="GetSensorToUnsafe" target="Unsafe"> + </arc> + <arc id="sm4" source="SafeToUnsafe" target="Unsafe"> + </arc> + <arc id="sm5" source="Safe" target="SafeToUnsafe"> + </arc> + <arc id="sm6" source="Safe" target="SafeToCallSensor"> + </arc> + <arc id="sm7" source="SafeToCallSensor" target="CallSensor"> + </arc> + <arc id="sm8" source="GetSensor" target="GetSensorToUnsafe"> + </arc> + <arc id="sm9" source="GetSensor" target="GetSensorToSafe"> + </arc> + <arc id="sm10" source="GetSensorToSafe" target="Safe"> + </arc> + + </page> + </page> + + <transition id="SensorServiceTransition"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serviceTransitionType</type> + <serviceName>SensorService</serviceName> + <serverInput>SensorServiceIn</serverInput> + <serverOutput>SensorServiceOut</serverOutput> + <serverCapacity>16</serverCapacity> + <channels> + <channel> + <cid>LeftCellChannel</cid> + <request>CallSensor</request> + <response>GetSensor</response> + </channel> + </channels> + </toolspecific> + <name> + <text>SensorServiceTransition</text> + </name> + </transition> + + <page id="SensorNodePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>SensorService</serviceName> + </toolspecific> + + <place id="SensorServiceIn"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorServiceIn</text> + </name> + </place> + + <place id="SensorResult"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorResult</text> + </name> + </place> + + <place id="SensorServiceOut"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + </toolspecific> + <name> + <text>SensorServiceOut</text> + </name> + </place> + + <transition id="GetSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause>(SensorReady AND NOT SensorReady)</inputsignalclause> + </toolspecific> + <name> + <text>GetSensorData</text> + </name> + </transition> + + <transition id="ProcessSensorData"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <node>SensorNode</node> + <subnet>SeS</subnet> + <type>discreteTransitionType</type> + <inputsignalclause></inputsignalclause> + </toolspecific> + <name> + <text>ProcessSensorData</text> + </name> + </transition> + + <arc id="ses1" source="SensorServiceIn" target="GetSensorData"> + </arc> + <arc id="ses2" source="GetSensorData" target="SensorResult"> + </arc> + <arc id="ses3" source="SensorResult" target="ProcessSensorData"> + </arc> + <arc id="ses4" source="ProcessSensorData" target="SensorServiceOut"> + </arc> + </page> + </page> + </net> +</pnml> \ No newline at end of file -- GitLab