Skip to content
Snippets Groups Projects
Commit f64da59a authored by René Schöne's avatar René Schöne
Browse files

begin with read scene for place b

parent 90537ae2
No related branches found
No related tags found
No related merge requests found
Pipeline #9716 passed
......@@ -5,11 +5,13 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLParser;
import com.google.protobuf.util.JsonFormat;
import de.tudresden.inf.st.ros3rag.common.DataConfiguration.ActualConfiguration;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;
import java.util.Map;
import java.util.SortedMap;
......@@ -66,6 +68,14 @@ public class Util {
return result;
}
public static de.tudresden.inf.st.ceti.Scene readScene(java.nio.file.Path path) throws java.io.IOException {
var jsonString = Files.readString(path);
var builder = de.tudresden.inf.st.ceti.Scene.newBuilder();
JsonFormat.parser().merge(jsonString, builder);
return builder.build();
}
private static class HostAndPort {
String host;
int port;
......
......@@ -13,6 +13,8 @@ import java.nio.file.Paths;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
import static de.tudresden.inf.st.ros3rag.common.Util.readScene;
/**
* Testing features for placeA.
*
......@@ -62,22 +64,14 @@ public class SimpleMainA {
model.getScene().connectLogicalScene("mqtt://localhost/logical/scene/update", true);
}
private static de.tudresden.inf.st.ceti.Scene readScene(java.nio.file.Path path) throws java.io.IOException {
var jsonString = Files.readString(path);
var builder = de.tudresden.inf.st.ceti.Scene.newBuilder();
JsonFormat.parser().merge(jsonString, builder);
return builder.build();
}
@SuppressWarnings("rawtypes")
static class ExposingASTNode extends ASTNode {
public static Scene _apply_ConvertScene(de.tudresden.inf.st.ceti.Scene pbScene) throws Exception {
private static Scene convert(de.tudresden.inf.st.ceti.Scene scene) throws Exception {
class ExposingASTNode extends ASTNode {
public Scene my_apply_ConvertScene(de.tudresden.inf.st.ceti.Scene pbScene) throws Exception {
return ASTNode._apply_ConvertScene(pbScene);
}
}
private static Scene convert(de.tudresden.inf.st.ceti.Scene scene) throws Exception {
return ExposingASTNode._apply_ConvertScene(scene);
return new ExposingASTNode().my_apply_ConvertScene(scene);
}
@SuppressWarnings("unused")
......
package de.tudresden.inf.st.placeB;
import de.tudresden.inf.st.placeB.ast.*;
import de.tudresden.inf.st.ros3rag.common.Util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.nio.file.Paths;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static de.tudresden.inf.st.ros3rag.common.Util.readScene;
/**
* Testing features for placeB.
*
......@@ -11,12 +18,78 @@ import org.apache.logging.log4j.Logger;
*/
public class SimpleMainB {
private static final Logger logger = LogManager.getLogger(SimpleMainB.class);
private MqttHandler mainHandler;
private WorldModelB model;
public static void main(String[] args) throws Exception {
new SimpleMainB().run(args);
}
private void run(String[] args) throws Exception {
// testBuildModelB();
testReceivingModelB();
}
private void testReceivingModelB() throws Exception {
final var path = Paths.get("..", "ros3rag.common", "src", "main", "resources", "config_scene.json");
model = new WorldModelB();
de.tudresden.inf.st.ceti.Scene scene = readScene(path);
Scene myScene = convert(scene);
model.setMyScene(myScene);
model.ragconnectCheckIncremental();
model.ragconnectSetupMqttWaitUntilReady(2, TimeUnit.SECONDS);
model.connectOtherScene("mqtt://localhost/logical/scene/update");
logStatus("Start");
CountDownLatch exitCondition = new CountDownLatch(1);
logger.info("To print the current model states, send a message to the topic 'model'.");
logger.info("To exit the system cleanly, send a message to the topic 'exit', or use Ctrl+C.");
public static void main(String[] args) {
testBuildModelB();
mainHandler = new MqttHandler("mainHandler").dontSendWelcomeMessage();
// Util.setMqttHost(mainHandler::setHost, config);
mainHandler.waitUntilReady(2, TimeUnit.SECONDS);
mainHandler.newConnection("exit", bytes -> exitCondition.countDown());
mainHandler.newConnection("model", bytes -> logStatus(new String(bytes)));
// sendInitialDataConfig(mainHandler, config.topics.dataConfig);
Runtime.getRuntime().addShutdownHook(new Thread(this::close));
exitCondition.await();
this.close();
}
private void logStatus(String message) {
logger.info(message);
// more information to be added later
printModelInfos(model);
}
private void close() {
logger.info("Exiting ...");
mainHandler.close();
model.ragconnectCloseConnections();
}
@SuppressWarnings("rawtypes")
private static Scene convert(de.tudresden.inf.st.ceti.Scene scene) throws Exception {
class ExposingASTNode extends ASTNode {
public Scene my_apply_ConvertScene(de.tudresden.inf.st.ceti.Scene pbScene) throws Exception {
return ASTNode._apply_ConvertScene(pbScene);
}
}
return new ExposingASTNode().my_apply_ConvertScene(scene);
}
private static void testBuildModelB() {
@SuppressWarnings("unused")
private void testBuildModelB() {
WorldModelB model = new WorldModelB();
// robots
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment