From c29bc52def2b58c81747cd971a66c79a0f37ae29 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Tue, 7 Jul 2020 19:32:29 +0200
Subject: [PATCH] Introduce ros2rag.common for files used by multiple modules.

- remove some unnecessary gradle dependencies
---
 ros2rag.common/.gitignore                       |  1 +
 {common => ros2rag.common}/config.yaml          |  7 +++++++
 .../proto/dataconfig.proto                      |  0
 .../proto/linkstate.proto                       |  0
 .../proto/robotconfig.proto                     |  0
 .../st/ros2rag/common}/DataConfiguration.java   | 10 ++++++++--
 .../tudresden/inf/st/ros2rag/common}/Util.java  | 17 +++++------------
 ros2rag.receiverstub/build.gradle               |  9 +--------
 ros2rag.senderstub/build.gradle                 |  3 ---
 ros2rag.starter/build.gradle                    |  1 +
 .../inf/st/ros2rag/starter/StarterMain.java     |  9 ++++-----
 ros2rag.starter/src/main/proto                  |  2 +-
 ros2rag.tests/src/test/proto                    |  2 +-
 settings.gradle                                 |  2 ++
 14 files changed, 31 insertions(+), 32 deletions(-)
 create mode 100644 ros2rag.common/.gitignore
 rename {common => ros2rag.common}/config.yaml (79%)
 rename {common => ros2rag.common}/proto/dataconfig.proto (100%)
 rename {common => ros2rag.common}/proto/linkstate.proto (100%)
 rename {common => ros2rag.common}/proto/robotconfig.proto (100%)
 rename {ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data => ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common}/DataConfiguration.java (73%)
 rename {ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter => ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common}/Util.java (68%)

diff --git a/ros2rag.common/.gitignore b/ros2rag.common/.gitignore
new file mode 100644
index 0000000..567609b
--- /dev/null
+++ b/ros2rag.common/.gitignore
@@ -0,0 +1 @@
+build/
diff --git a/common/config.yaml b/ros2rag.common/config.yaml
similarity index 79%
rename from common/config.yaml
rename to ros2rag.common/config.yaml
index a18ba84..8f49855 100644
--- a/common/config.yaml
+++ b/ros2rag.common/config.yaml
@@ -3,6 +3,8 @@ panda_mqtt_connector:
   topics:
     robotConfig: "robotconfig"
     dataConfig: "dataconfig"
+    trajectory: "trajectory"
+    nextStep: "ros2rag/nextStep"
   zone_size: 0.5
   zones:
     - "1 1"
@@ -21,3 +23,8 @@ panda_mqtt_connector:
   end_effectors:
     panda:
       EndEffector: "panda::panda_link7"
+  goal_poses:
+    - position: "0 0 0"
+      wait: "3"
+    - position: "1 1 1"
+      wait: "2"
diff --git a/common/proto/dataconfig.proto b/ros2rag.common/proto/dataconfig.proto
similarity index 100%
rename from common/proto/dataconfig.proto
rename to ros2rag.common/proto/dataconfig.proto
diff --git a/common/proto/linkstate.proto b/ros2rag.common/proto/linkstate.proto
similarity index 100%
rename from common/proto/linkstate.proto
rename to ros2rag.common/proto/linkstate.proto
diff --git a/common/proto/robotconfig.proto b/ros2rag.common/proto/robotconfig.proto
similarity index 100%
rename from common/proto/robotconfig.proto
rename to ros2rag.common/proto/robotconfig.proto
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
similarity index 73%
rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java
rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
index 092d498..13d92d9 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java
+++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java
@@ -1,6 +1,5 @@
-package de.tudresden.inf.st.ros2rag.starter.data;
+package de.tudresden.inf.st.ros2rag.common;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
@@ -19,9 +18,16 @@ public class DataConfiguration {
     public List<String> zones;
     public Map<String, SortedMap<String, String>> parts;
     public Map<String, SortedMap<String, String>> end_effectors;
+    public List<DataWorkPose> goal_poses;
   }
   public static class DataTopics {
     public String robotConfig;
     public String dataConfig;
+    public String trajectory;
+    public String nextStep;
+  }
+  public static class DataWorkPose {
+    public String position;
+    public String wait;
   }
 }
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
similarity index 68%
rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java
rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
index 0f9f0c0..471c21a 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java
+++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java
@@ -1,9 +1,6 @@
-package de.tudresden.inf.st.ros2rag.starter;
+package de.tudresden.inf.st.ros2rag.common;
 
-import de.tudresden.inf.st.ros2rag.starter.ast.Link;
-import de.tudresden.inf.st.ros2rag.starter.ast.MqttHandler;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration;
 
 import java.io.IOException;
 import java.util.Map;
