diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f786a780e0a53e6c7697575f8de8b8b62d22fb10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/case-study-sorting-pkg/build/ +/case-study-sorting-pkg/src/gen-res/ +src/gen/ +/case-study-sorting-pkg/out*/ +.idea +/case-study-sorting-pkg/.gradle/ +*.class +logs/ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.bin b/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.bin index 6c68a31903af34d4122f861bb84205f75ddb26f9..390b8a0e5f3e7509cd65c507336d58dac3a72aa9 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.bin and b/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.bin differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.lock b/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.lock index 0e50a6caf88483cc3a8ed556dfe02098a3dcc0da..80e8786dd967028508f715933b5256cd38c779d1 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.lock and b/case-study-sorting-pkg/.gradle/6.7.1/executionHistory/executionHistory.lock differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.bin b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.bin index 9f7c15f05c10bbae9bbaf07ca1ad589e721a2968..ad34a328489caf615748ebd36d062134cdaf3f41 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.bin and b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.bin differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.lock b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.lock index e0b1e919b0e8a240f0f848b71050600e309bafaf..987f6d489a65f76f1cfac879146842e17a08f7b2 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.lock and b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/fileHashes.lock differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/resourceHashesCache.bin b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/resourceHashesCache.bin index c97552f46457469dfa03ee49019f578746d2cd32..73ba150b6a6520143cf266af2eba463e16966d74 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/resourceHashesCache.bin and b/case-study-sorting-pkg/.gradle/6.7.1/fileHashes/resourceHashesCache.bin differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/classAnalysis.bin b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/classAnalysis.bin index 74a3088d24a1983646afc768c324f0b66a0a7c0d..150d543175545e218cd741811904209295e0d8cd 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/classAnalysis.bin and b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/classAnalysis.bin differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/jarAnalysis.bin b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/jarAnalysis.bin index 345c653b0859a17e788c38f52a2b0d425458a549..1f1526e8dd839303b5a001eef8da7e1eed0ad9f5 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/jarAnalysis.bin and b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/jarAnalysis.bin differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/javaCompile.lock b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/javaCompile.lock index 8cb3c09e5c26152354dd4f584172eef1d2ffcd0c..069954e59b6ad869a9c683d15b0097c3ed5c6b14 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/javaCompile.lock and b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/javaCompile.lock differ diff --git a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/taskHistory.bin b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/taskHistory.bin index e4aacb94de70693352c48d9ce88ac9c4570d8e8d..4bb603d448dee260c37b8123ee8731bfcea4f16d 100644 Binary files a/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/taskHistory.bin and b/case-study-sorting-pkg/.gradle/6.7.1/javaCompile/taskHistory.bin differ diff --git a/case-study-sorting-pkg/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/case-study-sorting-pkg/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 00b0e0b5037e67e2669295154027d9bcbd45796c..708da361a31aabb4e44d5d5991d7c1fd1a824272 100644 Binary files a/case-study-sorting-pkg/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/case-study-sorting-pkg/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/case-study-sorting-pkg/.gradle/buildOutputCleanup/outputFiles.bin b/case-study-sorting-pkg/.gradle/buildOutputCleanup/outputFiles.bin index e92d9b3d88b174b197dfe1e4db8f496e3d79db92..89999f7495136e58c776816121bbf9f0b9f0d297 100644 Binary files a/case-study-sorting-pkg/.gradle/buildOutputCleanup/outputFiles.bin and b/case-study-sorting-pkg/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/case-study-sorting-pkg/.idea/uiDesigner.xml b/case-study-sorting-pkg/.idea/uiDesigner.xml new file mode 100644 index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8 --- /dev/null +++ b/case-study-sorting-pkg/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Palette2"> + <group name="Swing"> + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> + </item> + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true"> + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> + <initial-values> + <property name="text" value="Button" /> + </initial-values> + </item> + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="RadioButton" /> + </initial-values> + </item> + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="CheckBox" /> + </initial-values> + </item> + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="Label" /> + </initial-values> + </item> + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> + <preferred-size width="-1" height="20" /> + </default-constraints> + </item> + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> + </item> + </group> + </component> +</project> \ No newline at end of file diff --git a/case-study-sorting-pkg/build.gradle b/case-study-sorting-pkg/build.gradle index fd1f2a562ac433a945431d7d37864ed87393856c..6e0ea157e9fb6134be7f1cc588fd43254830f9e8 100644 --- a/case-study-sorting-pkg/build.gradle +++ b/case-study-sorting-pkg/build.gradle @@ -63,3 +63,142 @@ run { mainClassName = 'de.tudresden.inf.st.sorting.Main' standardInput = System.in } + + +task jarSelectorNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.SelectorLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-selector' +} + +task jarLeftControllerNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.LeftControllerLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-leftController' +} + +task jarRightControllerNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.RightControllerLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-rightController' +} + +task jarSynchronizerNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.SynchronizerLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-synchronizer' +} + +task jarFeedbackNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.FeedbackLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-feedback' +} + +task jarExecutorNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.ExecutorLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-executor' +} + +task jarSensorNode(type: Jar) { + group = "nodes" + destinationDirectory.set(file("./nodes")) + + manifest { + attributes "Main-Class": "de.tudresden.inf.st.sorting.launcher.SensorLauncher" + } + + from sourceSets.main.output + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } + + exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveBaseName = 'case-study-sorting-pkg-sensor' +} + +task jarAllNodes(type: Jar){ + group = "nodes" +} + +jarAllNodes.dependsOn jarSelectorNode +jarAllNodes.dependsOn jarLeftControllerNode +jarAllNodes.dependsOn jarRightControllerNode +jarAllNodes.dependsOn jarSynchronizerNode +jarAllNodes.dependsOn jarFeedbackNode +jarAllNodes.dependsOn jarExecutorNode +jarAllNodes.dependsOn jarSensorNode diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main$1.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main$1.class index 4d2ba2a863d6dc58caf107a144a7004a23230330..bd313b3fc15880977903f91a5c4c5480046b154b 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main$1.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main$1.class differ diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main.class index 60f11e51618dfd0c5d40cf1903930392a3b07352..8702394e9ba97257de86dc6dcf2659724144b158 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/Main.class differ diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/constants/TokenConstants.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/constants/TokenConstants.class index 73e5db4279ab1fe44d169524d43149da7bceddcb..8f56e4c5e270207b77e1d8314689e105931a488c 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/constants/TokenConstants.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/constants/TokenConstants.class differ diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/ShowResultHandler.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/ShowResultHandler.class index d726cb038c1efc20b5ace58525c2b602da155121..1dcf8833acd343c0b3f0609a0b63bdddce0ae0ab 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/ShowResultHandler.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/ShowResultHandler.class differ diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/SortColorHandler.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/SortColorHandler.class index aac9e0ea9ab92da91f90da09de8c13bbd5ebacd4..194614abc389927d3fdc339422a9629ef88eb317 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/SortColorHandler.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/handlers/SortColorHandler.class differ diff --git a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/nodes/SelectorNode.class b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/nodes/SelectorNode.class index e6686bae0c77a30db71c648742f12c0e0819acfa..89c8e385b30a54b7e8b4ae9ac2a85df2eadddbce 100644 Binary files a/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/nodes/SelectorNode.class and b/case-study-sorting-pkg/build/classes/java/main/de/tudresden/inf/st/sorting/nodes/SelectorNode.class differ diff --git a/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.tar b/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.tar index ed84307f833e697dcf5bf0ecc47a4466ea841fc0..2a226846d424a76dc6e2b3a26e04c38fbc668dc4 100644 Binary files a/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.tar and b/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.tar differ diff --git a/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.zip b/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.zip index e3f73b75f364791df99f75ba8d1af18c4cfdd0c2..0ded1574fa67e8e3b63fc397733512898b81d5be 100644 Binary files a/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.zip and b/case-study-sorting-pkg/build/distributions/case-study-sorting-pkg-0.1.zip differ diff --git a/case-study-sorting-pkg/build/libs/case-study-sorting-pkg-0.1.jar b/case-study-sorting-pkg/build/libs/case-study-sorting-pkg-0.1.jar index 966b4a0238127e89f9cb5c5dd8bcc2c454cb0254..3937516f2c779207f3514dc373b114ab502d4d8e 100644 Binary files a/case-study-sorting-pkg/build/libs/case-study-sorting-pkg-0.1.jar and b/case-study-sorting-pkg/build/libs/case-study-sorting-pkg-0.1.jar differ diff --git a/case-study-sorting-pkg/build/resources/main/nets/ExecutorNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/ExecutorNode.pnml index 364917b9ddac70199d94a46657f6a63f768b214b..1091e4cef8b3e1bd741ec1b7dbcfa0c3a102ab07 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/ExecutorNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/ExecutorNode.pnml @@ -202,7 +202,7 @@ </place> <transition id="PlacingAbort"> <name> - <text>PlaceingAbort</text> + <text>PlacingAbort</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> @@ -453,14 +453,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/FeedbackNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/FeedbackNode.pnml index 3375c9ba77e6529a2236a50f5512335f137e974d..c8a2ef66a0618fc207da115f0f56420e673ad084 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/FeedbackNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/FeedbackNode.pnml @@ -60,14 +60,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/LeftControllerNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/LeftControllerNode.pnml index ee9dbd9e4146b14065a9f52245c5255e03057d8d..4d6ce660b011e2f4bda759c55325e2709b562509 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/LeftControllerNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/LeftControllerNode.pnml @@ -85,14 +85,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/RightControllerNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/RightControllerNode.pnml index eb63ce0e322993895ddb7e27a046099ae1afb2d9..a14e84ad556196fbab9fb0aec3c425c7ee935e1c 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/RightControllerNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/RightControllerNode.pnml @@ -85,14 +85,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/SelectorNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/SelectorNode.pnml index eb274968060835711afe040b74f4a090dee3ab4c..c914a69407a531fba657afc87fba6788533f9cd6 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/SelectorNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/SelectorNode.pnml @@ -19,7 +19,7 @@ <balloonMarking> <tokens> <token>{"color" : "green", "name" : "green1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -51,7 +51,7 @@ <balloonMarking> <tokens> <token>{"color" : "blue", "name" : "blue1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -71,7 +71,7 @@ <balloonMarking> <tokens> <token>{"color" : "red", "name" : "red1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -166,14 +166,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/SensorNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/SensorNode.pnml index e410503238de1f8cd7a669019d55b0fe86be3d32..a292b80cac058616a138451dcbd5bd34f9c39ec3 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/SensorNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/SensorNode.pnml @@ -99,14 +99,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/resources/main/nets/SynchronizerNode.pnml b/case-study-sorting-pkg/build/resources/main/nets/SynchronizerNode.pnml index c42c77e412b8d209cf43273c3eab19a9852d3368..c96d49cdec29d6dda51db8bd8c023a68f3b6a891 100644 --- a/case-study-sorting-pkg/build/resources/main/nets/SynchronizerNode.pnml +++ b/case-study-sorting-pkg/build/resources/main/nets/SynchronizerNode.pnml @@ -151,8 +151,8 @@ <subnet>SharedSync</subnet> <balloonMarking> <tokens> - <token>{ "id" : "NONE", "picksuccess" : "false", "placesuccess" : "false", "sensor" - : "NONE" } + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"NONE", "locked" : "true" } </token> </tokens> </balloonMarking> @@ -170,14 +170,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/build/tmp/compileJava/source-classes-mapping.txt b/case-study-sorting-pkg/build/tmp/compileJava/source-classes-mapping.txt index 084a6d5499302e3cbccf848f03de856910ba3608..f3cae35b088b3f6b3ec582819918c7e7a0ee3d39 100644 --- a/case-study-sorting-pkg/build/tmp/compileJava/source-classes-mapping.txt +++ b/case-study-sorting-pkg/build/tmp/compileJava/source-classes-mapping.txt @@ -1,21 +1,77 @@ +de/tudresden/inf/st/sorting/launcher/NodeLauncher.java + de.tudresden.inf.st.sorting.launcher.NodeLauncher de/tudresden/inf/st/sorting/constants/TokenConstants.java de.tudresden.inf.st.sorting.constants.TokenConstants +de/tudresden/inf/st/sorting/fake/FakeServerNode.java + de.tudresden.inf.st.sorting.fake.FakeServerNode +de/tudresden/inf/st/sorting/handlers/ControlGetHandler.java + de.tudresden.inf.st.sorting.handlers.ControlGetHandler +de/tudresden/inf/st/sorting/nodes/SensorNode.java + de.tudresden.inf.st.sorting.nodes.SensorNode +de/tudresden/inf/st/sorting/nodes/LeftControllerNode.java + de.tudresden.inf.st.sorting.nodes.LeftControllerNode +de/tudresden/inf/st/sorting/launcher/FeedbackLauncher.java + de.tudresden.inf.st.sorting.launcher.FeedbackLauncher + de.tudresden.inf.st.sorting.launcher.FeedbackLauncher$1 +de/tudresden/inf/st/sorting/handlers/PlaceSuccessHandler.java + de.tudresden.inf.st.sorting.handlers.PlaceSuccessHandler +de/tudresden/inf/st/sorting/handlers/SortColorHandler.java + de.tudresden.inf.st.sorting.handlers.SortColorHandler +de/tudresden/inf/st/sorting/handlers/PlaceAbortHandler.java + de.tudresden.inf.st.sorting.handlers.PlaceAbortHandler de/tudresden/inf/st/sorting/Main.java de.tudresden.inf.st.sorting.Main de.tudresden.inf.st.sorting.Main$1 + de.tudresden.inf.st.sorting.Main$2 + de.tudresden.inf.st.sorting.Main$3 de/tudresden/inf/st/sorting/nodes/FeedbackNode.java de.tudresden.inf.st.sorting.nodes.FeedbackNode -de/tudresden/inf/st/sorting/nodes/LeftControllerNode.java - de.tudresden.inf.st.sorting.nodes.LeftControllerNode +de/tudresden/inf/st/sorting/handlers/SensorDataProcessingHandler.java + de.tudresden.inf.st.sorting.handlers.SensorDataProcessingHandler + de.tudresden.inf.st.sorting.handlers.SensorDataProcessingHandler$1 +de/tudresden/inf/st/sorting/handlers/PlaceHandler.java + de.tudresden.inf.st.sorting.handlers.PlaceHandler +de/tudresden/inf/st/sorting/launcher/LeftControllerLauncher.java + de.tudresden.inf.st.sorting.launcher.LeftControllerLauncher + de.tudresden.inf.st.sorting.launcher.LeftControllerLauncher$1 +de/tudresden/inf/st/sorting/utils/LogUtils.java + de.tudresden.inf.st.sorting.utils.LogUtils +de/tudresden/inf/st/sorting/launcher/SynchronizerLauncher.java + de.tudresden.inf.st.sorting.launcher.SynchronizerLauncher + de.tudresden.inf.st.sorting.launcher.SynchronizerLauncher$1 +de/tudresden/inf/st/sorting/launcher/SensorLauncher.java + de.tudresden.inf.st.sorting.launcher.SensorLauncher + de.tudresden.inf.st.sorting.launcher.SensorLauncher$1 +de/tudresden/inf/st/sorting/launcher/RightControllerLauncher.java + de.tudresden.inf.st.sorting.launcher.RightControllerLauncher + de.tudresden.inf.st.sorting.launcher.RightControllerLauncher$1 +de/tudresden/inf/st/sorting/handlers/ControlEndHandler.java + de.tudresden.inf.st.sorting.handlers.ControlEndHandler de/tudresden/inf/st/sorting/handlers/ShowResultHandler.java de.tudresden.inf.st.sorting.handlers.ShowResultHandler +de/tudresden/inf/st/sorting/launcher/SelectorLauncher.java + de.tudresden.inf.st.sorting.launcher.SelectorLauncher + de.tudresden.inf.st.sorting.launcher.SelectorLauncher$1 +de/tudresden/inf/st/sorting/nodes/ExecutorNode.java + de.tudresden.inf.st.sorting.nodes.ExecutorNode +de/tudresden/inf/st/sorting/handlers/PickFailHandler.java + de.tudresden.inf.st.sorting.handlers.PickFailHandler +de/tudresden/inf/st/sorting/handlers/PickHandler.java + de.tudresden.inf.st.sorting.handlers.PickHandler +de/tudresden/inf/st/sorting/handlers/PickSuccessHandler.java + de.tudresden.inf.st.sorting.handlers.PickSuccessHandler de/tudresden/inf/st/sorting/nodes/RightControllerNode.java de.tudresden.inf.st.sorting.nodes.RightControllerNode de/tudresden/inf/st/sorting/nodes/SynchronizerNode.java de.tudresden.inf.st.sorting.nodes.SynchronizerNode de/tudresden/inf/st/sorting/nodes/SelectorNode.java de.tudresden.inf.st.sorting.nodes.SelectorNode -de/tudresden/inf/st/sorting/utils/LogUtils.java - de.tudresden.inf.st.sorting.utils.LogUtils -de/tudresden/inf/st/sorting/handlers/SortColorHandler.java - de.tudresden.inf.st.sorting.handlers.SortColorHandler +de/tudresden/inf/st/sorting/handlers/PickAbortHandler.java + de.tudresden.inf.st.sorting.handlers.PickAbortHandler +de/tudresden/inf/st/sorting/handlers/PlaceFailHandler.java + de.tudresden.inf.st.sorting.handlers.PlaceFailHandler +de/tudresden/inf/st/sorting/launcher/ExecutorLauncher.java + de.tudresden.inf.st.sorting.launcher.ExecutorLauncher + de.tudresden.inf.st.sorting.launcher.ExecutorLauncher$1 +de/tudresden/inf/st/sorting/handlers/SensorDataGetHandler.java + de.tudresden.inf.st.sorting.handlers.SensorDataGetHandler diff --git a/case-study-sorting-pkg/doc/FakeConfig.json b/case-study-sorting-pkg/doc/FakeConfig.json new file mode 100644 index 0000000000000000000000000000000000000000..377a35b130cba76d9d7a47401c1eb919967d9cc6 --- /dev/null +++ b/case-study-sorting-pkg/doc/FakeConfig.json @@ -0,0 +1,3 @@ +{ + "sensor" : "false" +} \ No newline at end of file diff --git a/case-study-sorting-pkg/doc/TokenFormat.json b/case-study-sorting-pkg/doc/TokenFormat.json index bb02de5b7993166a27064d6a5235df8e984ac94d..763537975a74559b302ea27fb701e3c5bd87ff85 100644 --- a/case-study-sorting-pkg/doc/TokenFormat.json +++ b/case-study-sorting-pkg/doc/TokenFormat.json @@ -5,5 +5,6 @@ "placeSuccess" : "false", "humanDetected" : "false", "sensorData" : "", - "trace" : "" + "trace" : "", + "locked" : "false" } \ No newline at end of file diff --git a/case-study-sorting-pkg/libs/pnml-relast-engine-fatjar-0.1.jar b/case-study-sorting-pkg/libs/pnml-relast-engine-fatjar-0.1.jar index b5b988eda8cabeb96302fd9a4ec8b19d97e7a94a..d497d256a7cb3dd0201559f447490b23cff21b7f 100644 Binary files a/case-study-sorting-pkg/libs/pnml-relast-engine-fatjar-0.1.jar and b/case-study-sorting-pkg/libs/pnml-relast-engine-fatjar-0.1.jar differ diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/Main.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/Main.java index 37f7d41f7216b0f71d92a34b2233fac44b02d225..115993ec2d940b587e9e8c8b69af4f8eaa9c0222 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/Main.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/Main.java @@ -3,6 +3,8 @@ package de.tudresden.inf.st.sorting; import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; import de.tudresden.inf.st.sorting.fake.FakeServerNode; +import de.tudresden.inf.st.sorting.handlers.ControlEndHandler; +import de.tudresden.inf.st.sorting.handlers.ControlGetHandler; import de.tudresden.inf.st.sorting.handlers.ShowResultHandler; import de.tudresden.inf.st.sorting.handlers.SortColorHandler; import de.tudresden.inf.st.sorting.nodes.*; @@ -44,25 +46,27 @@ public class Main { // NODE CONFIGURATION - SelectorNode selectorNode = new SelectorNode("SelectorNode", petriNets.get(0), MQTT_HOST); - selectorNode.registerHandler("SortGreen", new SortColorHandler(1)); - selectorNode.registerHandler("SortRed", new SortColorHandler(1)); - selectorNode.registerHandler("SortBlue", new SortColorHandler(1)); + // SelectorNode selectorNode = new SelectorNode("SelectorNode", petriNets.get(0), MQTT_HOST); + // selectorNode.registerHandler("SortGreen", new SortColorHandler(1)); + // selectorNode.registerHandler("SortRed", new SortColorHandler(1)); + // selectorNode.registerHandler("SortBlue", new SortColorHandler(1)); - LeftControllerNode leftControllerNode = new LeftControllerNode("LeftControllerNode", petriNets.get(1), MQTT_HOST); - RightControllerNode rightControllerNode = new RightControllerNode("RightControllerNode", petriNets.get(2), MQTT_HOST); + // LeftControllerNode leftControllerNode = new LeftControllerNode("LeftControllerNode", petriNets.get(1), MQTT_HOST); + // RightControllerNode rightControllerNode = new RightControllerNode("RightControllerNode", petriNets.get(2), MQTT_HOST); SynchronizerNode synchronizerNode = new SynchronizerNode("SynchronizerNode", petriNets.get(3), MQTT_HOST); + synchronizerNode.registerHandler("Get", new ControlGetHandler(1)); + synchronizerNode.registerHandler("End", new ControlEndHandler(1)); - FeedbackNode feedbackNode = new FeedbackNode("FeedbackNode", petriNets.get(4), MQTT_HOST); - feedbackNode.registerHandler("ShowFeedback", new ShowResultHandler(1)); + // FeedbackNode feedbackNode = new FeedbackNode("FeedbackNode", petriNets.get(4), MQTT_HOST); + // feedbackNode.registerHandler("ShowFeedback", new ShowResultHandler(1)); // START THE NODES - new Thread(() -> nodeMainExecutor.execute(selectorNode, nodeConfiguration)) {{start();}}; - new Thread(() -> nodeMainExecutor.execute(leftControllerNode, nodeConfiguration)) {{start();}}; - new Thread(() -> nodeMainExecutor.execute(rightControllerNode, nodeConfiguration)) {{start();}}; + // new Thread(() -> nodeMainExecutor.execute(selectorNode, nodeConfiguration)) {{start();}}; + // new Thread(() -> nodeMainExecutor.execute(leftControllerNode, nodeConfiguration)) {{start();}}; + // new Thread(() -> nodeMainExecutor.execute(rightControllerNode, nodeConfiguration)) {{start();}}; new Thread(() -> nodeMainExecutor.execute(synchronizerNode, nodeConfiguration)) {{start();}}; - new Thread(() -> nodeMainExecutor.execute(feedbackNode, nodeConfiguration)) {{start();}}; + // new Thread(() -> nodeMainExecutor.execute(feedbackNode, nodeConfiguration)) {{start();}}; // FAKE NODES FOR TESTING diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/constants/TokenConstants.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/constants/TokenConstants.java index 17f57f5e98b1dd8f2f4375efc77ed8a3a2556b42..7be0979f026f5b70bef5cf67e54e0f0a259d6673 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/constants/TokenConstants.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/constants/TokenConstants.java @@ -9,5 +9,6 @@ public final class TokenConstants { public static final String SENSOR_DATA = "sensorData"; public static final String NAME = "name"; public static final String TRACE = "trace"; + public static final String LOCKED = "locked"; } diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/fake/FakeServerNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/fake/FakeServerNode.java index aab14426b639e735721ddc2880d6d6dfb8e938d5..c4308b044ece22f6d9415823be11c496691ecbf9 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/fake/FakeServerNode.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/fake/FakeServerNode.java @@ -10,8 +10,8 @@ import rosjava_srv.StringServiceResponse; public class FakeServerNode extends AbstractNodeMain { - private String serviceName; - private String nodeName; + private final String serviceName; + private final String nodeName; public FakeServerNode(String serviceName, String nodeName) { this.serviceName = serviceName; @@ -20,7 +20,7 @@ public class FakeServerNode extends AbstractNodeMain { @Override public GraphName getDefaultNodeName() { - return GraphName.of("fake/" + nodeName); + return GraphName.of(nodeName); } @Override diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlEndHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlEndHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..8c34668fbfa898cb8ef57bf7e2cb9abe8809060c --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlEndHandler.java @@ -0,0 +1,28 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class ControlEndHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> END_HANDLING_FUNCTION = maps -> { + System.out.println("Executing RESULT_HANDLING_FUNCTION."); + + for(Map<String, Object> m : maps){ + for (Map.Entry<String, Object> entry : m.entrySet()) { + if(entry.getKey().equals(TokenConstants.LOCKED)){ + m.replace(TokenConstants.LOCKED, "true"); + } + } + } + return maps; + }; + + public ControlEndHandler(int priority) { + super(priority, END_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlGetHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlGetHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..b7e753c1acb0d882222545e16338884b971bced8 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/ControlGetHandler.java @@ -0,0 +1,29 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class ControlGetHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> GET_HANDLING_FUNCTION = maps -> { + System.out.println("Executing GET_HANDLING_FUNCTION."); + + List<Map<String, Object>> res = new ArrayList<>(); + + for(Map<String, Object> m : maps){ + if(!m.get(TokenConstants.LOCKED).equals("true")){ + res.add(m); + } + } + return res; + }; + + public ControlGetHandler(int priority) { + super(priority, GET_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickAbortHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickAbortHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..4bd3fa8008d4dc2f6d22113cd8798cc53f042ba7 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickAbortHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PickAbortHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PICK_ABORT_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PICK_ABORT_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PICK_SUCCESS, "abort"); + } + return maps; + }; + + public PickAbortHandler(int priority) { + super(priority, PICK_ABORT_HANDLING_FUNCTION); + } +} \ No newline at end of file diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickFailHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickFailHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..5c01cf809bde066f438aaffc25084fc4d77d23f3 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickFailHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PickFailHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PICK_FAIL_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PICK_FAIL_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PICK_SUCCESS, "fail"); + } + return maps; + }; + + public PickFailHandler(int priority) { + super(priority, PICK_FAIL_HANDLING_FUNCTION); + } +} \ No newline at end of file diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..3ce105da4486c98afdf2e09e8f46a48a14751e1c --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickHandler.java @@ -0,0 +1,27 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PickHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PICK_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PICK_HANDLING_FUNCTION."); + + try { + Thread.sleep(1000); + System.out.println("Fake picking finished."); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return maps; + }; + + public PickHandler(int priority) { + super(priority, PICK_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickSuccessHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickSuccessHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..84a99255849fd9797eadefabbf5d6f139734af8e --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PickSuccessHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PickSuccessHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PICK_SUCCESS_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PICK_SUCCESS_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PICK_SUCCESS, "success"); + } + return maps; + }; + + public PickSuccessHandler(int priority) { + super(priority, PICK_SUCCESS_HANDLING_FUNCTION); + } +} \ No newline at end of file diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceAbortHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceAbortHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..8ecb6cba739bf74755b6ed73e46eab87103ebb76 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceAbortHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PlaceAbortHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PLACE_ABORT_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PICK_ABORT_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PLACE_SUCCESS, "abort"); + } + return maps; + }; + + public PlaceAbortHandler(int priority) { + super(priority, PLACE_ABORT_HANDLING_FUNCTION); + } +} \ No newline at end of file diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceFailHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceFailHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..6a51d6d164b1827587f48c853f91fa0094aeb962 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceFailHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PlaceFailHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PLACE_FAIL_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PLACE_FAIL_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PLACE_SUCCESS, "fail"); + } + return maps; + }; + + public PlaceFailHandler(int priority) { + super(priority, PLACE_FAIL_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..fb4d629cf06cf2f1068bd6987b9d6f898bb3cf4f --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceHandler.java @@ -0,0 +1,27 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PlaceHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PLACE_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PLACE_HANDLING_FUNCTION."); + + try { + Thread.sleep(1000); + System.out.println("Fake placing finished."); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return maps; + }; + + public PlaceHandler(int priority) { + super(priority, PLACE_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceSuccessHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceSuccessHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..6c1bdd660e4cd5d6e1c09c1f2b64db37f8d60af3 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/PlaceSuccessHandler.java @@ -0,0 +1,25 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class PlaceSuccessHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PLACE_SUCCESS_HANDLING_FUNCTION = maps -> { + System.out.println("Executing PLACE_SUCCESS_HANDLING_FUNCTION."); + + for (Map<String, Object> m : maps) { + m.replace(TokenConstants.PLACE_SUCCESS, "success"); + + } + return maps; + }; + + public PlaceSuccessHandler(int priority) { + super(priority, PLACE_SUCCESS_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataGetHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataGetHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..d4d357f1cf835b142a4d2c7d8fc51d50424cb268 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataGetHandler.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.handlers; + +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class SensorDataGetHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> GET_DATA_HANDLING_FUNCTION = maps -> { + System.out.println("Executing GET_DATA_HANDLING_FUNCTION."); + + for(Map<String, Object> m : maps){ + m.replace(TokenConstants.SENSOR_DATA, "FAKE DATA"); + } + return maps; + }; + + public SensorDataGetHandler(int priority) { + super(priority, GET_DATA_HANDLING_FUNCTION); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataProcessingHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataProcessingHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..f640562d8ec6f16525715fdfdf41e1aa356a4662 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SensorDataProcessingHandler.java @@ -0,0 +1,44 @@ +package de.tudresden.inf.st.sorting.handlers; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import de.tudresden.inf.st.pnml.engine.execution.TransitionHandler; +import de.tudresden.inf.st.sorting.constants.TokenConstants; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +public class SensorDataProcessingHandler extends TransitionHandler { + + final static Function<List<Map<String, Object>>, List<Map<String, Object>>> PROCESS_DATA_HANDLING_FUNCTION = maps -> { + System.out.println("Executing GET_DATA_HANDLING_FUNCTION."); + + try { + Map<String, Object> fakeRes = parse(Files.readString(Path.of("/doc/FakeConfig.json"))); + + for(Map<String, Object> m : maps){ + m.replace(TokenConstants.HUMAN_DETECTED, fakeRes.get("sensor")); + } + } catch (IOException e) { + e.printStackTrace(); + } + + return maps; + }; + + public SensorDataProcessingHandler(int priority) { + super(priority, PROCESS_DATA_HANDLING_FUNCTION); + } + + private static Map<String, Object> parse(java.lang.String s) { + Gson gson = new GsonBuilder().create(); + Type mapType = new TypeToken<Map<String, Object>>(){}.getType(); + return gson.fromJson(s, mapType); + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SortColorHandler.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SortColorHandler.java index 2a673e11cbf2c208d97e1068e52f4251d101c573..1cee2098a3802654186ff5ab408e93b1b9440635 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SortColorHandler.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/handlers/SortColorHandler.java @@ -18,9 +18,6 @@ public class SortColorHandler extends TransitionHandler { String newTrace = oldTrace + "-" + "SortColor"; m.replace(TokenConstants.TRACE, newTrace); } - if(entry.getKey().equals(TokenConstants.TRACE)){ - - } } } return maps; diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/ExecutorLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/ExecutorLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..4afc1647ff936bf39ce9f562173d6581a84c1d97 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/ExecutorLauncher.java @@ -0,0 +1,33 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.handlers.*; +import de.tudresden.inf.st.sorting.nodes.ExecutorNode; + +import java.net.URI; + +public class ExecutorLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/ExecutorNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + ExecutorNode executorNode = new ExecutorNode("ExecutorNode", petriNet, MQTT_HOST); + + executorNode.registerHandler("Pick", new PickHandler(1)); + executorNode.registerHandler("PickingSuccess", new PickSuccessHandler(1)); + executorNode.registerHandler("PickingFail", new PickFailHandler(1)); + executorNode.registerHandler("PickingAbort", new PickAbortHandler(1)); + + executorNode.registerHandler("Place", new PlaceHandler(1)); + executorNode.registerHandler("PlacingSuccess", new PlaceSuccessHandler(1)); + executorNode.registerHandler("PlacingFail", new PlaceFailHandler(1)); + executorNode.registerHandler("PlacingAbort", new PlaceAbortHandler(1)); + + new Thread(() -> nodeMainExecutor.execute(executorNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/FeedbackLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/FeedbackLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..94ab423566ce543ece4cbbd40e4e147614f190a2 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/FeedbackLauncher.java @@ -0,0 +1,24 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.handlers.ShowResultHandler; +import de.tudresden.inf.st.sorting.nodes.FeedbackNode; + +import java.net.URI; + +public class FeedbackLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/FeedbackNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + FeedbackNode feedbackNode = new FeedbackNode("FeedbackNode", petriNet, MQTT_HOST); + feedbackNode.registerHandler("ShowFeedback", new ShowResultHandler(1)); + + new Thread(() -> nodeMainExecutor.execute(feedbackNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/LeftControllerLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/LeftControllerLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..00dbf2bffa44e23f795ccbc0f318676285f2b054 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/LeftControllerLauncher.java @@ -0,0 +1,22 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.nodes.LeftControllerNode; + +import java.net.URI; + +public class LeftControllerLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/LeftControllerNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + LeftControllerNode leftControllerNode = new LeftControllerNode("LeftControllerNode", petriNet, MQTT_HOST); + + new Thread(() -> nodeMainExecutor.execute(leftControllerNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/NodeLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/NodeLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..737560a6e3fad7c20d23890e9118ec8ef893626f --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/NodeLauncher.java @@ -0,0 +1,16 @@ +package de.tudresden.inf.st.sorting.launcher; + +import org.ros.node.DefaultNodeMainExecutor; +import org.ros.node.NodeConfiguration; +import org.ros.node.NodeMainExecutor; + +public abstract class NodeLauncher { + + protected static final String ROS_HOST = "localhost"; + protected static final String ROS_MASTER_URI = "http://localhost:11311"; + protected static final String MQTT_HOST = "localhost"; + + protected static final NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic(ROS_HOST); + protected static final NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault(); + +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/RightControllerLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/RightControllerLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..607804746d98c8826df8d118fe97858c3f270b78 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/RightControllerLauncher.java @@ -0,0 +1,22 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.nodes.RightControllerNode; + +import java.net.URI; + +public class RightControllerLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/RightControllerNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + RightControllerNode rightControllerNode = new RightControllerNode("RightControllerNode", petriNet, MQTT_HOST); + + new Thread(() -> nodeMainExecutor.execute(rightControllerNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SelectorLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SelectorLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..983e223d42528c6c94a5b29c8005b79a9bc5fc95 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SelectorLauncher.java @@ -0,0 +1,26 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.handlers.SortColorHandler; +import de.tudresden.inf.st.sorting.nodes.SelectorNode; + +import java.net.URI; + +public class SelectorLauncher extends NodeLauncher{ + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/SelectorNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + SelectorNode selectorNode = new SelectorNode("SelectorNode", petriNet, MQTT_HOST); + selectorNode.registerHandler("SortGreen", new SortColorHandler(1)); + selectorNode.registerHandler("SortRed", new SortColorHandler(1)); + selectorNode.registerHandler("SortBlue", new SortColorHandler(1)); + + new Thread(() -> nodeMainExecutor.execute(selectorNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SensorLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SensorLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..5ba5e63f4fe17918ec9dc4418e957caf61bb98ab --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SensorLauncher.java @@ -0,0 +1,26 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.handlers.SensorDataGetHandler; +import de.tudresden.inf.st.sorting.handlers.SensorDataProcessingHandler; +import de.tudresden.inf.st.sorting.nodes.SensorNode; + +import java.net.URI; + +public class SensorLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/SelectorNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + SensorNode sensorNode = new SensorNode("SensorNode", petriNet, MQTT_HOST); + sensorNode.registerHandler("GetSensorData", new SensorDataGetHandler(1)); + sensorNode.registerHandler("ProcessSensorData", new SensorDataProcessingHandler(1)); + + new Thread(() -> nodeMainExecutor.execute(sensorNode, nodeConfiguration)) {{start();}}; + } +} \ No newline at end of file diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SynchronizerLauncher.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SynchronizerLauncher.java new file mode 100644 index 0000000000000000000000000000000000000000..2c1bb6bd0b31799e0290517cec1a9fab5cd5b5d0 --- /dev/null +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/launcher/SynchronizerLauncher.java @@ -0,0 +1,26 @@ +package de.tudresden.inf.st.sorting.launcher; + +import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; +import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; +import de.tudresden.inf.st.sorting.handlers.ControlEndHandler; +import de.tudresden.inf.st.sorting.handlers.ControlGetHandler; +import de.tudresden.inf.st.sorting.nodes.SynchronizerNode; + +import java.net.URI; + +public class SynchronizerLauncher extends NodeLauncher { + + public static void main(java.lang.String[] args) { + + nodeConfiguration.setMasterUri(URI.create(ROS_MASTER_URI)); + + String petriNetPath = "/nets/SynchronizerNode.pnml"; + PetriNet petriNet = PnmlParser.parsePnml(petriNetPath, true).get(0); + + SynchronizerNode synchronizerNode = new SynchronizerNode("SynchronizerNode", petriNet, MQTT_HOST); + synchronizerNode.registerHandler("Get", new ControlGetHandler(1)); + synchronizerNode.registerHandler("End", new ControlEndHandler(1)); + + new Thread(() -> nodeMainExecutor.execute(synchronizerNode, nodeConfiguration)) {{start();}}; + } +} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/ExecutorNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/ExecutorNode.java index cb3c3c9157df317a94d421376a6be3811e36506c..9a99c2a10e41e4ae7164e66dc34475f5dbac53a6 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/ExecutorNode.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/ExecutorNode.java @@ -1,27 +1,59 @@ package de.tudresden.inf.st.sorting.nodes; import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; -import de.tudresden.inf.st.pnml.jastadd.model.TransitionSelectionResult; +import de.tudresden.inf.st.pnml.jastadd.model.*; +import de.tudresden.inf.st.sorting.constants.TokenConstants; import java.util.List; public class ExecutorNode extends DiNeRosNode { - // TODO implement this node - public ExecutorNode(String nodeName, PetriNet petriNet, String rcHost, String gcProtocol) { - super(nodeName, petriNet, rcHost, gcProtocol); + public ExecutorNode(String nodeName, PetriNet petriNet, String rcHost) { + super(nodeName, petriNet, rcHost, "mqtt"); } @Override protected TransitionSelectionResult onChange(List<Transition> list) { - return null; + + for (Transition t : list) { + if (t.getId().equals("TransitionUnsafe")) { + for (Place p : t.incomingPlaces()) { + if (p.getId().equals("SensorResponse")) { + if (parseToken(marking.resolveBalloonPlace(p).getBalloonMarking(0). + getValue()).get(TokenConstants.HUMAN_DETECTED).equals("true")) { + System.out.println("Firing: " + t.getId()); + return new FiringSelectionSuccess(t); + } + break; + } + } + } + + if (t.getId().equals("TransitionSafe")) { + for (Place p : t.incomingPlaces()) { + if (p.getId().equals("SensorResponse")) { + if (parseToken(marking.resolveBalloonPlace(p).getBalloonMarking(0). + getValue()).get(TokenConstants.HUMAN_DETECTED).equals("false")) { + System.out.println("Firing: " + t.getId()); + return new FiringSelectionSuccess(t); + } + break; + } + } + } + } + TransitionSelectionResult res = fireRandomEnabledTransition(list); + + if(res.isFiringSelectionSuccess()){ + System.out.println("Firing: " + res.asFiringSelectionSuccess().getTransition().getId()); + } + + return res; } @Override protected TransitionSelectionResult onStartupEnded(List<Transition> list) { - return null; + return this.onChange(list); } } diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/FeedbackNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/FeedbackNode.java deleted file mode 100644 index 6b8e77fb5cd13f4477ebbfc3286d91f18b7063b1..0000000000000000000000000000000000000000 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/FeedbackNode.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.tudresden.inf.st.sorting.nodes; - -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; -import de.tudresden.inf.st.pnml.jastadd.model.FiringSelectionNone; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; -import de.tudresden.inf.st.pnml.jastadd.model.TransitionSelectionResult; -import de.tudresden.inf.st.sorting.utils.LogUtils; - -import java.util.List; - -public class FeedbackNode extends DiNeRosNode { - - public FeedbackNode(String nodeName, PetriNet petriNet, String rcHost) { - super(nodeName, petriNet, rcHost, "mqtt"); - } - - @Override - protected TransitionSelectionResult onChange(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } - - @Override - protected TransitionSelectionResult onStartupEnded(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } -} diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SelectorNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SelectorNode.java index e44ba5fbb465f49de5051d5792f5be8911008c92..87f9e075afd04393e3b48aee18c1c828e128adbd 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SelectorNode.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SelectorNode.java @@ -1,37 +1,12 @@ package de.tudresden.inf.st.sorting.nodes; -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; +import de.tudresden.inf.st.pnml.engine.ros.DiNeRosDefaultNode; import de.tudresden.inf.st.pnml.jastadd.model.*; -import de.tudresden.inf.st.sorting.utils.LogUtils; -import java.util.List; - -public class SelectorNode extends DiNeRosNode { +public class SelectorNode extends DiNeRosDefaultNode { + // mosquitto_pub -t 'Green' -m 'true' public SelectorNode(String nodeName, PetriNet petriNet, String rcHost) { super(nodeName, petriNet, rcHost, "mqtt"); } - - @Override - protected TransitionSelectionResult onChange(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } - - @Override - protected TransitionSelectionResult onStartupEnded(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } } diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SensorNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SensorNode.java index d121980c8a0ed899b739e1025713e4056fe834ff..84291864280e4b5039b7e77eae4f520e377307c6 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SensorNode.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SensorNode.java @@ -1,27 +1,12 @@ package de.tudresden.inf.st.sorting.nodes; -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; +import de.tudresden.inf.st.pnml.engine.ros.DiNeRosDefaultNode; import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; -import de.tudresden.inf.st.pnml.jastadd.model.TransitionSelectionResult; -import java.util.List; +public class SensorNode extends DiNeRosDefaultNode { -public class SensorNode extends DiNeRosNode { - - // TODO implement this node - - public SensorNode(String nodeName, PetriNet petriNet, String rcHost, String gcProtocol) { - super(nodeName, petriNet, rcHost, gcProtocol); + public SensorNode(String nodeName, PetriNet petriNet, String rcHost) { + super(nodeName, petriNet, rcHost, "mqtt"); } - @Override - protected TransitionSelectionResult onChange(List<Transition> list) { - return null; - } - - @Override - protected TransitionSelectionResult onStartupEnded(List<Transition> list) { - return null; - } } diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SynchronizerNode.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SynchronizerNode.java index d81f5bb2c85ede3fe7fa4b3730e6aebf7b0d8b83..04a547e07dfb3da012fb0fc7c4e78b93e6b09b9e 100644 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SynchronizerNode.java +++ b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/nodes/SynchronizerNode.java @@ -1,41 +1,11 @@ package de.tudresden.inf.st.sorting.nodes; -import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; -import de.tudresden.inf.st.pnml.jastadd.model.FiringSelectionNone; +import de.tudresden.inf.st.pnml.engine.ros.DiNeRosDefaultNode; import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; -import de.tudresden.inf.st.pnml.jastadd.model.TransitionSelectionResult; -import de.tudresden.inf.st.sorting.utils.LogUtils; -import java.util.List; - -public class SynchronizerNode extends DiNeRosNode { +public class SynchronizerNode extends DiNeRosDefaultNode { public SynchronizerNode(String nodeName, PetriNet petriNet, String rcHost) { super(nodeName, petriNet, rcHost, "mqtt"); } - - @Override - protected TransitionSelectionResult onChange(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } - - @Override - protected TransitionSelectionResult onStartupEnded(List<Transition> list) { - LogUtils.printTransitions(list); - if(list.size() == 0){ - return new FiringSelectionNone(); - } - - TransitionSelectionResult res = fireRandomEnabledTransition(list); - System.out.println("Selected transition: " + res.asFiringSelectionSuccess().getTransition().getId()); - return res; - } } diff --git a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/utils/LogUtils.java b/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/utils/LogUtils.java deleted file mode 100644 index 930135085423c53b69c2edecc5b18a8e4880b86e..0000000000000000000000000000000000000000 --- a/case-study-sorting-pkg/src/main/java/de/tudresden/inf/st/sorting/utils/LogUtils.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.tudresden.inf.st.sorting.utils; - -import de.tudresden.inf.st.pnml.jastadd.model.Transition; - -import java.util.List; - -public class LogUtils { - - public static void printTransitions(List<Transition> list){ - for(Transition t : list){ - System.out.println("Enabled t: " + t.getId()); - } - } -} diff --git a/case-study-sorting-pkg/src/main/resources/nets/ExecutorNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/ExecutorNode.pnml index 364917b9ddac70199d94a46657f6a63f768b214b..1091e4cef8b3e1bd741ec1b7dbcfa0c3a102ab07 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/ExecutorNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/ExecutorNode.pnml @@ -202,7 +202,7 @@ </place> <transition id="PlacingAbort"> <name> - <text>PlaceingAbort</text> + <text>PlacingAbort</text> </name> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> @@ -453,14 +453,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/FeedbackNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/FeedbackNode.pnml index 3375c9ba77e6529a2236a50f5512335f137e974d..c8a2ef66a0618fc207da115f0f56420e673ad084 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/FeedbackNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/FeedbackNode.pnml @@ -60,14 +60,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/LeftControllerNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/LeftControllerNode.pnml index ee9dbd9e4146b14065a9f52245c5255e03057d8d..4d6ce660b011e2f4bda759c55325e2709b562509 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/LeftControllerNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/LeftControllerNode.pnml @@ -85,14 +85,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/RightControllerNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/RightControllerNode.pnml index eb63ce0e322993895ddb7e27a046099ae1afb2d9..a14e84ad556196fbab9fb0aec3c425c7ee935e1c 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/RightControllerNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/RightControllerNode.pnml @@ -85,14 +85,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/SelectorNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/SelectorNode.pnml index eb274968060835711afe040b74f4a090dee3ab4c..c914a69407a531fba657afc87fba6788533f9cd6 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/SelectorNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/SelectorNode.pnml @@ -19,7 +19,7 @@ <balloonMarking> <tokens> <token>{"color" : "green", "name" : "green1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -51,7 +51,7 @@ <balloonMarking> <tokens> <token>{"color" : "blue", "name" : "blue1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -71,7 +71,7 @@ <balloonMarking> <tokens> <token>{"color" : "red", "name" : "red1", "pickSuccess" : "false", "placeSuccess" : "false", - "humanDetected" : "false", "sensorData" : "", "trace" : "" } </token> + "humanDetected" : "false", "sensorData" : "", "trace" : "", "locked" : "false" } </token> </tokens> </balloonMarking> </toolspecific> @@ -166,14 +166,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/SensorNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/SensorNode.pnml index e410503238de1f8cd7a669019d55b0fe86be3d32..a292b80cac058616a138451dcbd5bd34f9c39ec3 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/SensorNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/SensorNode.pnml @@ -99,14 +99,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl diff --git a/case-study-sorting-pkg/src/main/resources/nets/SynchronizerNode.pnml b/case-study-sorting-pkg/src/main/resources/nets/SynchronizerNode.pnml index c42c77e412b8d209cf43273c3eab19a9852d3368..c96d49cdec29d6dda51db8bd8c023a68f3b6a891 100644 --- a/case-study-sorting-pkg/src/main/resources/nets/SynchronizerNode.pnml +++ b/case-study-sorting-pkg/src/main/resources/nets/SynchronizerNode.pnml @@ -151,8 +151,8 @@ <subnet>SharedSync</subnet> <balloonMarking> <tokens> - <token>{ "id" : "NONE", "picksuccess" : "false", "placesuccess" : "false", "sensor" - : "NONE" } + <token>{ "color":"NONE","name":"NONE","pickSuccess":"false","placeSuccess":"false", + "humanDetected":"false","sensorData":"NONE","trace":"NONE", "locked" : "true" } </token> </tokens> </balloonMarking> @@ -170,14 +170,14 @@ <toolspecific tool="de.tudresden.inf.st.pnml.splitter" version="0.0.1"> <ports> - <port name="RightCellTopic" placeType="pub">GreenOut</port> - <port name="LeftCellTopic" placeType="pub">BlueOut</port> - <port name="LeftCellTopic" placeType="pub">RedOut</port> - <port name="UITopic" placeType="pub">L-Done</port> - <port name="UITopic" placeType="pub">R-Done</port> - <port name="RightCellTopic" placeType="sub">R-AwaitingControl</port> - <port name="LeftCellTopic" placeType="sub">L-AwaitingControl</port> - <port name="UITopic" placeType="sub">FeedbackIn</port> + <port name="RightCellTopic" limit="10" placeType="pub">GreenOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">BlueOut</port> + <port name="LeftCellTopic" limit="10" placeType="pub">RedOut</port> + <port name="UITopic" limit="10" placeType="pub">L-Done</port> + <port name="UITopic" limit="10" placeType="pub">R-Done</port> + <port name="RightCellTopic" limit="10" placeType="sub">R-AwaitingControl</port> + <port name="LeftCellTopic" limit="10" placeType="sub">L-AwaitingControl</port> + <port name="UITopic" limit="10" placeType="sub">FeedbackIn</port> <port cResponsePlace="R-Ready" limit="-1" name="getControlService" placeType="creq">R-AwaitingControl </port> <port cResponsePlace="L-Ready" limit="-1" name="getControlService" placeType="creq">L-AwaitingControl