From 97511ad3dd9fe7fb8a4349d08811a3da150bae2f Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Thu, 13 May 2021 12:49:26 +0200 Subject: [PATCH] close connections on rewind, send first non-error-operation --- .../inf/st/ros3rag/common/SharedMainParts.java | 3 +++ ros3rag.placeB/src/main/jastadd/WorldModelB.jadd | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) 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 da23711..0f3a53e 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 54fc355..636fce9 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 --- -- GitLab