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

simplifiation of net init

parent 236a0247
No related branches found
No related tags found
No related merge requests found
......@@ -23,15 +23,14 @@ public class Main {
// topicTest();
testBaseNet();
// testBaseNet();
// testServiceNets();
// isTest();
// osTest();
isTest();
}
@SuppressWarnings("unused")
private static void testBaseNet() {
java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/NodeNetTest.pnml";
......@@ -56,61 +55,35 @@ public class Main {
}
}
/*
private static void isTest() {
@SuppressWarnings("unused")
private static void osTest() throws IOException, SAXException, ParserConfigurationException {
String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/os-test-1.pnml";
java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/NodeNetSignalTest.pnml";
PetriNet petriNet = PnmlParser.parsePnml(pnmlPath).get(0);
BalloonMarking bm = petriNet.initializeBalloonMarking();
PetriNetInitializer.initOutputSignalConnections(petriNet, "localhost", "mqtt");
// dump(bm, "before");
System.out.println("Output Signal Values BEFORE: ");
for(Place p : petriNet.allPlaces()){
for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
}
}
for(Transition t : petriNet.allTransitions()){
try {
System.out.println("Sleeping for 2s");
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
// change marking
for(Place p : petriNet.allPlaces()){
BalloonToken bt = new BalloonToken();
bt.setValue("New Token");
/* nodeConfiguration.setMasterUri(URI.create("http://localhost:11311"));
BalloonMarkedPlace bmp = bm.resolveBalloonPlace(p);
bmp.addBalloonMarking(bt);
//bmp.addBalloonMarking(bt);
petriNet.flushTreeCache();
DinerosTestNode diNeRosNode = new DinerosTestNode("TestNode", petriNet);
for ( OutputSignalBinding b : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println("New Num: " + bm.resolveBalloonPlace(p).getNumBalloonMarking());
System.out.println("New Value: " + b.outputSignalValue());
}
for(BalloonTransition bt : diNeRosNode.callbackStorage.getTransitionList()){
bt.getBalloonCallbacks().add(new DefaultFinalTransitionHandler("default_final_cb", 1));
}
// dump(bm, "after");
System.out.println("Output Signal Values AFTER: ");
for(Place p : petriNet.allPlaces()){
for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
}
}
new Thread(() -> nodeMainExecutor.execute(diNeRosNode, nodeConfiguration)) {{
start();
}};
System.out.println("-- MARKING --");
System.out.println(bm.print());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}*/
}
/*
@SuppressWarnings("unused")
private static void dump(BalloonMarking balloonMarking, String filename) throws IOException {
Dumper.read(balloonMarking)
......
......@@ -71,11 +71,12 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
this.connectedNode.shutdown();
}
public synchronized void notify(java.lang.String notificationType){
public void notify(java.lang.String notificationType){
if (notificationType.equals(NOTIFICATION_MARKING_CHANGE)) {
onMarkingChangeInternal(marking.enabledBalloonTransitions());
} else if (notificationType.equals(NOTIFICATION_SIGNAL_CHANGE)) {
System.out.println("NOTIFICATION_SIGNAL_CHANGE");
onSignalChangeInternal(marking.enabledBalloonTransitions());
} else if (notificationType.equals(NOTIFICATION_WAIT_ENDED)) {
onWaitEndedInternal(marking.enabledBalloonTransitions());
......@@ -102,6 +103,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
return res;
}
System.out.println("FIRING TRANSITION");
marking.fireTransition(res.asFiringSelectionSuccess()
.getTransition(), callbackStorage, inputSignalConnector, this,true);
......
......@@ -42,9 +42,11 @@ public class DinerosTestNode extends DiNeRosNode {
private TransitionSelectionResult fireFirstEnabled(Set<Transition> enabledTransitions) {
System.out.println("Calling fireFirstEnabled");
System.out.println(marking.print());
FiringSelectionSuccess fsc = new FiringSelectionSuccess();
for(Transition t : enabledTransitions){
System.out.println("#EnabledTrans: " + marking.enabledBalloonTransitions().size());
for(Transition t : marking.enabledBalloonTransitions()){
System.out.println("Firing transition: " + t.getId());
//System.out.println(marking.print());
fsc.setTransition(t);
......@@ -52,7 +54,9 @@ public class DinerosTestNode extends DiNeRosNode {
}
if(enabledTransitions.size() == 0){
return new FiringSelectionFail();
FiringSelectionWait fsw = new FiringSelectionWait();
fsw.setWaitingTime(1000);
return fsw;
}
return fsc;
......
......@@ -77,7 +77,8 @@ public class PetriNetInitializer {
target.setMutableTransitionInformation(tri);
}
public static void initInputSignalConnections(PetriNet petriNet, String host, String protocol, InputSignalConnector inputSignalConnector, DiNeRosNode node) throws IOException {
public static void initInputSignalConnections(PetriNet petriNet, String host, String protocol,
InputSignalConnector inputSignalConnector, DiNeRosNode node) throws IOException {
for(String signalId : petriNet.getInputSignalDefinition().keySet()){
......@@ -91,9 +92,16 @@ public class PetriNetInitializer {
// internal java connections
sc.connectCurrentValue("java://localhost:00/" + signalId, false);
inputSignalConnector.ragconnectJavaRegisterConsumer("java://localhost:00/" + signalId,
bytes -> node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE));
//inputSignalConnector.ragconnectJavaRegisterConsumer("java://localhost:00/" + signalId,
// bytes -> node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE));
inputSignalConnector.ragconnectJavaRegisterConsumer(signalId, bytes -> notifyOnSignalChange(node));
}
}
public static void notifyOnSignalChange(DiNeRosNode node){
System.out.println("NOTIFY ON SIGNAL CHANGE");
node.notify(DiNeRosNode.NOTIFICATION_SIGNAL_CHANGE);
}
public void init(PetriNet petriNet, String host, String protocol, InputSignalConnector isc, DiNeRosNode node){
......
......@@ -61,7 +61,7 @@
<subnet>s1</subnet>
<inputsignalbinding>
</inputsignalbinding>
<inputsignalclause>is1</inputsignalclause>
<inputsignalclause>(is1)</inputsignalclause>
</toolspecific>
<name>
<text>t1</text>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment