diff --git a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd index e0d5630c2ab762465db978be0ab5322378444940..0394b45a0223f9d1bd1f0f0204100c1b65c30ea5 100644 --- a/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd +++ b/src/main/jastadd/engine/balloonMarking/BalloonExecution.jadd @@ -94,10 +94,19 @@ aspect BalloonExecution{ idxC++; } + // System.out.println("> bmp: " + place.getId()); + // System.out.println("> bmp: " + bmp.getPlace().getId()); + // System.out.println("> num marking: " + bmp.getNumBalloonMarkingNoTransform()); + // System.out.println("> marking " + idx + ": " + bmp.getBalloonMarking(idx)); BalloonToken bt=bmp.getBalloonMarking(idx); inToken.add(bt); - bmp.getBalloonMarking(idx).removeSelf(); + System.out.println("[Engine] Removing token: " + bmp.getBalloonMarking(idx).getValue() + " from " + place.getId()); + //bmp.getBalloonMarking(idx).removeSelf(); + // System.out.println(bmp.getNumBalloonMarking()); + bmp.getBalloonMarkingList().removeChild(idx); + // System.out.println(bmp.getNumBalloonMarking()); + } BalloonTransition balloonTransition=callbackStorage.resolveBalloonTransition(transition); @@ -156,6 +165,11 @@ aspect BalloonExecution{ } } + // for(BalloonToken delToken : inToken){ + // System.out.println("[Engine] Removing token: " + delToken.getValue()); + // delToken.removeSelf(); + // } + if(requireFlush){ // flush the entire marking tree this.flushTreeCache(); diff --git a/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag b/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag index 6ae768ac3db92f6ef60bef05c9f1424f79cc2149..d43ffcff9774fa70938914bc3c661e1dfadbe7c5 100644 --- a/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag +++ b/src/main/jastadd/engine/balloonMarking/BalloonMarking.jrag @@ -124,31 +124,17 @@ aspect BalloonMarking { syn boolean BalloonMarking.isBalloonEnabled(Transition t) { - /*int inArcCount = 0; - int filledInPlaceCount = 0; - - for (Arc a : this.getPetriNet().allArcs()) { - if (a.getTarget().getId().equals(t.getId())) { - - inArcCount++; - for (BalloonMarkedPlace bmp : this.getPlaceList()) { - if (bmp.getPlace().getId().equals(a.getSource().getId())) { - if (bmp.getNumBalloonMarking() > 0) { - filledInPlaceCount++; - } - } - } - } - } - - if (inArcCount == filledInPlaceCount) { - return true; - }*/ - for (Place place : t.incomingPlaces()) { - System.out.println(">>>> Incomming: " + place.getId() + " -- " + marking(place).size()); + //System.out.println(">>> Incomming Place: " + place.getId() + " -- " + marking(place).size()); if (marking(place).size() == 0) return false; } + + for(RefPlace refPlace : t.incomingRefPlaces()){ + List<String> rMarking = marking(refPlace.originPlace()); + //System.out.println(">>> Incomming Place (R): " + refPlace.getId() + " -- " + rMarking.size()); + if (rMarking.size() == 0) return false; + } + return true; } diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java index c7183a72fa0cac74ebd1c8dbacc6e17799ef7306..3449a092e52f815fc2ec392a92391da03acc1b1e 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java +++ b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosDefaultNode.java @@ -18,15 +18,11 @@ public class DiNeRosDefaultNode extends DiNeRosNode{ } @Override - protected void nodeLoop() { - - System.out.println("No node loop implemented .."); - - } + protected void nodeLoop() {} protected TransitionSelectionResult onChange(List<Transition> enabledTransitions){ - printTransitions(enabledTransitions); + // printTransitions(enabledTransitions); if(enabledTransitions.size() == 0){ return new FiringSelectionNone(); @@ -39,7 +35,7 @@ public class DiNeRosDefaultNode extends DiNeRosNode{ protected TransitionSelectionResult onStartupEnded(List<Transition> enabledTransitions){ - printTransitions(enabledTransitions); + // printTransitions(enabledTransitions); if(enabledTransitions.size() == 0){ return new FiringSelectionNone(); diff --git a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java index 810bafad75316dfb3e0b12d1140e4e75ab636ea0..b59f7428e1c227a274ff7b82647aa02bb74d36a2 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java +++ b/src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java @@ -214,6 +214,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain { @Override public void onSuccess(StringServiceResponse stringServiceResponse) { System.out.println("[DiNeROS-Node] [" + nodeName + "] Received response from service: " + serviceName); + System.out.println("MARKING BEFORE APP:" + marking.print()); bmpSource.getBalloonMarking(0).removeSelf(); bmpTarget.addBalloonMarking(new BalloonToken(stringServiceResponse.getOutput(), System.currentTimeMillis())); marking.callServiceIfRequest(bmpTarget, self); @@ -224,7 +225,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain { } else { self.notify(new DiNeRosEvent(DiNeRosEventTypes.NOTIFICATION_MARKING_CHANGE)); } - serviceClient.shutdown(); + // serviceClient.shutdown(); } @Override @@ -270,9 +271,9 @@ public abstract class DiNeRosNode extends AbstractNodeMain { } } - //for(Transition t : signalFilteredTransitions){ - // System.out.println("Enabled: " + t.getId()); - // } + for(Transition t : signalFilteredTransitions){ + System.out.println("Enabled: " + t.getId()); + } return signalFilteredTransitions; }