Skip to content
Snippets Groups Projects
Commit a10d0036 authored by René Schöne's avatar René Schöne
Browse files

use incremental eval, add dumpAst

parent 13cc2b4d
Branches
Tags
No related merge requests found
...@@ -5,3 +5,5 @@ src/gen-res ...@@ -5,3 +5,5 @@ src/gen-res
build/ build/
out/ out/
logs/ logs/
/after.png
/before.png
...@@ -82,7 +82,7 @@ dependencies { ...@@ -82,7 +82,7 @@ dependencies {
implementation 'com.google.code.gson:gson:2.9.0' implementation 'com.google.code.gson:gson:2.9.0'
jastadd2 "org.jastadd:jastadd:2.3.5" jastadd2 "org.jastadd:jastadd2:2.3.5-dresden-6"
relast group: 'org.jastadd', name: 'relast', version: "${relast_version}" relast group: 'org.jastadd', name: 'relast', version: "${relast_version}"
ecore files("libs/ecore2relast-0.1.jar") ecore files("libs/ecore2relast-0.1.jar")
...@@ -119,6 +119,9 @@ dependencies { ...@@ -119,6 +119,9 @@ dependencies {
ragconnectClasspath 'de.tudresden.inf.st:ragconnect:1.0.0-alpha-214' ragconnectClasspath 'de.tudresden.inf.st:ragconnect:1.0.0-alpha-214'
// ragconnectClasspath fileTree(include: ['ragconnect.base-fatjar-1.0.0-alpha.jar'], dir: './libs') // ragconnectClasspath fileTree(include: ['ragconnect.base-fatjar-1.0.0-alpha.jar'], dir: './libs')
// vis
implementation group: 'de.tudresden.inf.st', name: 'dumpAst', version: '1.2.1-77'
// testing // testing
testImplementation('org.junit.jupiter:junit-jupiter:5.8.2') testImplementation('org.junit.jupiter:junit-jupiter:5.8.2')
...@@ -213,7 +216,11 @@ task ragConnect(type: JavaExec) { ...@@ -213,7 +216,11 @@ task ragConnect(type: JavaExec) {
'--rootNode=PetriNet', '--rootNode=PetriNet',
'--List=JastAddList', '--List=JastAddList',
'--incremental=param', '--incremental=param',
'--tracing=flush' '--tracing=flush',
'--experimental-jastadd-329',
'--logReads',
'--logWrites',
'--logIncremental'
]) ])
} }
...@@ -269,7 +276,7 @@ jastadd { ...@@ -269,7 +276,7 @@ jastadd {
parser.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser" parser.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser"
// default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false' // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
extraJastAddOptions = ['--List=JastAddList', '--incremental=param', '--tracing=flush'] extraJastAddOptions = ['--List=JastAddList', '--cache=all', '--incremental=param', '--tracing=flush']
} }
ragConnect.dependsOn ecoreToRelast ragConnect.dependsOn ecoreToRelast
......
receive InputSignalBinding.InputSignalValue using InputSignalTransformation; receive InputSignalBinding.InputSignalValue using InputSignalTransformation;
send OutputSignalBinding.OutputSignalValue using OutputSignalTransformation; send OutputSignalBinding.outputSignalValue(String) using OutputSignalTransformation;
// mapping definitions // mapping definitions
OutputSignalTransformation maps String s to String {: OutputSignalTransformation maps String s to String {:
......
package de.tudresden.inf.st.pnml.engine; package de.tudresden.inf.st.pnml.engine;
import de.tudresden.inf.st.jastadd.dumpAst.ast.Dumper;
import de.tudresden.inf.st.pnml.engine.execution.DefaultFinalTransitionCallback; import de.tudresden.inf.st.pnml.engine.execution.DefaultFinalTransitionCallback;
import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback;
import de.tudresden.inf.st.pnml.engine.ros.DiNeRosDefaultNode; import de.tudresden.inf.st.pnml.engine.ros.DiNeRosDefaultNode;
...@@ -18,15 +19,16 @@ import org.ros.node.topic.Publisher; ...@@ -18,15 +19,16 @@ import org.ros.node.topic.Publisher;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import rosjava_srv.StringServiceRequest; import rosjava_srv.StringServiceRequest;
import rosjava_srv.StringServiceResponse; import rosjava_srv.StringServiceResponse;
import std_msgs.String;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.net.URI; import java.net.URI;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
public class Main { public class Main {
...@@ -51,16 +53,18 @@ public class Main { ...@@ -51,16 +53,18 @@ public class Main {
PetriNetInitializer.initOutputSignalConnections(petriNet, "localhost", "mqtt"); PetriNetInitializer.initOutputSignalConnections(petriNet, "localhost", "mqtt");
dump(bm, "before");
System.out.println("Output Signal Values BEFORE: "); System.out.println("Output Signal Values BEFORE: ");
for(Place p : petriNet.allPlaces()){ for(Place p : petriNet.allPlaces()){
for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){ for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println(osb.getOutputSignalID() + " : " + osb.getOutputSignalValue()); System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
} }
} }
try { try {
System.out.println("Sleeping for 2s"); System.out.println("Sleeping for 2s");
Thread.sleep(2000); TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -76,14 +80,16 @@ public class Main { ...@@ -76,14 +80,16 @@ public class Main {
for ( OutputSignalBinding b : p.asOutputSignalPlace().getOutputSignalBindingList()){ for ( OutputSignalBinding b : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println("New Num: " + bm.resolveBalloonPlace(p).getNumBalloonMarking()); System.out.println("New Num: " + bm.resolveBalloonPlace(p).getNumBalloonMarking());
System.out.println("New Value: " + b.getOutputSignalValue()); System.out.println("New Value: " + b.outputSignalValue());
} }
} }
dump(bm, "after");
System.out.println("Output Signal Values AFTER: "); System.out.println("Output Signal Values AFTER: ");
for(Place p : petriNet.allPlaces()){ for(Place p : petriNet.allPlaces()){
for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){ for(OutputSignalBinding osb : p.asOutputSignalPlace().getOutputSignalBindingList()){
System.out.println(osb.getOutputSignalID() + " : " + osb.getOutputSignalValue()); System.out.println(osb.getOutputSignalID() + " : " + osb.outputSignalValue());
} }
} }
...@@ -91,6 +97,32 @@ public class Main { ...@@ -91,6 +97,32 @@ public class Main {
System.out.println(bm.print()); System.out.println(bm.print());
} }
private static void dump(BalloonMarking balloonMarking, String filename) throws IOException {
Dumper.read(balloonMarking)
.includeChildWhen((parentNode, childNode, contextName) -> {
// System.out.println("encountered " + parentNode + "." + contextName);
switch (contextName) {
case "AnnotationGraphics":
case "NodeGraphics":
case "Toolspecific":
return false;
default:
return true;
}
})
.includeAttributeWhen((node, attributeName, isNTA, value) -> {
// System.out.println("encountered " + node + "." + attributeName);
switch (attributeName) {
case "outputSignalValue":
case "OutputSignalBinding":
return true;
default:
return false;
}
})
.dumpAsPNG(Paths.get(filename + ".png"));
}
@SuppressWarnings("unused") @SuppressWarnings("unused")
private static void isTest() throws IOException { private static void isTest() throws IOException {
java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/is-test-2.pnml"; java.lang.String pnmlPath = "../pnml-relast-engine/src/main/resources/nets/is-test-2.pnml";
...@@ -293,7 +325,7 @@ public class Main { ...@@ -293,7 +325,7 @@ public class Main {
e.printStackTrace(); e.printStackTrace();
} }
for (Map.Entry<InputSignalTransition, Publisher<String>> entry : diNeRosNode.getDinerosPublishers().entrySet()) { for (Map.Entry<InputSignalTransition, Publisher<std_msgs.String>> entry : diNeRosNode.getDinerosPublishers().entrySet()) {
System.out.println("Firing publisher of:" + entry.getKey().getId()); System.out.println("Firing publisher of:" + entry.getKey().getId());
diNeRosNode.firePublisherTransition(entry.getKey()); diNeRosNode.firePublisherTransition(entry.getKey());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment