diff --git a/ros3rag.common/src/main/java/de/tudresden/inf/st/ros3rag/common/SharedMainParts.java b/ros3rag.common/src/main/java/de/tudresden/inf/st/ros3rag/common/SharedMainParts.java index da23711e01e498ee05917e375cd9ca8044d68120..0f3a53e75fb36fd29d1319b4c594ef8737e22c20 100644 --- a/ros3rag.common/src/main/java/de/tudresden/inf/st/ros3rag/common/SharedMainParts.java +++ b/ros3rag.common/src/main/java/de/tudresden/inf/st/ros3rag/common/SharedMainParts.java @@ -90,6 +90,9 @@ public abstract class SharedMainParts<MqttHandler extends SharedMainParts.MqttHa protected abstract void createSpecificMainHandlerConnections(); private void rewind(String statusMessage) throws Exception { + if (model != null) { + model.ragconnectCloseConnections(); + } model = createWorldModel(); Scene scene = readSceneAndRobots(); diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd index 54fc3553bb998d6f0cfd1d5f555b9f38b45c45bb..636fce9c0febed3679de6b37893dc97b08269124 100644 --- a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd +++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd @@ -136,7 +136,15 @@ aspect Computation { //--- getNextOperation --- syn Operation WorldModelB.getNextOperation() { - return diffToOperations().getNumChild() > 0 ? diffToOperations().getChild(0) : new ErrorOperation("No operation computed!"); + if (diffToOperations().getNumChild() == 0) { + return new ErrorOperation("No operation computed!"); + } + for (Operation op : diffToOperations()) { + if (!op.isErrorOperation()) { + return op; + } + } + return new ErrorOperation("No executable operation found!"); } //--- canReach ---