Skip to content
Snippets Groups Projects
Commit 5352c47f authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

initial full impl of case study with mocks

parent 0396df65
Branches
Tags
No related merge requests found
Showing
with 71 additions and 155 deletions
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;
}
}
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;
}
}
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;
}
}
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());
}
}
}
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment