From a6e56056f7ddca9291162614638c0e18a8f2a0d7 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Thu, 6 May 2021 16:41:35 +0200
Subject: [PATCH] use reachability connection instead of dummies

---
 .../main/java/de/tudresden/inf/st/placeB/MainB.java  | 12 +++++++++---
 ros3rag.placeB/src/main/resources/config-b.yaml      |  2 +-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
index f41e113..5c7ae32 100644
--- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
+++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java
@@ -29,8 +29,9 @@ public class MainB {
   private final static String TOPIC_EXIT = "place-b/exit";
 
   private final static String TOPIC_MY_SCENE_INIT = "place-b/init";
+  private final static String TOPIC_ROBOT_REACHABILITY = "place-b/reachability/%s";
   private final static String TOPIC_MY_SCENE_UPDATE_FROM_ROS = "place-b/scene/update";
-  private final static String TOPIC_COMMANDS = "place-b/commands";
+  private final static String TOPIC_COMMAND = "place-b/command";
 
   private final static String TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A = "place-a/logical/update";
 
@@ -69,7 +70,12 @@ public class MainB {
     );
     Scene myScene = UtilB.convert(scene);
     model.setMyScene(myScene);
-    Util.extractRobotNames(scene).forEach(name -> model.addRobot(UtilB.createRobot(name)));
+    for (String name : Util.extractRobotNames(scene)) {
+      Robot robot = UtilB.createRobot(name);
+      model.addRobot(robot);
+      // assumption: robots do not change during runtime, so we have stable connections
+      robot.connectCanReachObjectOfInterestWrapper(mqttUri(String.format(TOPIC_ROBOT_REACHABILITY, name), config));
+    }
 
     /// Set (dummy) reachability, if configured
     if (config.useReachability) {
@@ -91,7 +97,7 @@ public class MainB {
     /// Connect endpoints
     model.connectMyScene(mqttUri(TOPIC_MY_SCENE_UPDATE_FROM_ROS, config));
     model.connectOtherScene(mqttUri(TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A, config));
-    model.connectNextOperation(mqttUri(TOPIC_COMMANDS, config), false);
+    model.connectNextOperation(mqttUri(TOPIC_COMMAND, config), false);
 
     logStatus("Start");
 
diff --git a/ros3rag.placeB/src/main/resources/config-b.yaml b/ros3rag.placeB/src/main/resources/config-b.yaml
index 91aa941..e4f1aa8 100644
--- a/ros3rag.placeB/src/main/resources/config-b.yaml
+++ b/ros3rag.placeB/src/main/resources/config-b.yaml
@@ -1,6 +1,6 @@
 mqttHost: "localhost"
 filenameInitialScene: "src/main/resources/config-scene-b.json"
-useReachability: true
+useReachability: false
 reachability:
   - idRobot: "arm1"
     filename: "src/main/resources/dummy-reachability-b-arm1.json"
-- 
GitLab