@@ -15,12 +12,8 @@ import java.util.SortedMap;
  * @author rschoene - Initial contribution
  */
 public class Util {
-  public static void setMqttHost(RootElement model, ActualConfiguration config) throws IOException {
-    HostAndPort hostAndPort = split(config.server);
-    model.MqttSetHost(hostAndPort.host, hostAndPort.port);
-  }
 
-  public static void setMqttHost(MqttHandler handler, ActualConfiguration config) throws IOException {
+  public static void setMqttHost(SetHost handler, ActualConfiguration config) throws IOException {
     HostAndPort hostAndPort = split(config.server);
     handler.setHost(hostAndPort.host, hostAndPort.port);
   }
@@ -56,8 +49,8 @@ public class Util {
   }
 
   @FunctionalInterface
-  public interface RootElement {
-    void MqttSetHost(String host, int port) throws IOException;
+  public interface SetHost {
+    void setHost(String host, int port) throws IOException;
   }
 
   @FunctionalInterface
diff --git a/ros2rag.receiverstub/build.gradle b/ros2rag.receiverstub/build.gradle
index 9602982..da0cc23 100644
--- a/ros2rag.receiverstub/build.gradle
+++ b/ros2rag.receiverstub/build.gradle
@@ -21,14 +21,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.receiverstub.
 
 dependencies {
     implementation project(':ros2rag.starter')
-
-//    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
-//    implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jackson_version}"
-//    implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
-//    implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0'
-//    implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
-
-    protobuf files("$projectDir/../ros2rag.example/src/main/proto")
+    implementation project(':ros2rag.common')
 }
 
 test {
diff --git a/ros2rag.senderstub/build.gradle b/ros2rag.senderstub/build.gradle
index 4de593d..8a0b441 100644
--- a/ros2rag.senderstub/build.gradle
+++ b/ros2rag.senderstub/build.gradle
@@ -22,9 +22,6 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.senderstub.Se
 dependencies {
     implementation project(':ros2rag.starter')
 
-//    implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0'
-//    implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
-
     protobuf files("$projectDir/../ros2rag.example/src/main/proto")
 }
 
diff --git a/ros2rag.starter/build.gradle b/ros2rag.starter/build.gradle
index 748b742..a2e8130 100644
--- a/ros2rag.starter/build.gradle
+++ b/ros2rag.starter/build.gradle
@@ -27,6 +27,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.starter.Start
 
 dependencies {
     implementation project (':ros2rag.base')
+    implementation project (':ros2rag.common')
     baseRuntimeClasspath project (':ros2rag.base')
 //    implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}"
     api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
index 2f5b4db..63e9ea7 100644
--- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
+++ b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java
@@ -3,16 +3,15 @@ package de.tudresden.inf.st.ros2rag.starter;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import config.Dataconfig;
+import de.tudresden.inf.st.ros2rag.common.Util;
 import de.tudresden.inf.st.ros2rag.starter.ast.*;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration;
-import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration;
+import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Map.Entry;
-import java.util.SortedMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -83,7 +82,7 @@ public class StarterMain {
     logger.info("To exit the system cleanly, send a message to the topic 'exit', or use Ctrl+C.");
 
     mainHandler = new MqttHandler("mainHandler");
-    Util.setMqttHost(mainHandler, config);
+    Util.setMqttHost(mainHandler::setHost, config);
     mainHandler.waitUntilReady(2, TimeUnit.SECONDS);
     mainHandler.newConnection("exit", bytes -> exitCondition.countDown());
     mainHandler.newConnection("model", bytes -> logStatus(new String(bytes), robotArm));
diff --git a/ros2rag.starter/src/main/proto b/ros2rag.starter/src/main/proto
index b779e42..bb7d2ba 120000
--- a/ros2rag.starter/src/main/proto
+++ b/ros2rag.starter/src/main/proto
@@ -1 +1 @@
-../../../common/proto/
\ No newline at end of file
+../../../ros2rag.common/proto/
\ No newline at end of file
diff --git a/ros2rag.tests/src/test/proto b/ros2rag.tests/src/test/proto
index b779e42..bb7d2ba 120000
--- a/ros2rag.tests/src/test/proto
+++ b/ros2rag.tests/src/test/proto
@@ -1 +1 @@
-../../../common/proto/
\ No newline at end of file
+../../../ros2rag.common/proto/
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index edf79d1..9235870 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -6,3 +6,5 @@ include 'ros2rag.tests'
 include 'ros2rag.starter'
 include 'ros2rag.senderstub'
 include 'ros2rag.receiverstub'
+include 'ros2rag.goal'
+include 'ros2rag.common'
-- 
GitLab