diff --git a/src/main/java/ipos/project/iposextension/tooz/Tooz.java b/src/main/java/ipos/project/iposextension/tooz/Tooz.java index 49025e7bc380eab90aa71b33fda71779e652793d..a4a1adf11847fbddde4053fb303942ccb0659de3 100644 --- a/src/main/java/ipos/project/iposextension/tooz/Tooz.java +++ b/src/main/java/ipos/project/iposextension/tooz/Tooz.java @@ -122,7 +122,7 @@ public class Tooz { } List<Map.Entry<String, Double>> sortedDistances = extractSortedDistances(monitoredTarget); if (sortedDistances.size() == 0){ - LOG.info("Could not update Tooz-backend for monitoring Target " + monitoredTarget.getTargetSensorId() + "as no distant entities are known yet."); + LOG.info("Could not update Tooz-backend for monitoring Target " + monitoredTarget.getTargetSensorId() + " as no distant entities are known yet."); return; } Map.Entry<String, Double> nearestDistantEntity = sortedDistances.get(0); diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java index 453858b356e8c9f8f23ab746683b9b53163c43e1..6046133062ebcc160c37c749f40164ea5549549f 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozExt.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozExt.java @@ -41,17 +41,31 @@ public class ToozExt extends IPosExtension { @Override public void handleRawdataEvent(IPosRawdataEvent iPosRawdataEvent) { if (iPosRawdataEvent instanceof IPosUWBEvent){ - IPosUWBEvent iPosUWBEvent = (IPosUWBEvent) iPosRawdataEvent; - handleIPosBeaconEvent((IPosBeaconEvent) iPosUWBEvent); + handleIPosUWBEvent((IPosUWBEvent) iPosRawdataEvent); } if (iPosRawdataEvent instanceof IPosBTEvent){ - IPosBTEvent iPosBTEvent = (IPosBTEvent) iPosRawdataEvent; - if (null == iPosBTEvent.getDistances() && null != iPosBTEvent.getRss()) { - iPosBTEvent.setDistances(translateRssToDistances(iPosBTEvent)); + handleIPosBTEvent((IPosBTEvent) iPosRawdataEvent); + } + } - } + private void handleIPosBTEvent(IPosBTEvent iPosRawdataEvent) { + IPosBTEvent iPosBTEvent = iPosRawdataEvent; + if ((iPosBTEvent.getDistances().size() == 0) && (iPosBTEvent.getRss().size() == 0)){ + LOG.info("Ignoring IPosBTEvent, as it neither contains distances nor rss-values"); + return; + } + if ((iPosBTEvent.getDistances().size() == 0) && (iPosBTEvent.getRss().size() > 0)) { + iPosBTEvent.setDistances(translateRssToDistances(iPosBTEvent)); + } + handleIPosBeaconEvent((IPosBeaconEvent) iPosBTEvent); + } - handleIPosBeaconEvent((IPosBeaconEvent) iPosBTEvent); + private void handleIPosUWBEvent(IPosUWBEvent iPosRawdataEvent) { + IPosUWBEvent iPosUWBEvent = iPosRawdataEvent; + if (iPosUWBEvent.getDistances().size() > 0) { + handleIPosBeaconEvent((IPosBeaconEvent) iPosUWBEvent); + }else{ + LOG.info("Ignoring IPosUWBEvent as it does not contain any distances"); } } diff --git a/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java index b17454c589db2cb3b6486b470361b7eaa7c2a1d1..094b636e0ef0c1b8d37a2dce741e183266d6f7df 100644 --- a/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java +++ b/src/main/java/ipos/project/iposextension/tooz/ToozLocalAgent.java @@ -65,8 +65,10 @@ public class ToozLocalAgent { private String targetSensorId; public void addOrUpdateDistances(Map<String, Double> map){ - map.entrySet().forEach(entry -> distances.put(entry.getKey(), entry.getValue())); // put-function creates new entry, or updates existing one - this.hasChanged = true; + if (map.size() > 0) { + map.entrySet().forEach(entry -> distances.put(entry.getKey(), entry.getValue())); // put-function creates new entry, or updates existing one + this.hasChanged = true; + } } public String getLocalAgentId() { diff --git a/testdata_raw_tooz.txt b/testdata_raw_tooz.txt index 2d43355a0ef2dfb817d8ab2ded2f07b7f49866c8..7a6e3f300912c27a24398b58a55da0ac6d71f2d1 100644 --- a/testdata_raw_tooz.txt +++ b/testdata_raw_tooz.txt @@ -1,4 +1,8 @@ +{"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_uwb", "type": "UWB"}]} +{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt", "type": "BT"}]} +{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt", "type": "BT", "rss": {"beacon_1" : "12.7", "beacon_2" : "15.3", "beacon_3" : "18.7"}}]} {"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt", "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "BT", "rss": {"beacon_1" : "12.7", "beacon_2" : "15.3", "beacon_3" : "18.7"}}]} +{"bluetoothRawDataEvent" : [{"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_bt", "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "BT"}]} {"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:03:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_1" : "2.5", "beacon_2" : "5.5", "beacon_3" : "8.5"}, "type": "UWB"}]} {"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:04:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_1" : "15.0"}, "type": "UWB"}]} {"uwbRawDataEvent" : [ {"timestamp" : "2022-02-02T16:05:20+00:00", "sensorId" : "tooz_employee_uwb", "distances": {"beacon_5" : "1.8"}, "type": "UWB"}]} \ No newline at end of file