diff --git a/Main/pom.xml b/Main/pom.xml index 48e6dace0..f268f5079 100644 --- a/Main/pom.xml +++ b/Main/pom.xml @@ -186,5 +186,10 @@ 3.4.4-5 linuxraspbian + + com.fasterxml.jackson.core + jackson-databind + 2.10.0.pr1 + diff --git a/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java b/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java index 39b27c28f..cd922368f 100644 --- a/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java +++ b/Main/src/main/java/com/chameleonvision/settings/SettingsManager.java @@ -153,6 +153,7 @@ public class SettingsManager { Cameras.put(CameraName, cam); CreateNewPipeline(null, CameraName); + CreateNewPipeline(null, CameraName);//Created 2 pipeline for testing TODO add a create pipeline button } diff --git a/Main/src/main/java/com/chameleonvision/web/Server.java b/Main/src/main/java/com/chameleonvision/web/Server.java index c899419bf..06729c5b4 100644 --- a/Main/src/main/java/com/chameleonvision/web/Server.java +++ b/Main/src/main/java/com/chameleonvision/web/Server.java @@ -49,13 +49,11 @@ public class Server { case "curr_camera": SettingsManager.getInstance().SetCurrentCamera((String) value); //broadcastMessage((Map) new HashMap(){}.put("port",SettingsManager.CameraPorts.get(SettingsManager.GeneralSettings.curr_camera))); - //broadcastMessage(SettingsManager.getInstance().GetCurrentCamera());//TODO CHECK JSON FOR CAMERA CHANGE +// broadcastMessage(ctx, SettingsManager.getInstance().GetCurrentCamera());//TODO CHECK JSON FOR CAMERA CHANGE break; case "curr_pipeline": - System.out.println("change pipeline"); SettingsManager.getInstance().SetCurrentPipeline((String) value); SettingsManager.CamerasCurrentPipeline.put(SettingsManager.GeneralSettings.curr_camera, (String) value); -// broadcastMessage(SettingsManager.getInstance().GetCurrentPipeline());//TODO CHECK JSON FOR PIPELINE CHANGE break; case "resolution": System.out.println("change res"); @@ -118,21 +116,20 @@ public class Server { return successful; } - private static void broadcastMessage(WsContext sendingUser, String message) { + private static void broadcastMessage(WsContext sendingUser, Object obj) {//TODO chekc if session id is a good way to differentiate users for (var user : users) { - if (user != sendingUser) { - user.send(message); + if (sendingUser!=null&&user.getSessionId()==sendingUser.getSessionId()) { + continue; } + if (obj.getClass() == String.class) + user.send((String) obj); + else if (obj.getClass() == HashMap.class) + user.send(new JSONObject((HashMap) obj).toString()); + else + user.send(new JSONObject(obj).toString()); } } - private static void broadcastMessage(Map map) { - for (var user : users) { - user.send(new JSONObject(map).toString()); - } - - } - private static void addAllFieldsToMap(Map map, Object obj) { try { Field[] fields = obj.getClass().getFields(); @@ -159,7 +156,7 @@ public class Server { System.err.println("No camera found!"); //TODO: add message to ui to inform that there are no cameras } - broadcastMessage(fullSettings); + broadcastMessage(null, fullSettings); }