From 2dcad3c7fc4db309c82f01fefc9dd08d04e6d157 Mon Sep 17 00:00:00 2001 From: Medad Rufus Newman Date: Mon, 9 May 2022 21:40:05 +0100 Subject: [PATCH] take out the location info from cayenne object --- .../nl/sikken/bertrik/hab/PayloadDecoder.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/ttnhabbridge/src/main/java/nl/sikken/bertrik/hab/PayloadDecoder.java b/ttnhabbridge/src/main/java/nl/sikken/bertrik/hab/PayloadDecoder.java index 8a56c76..79ad476 100644 --- a/ttnhabbridge/src/main/java/nl/sikken/bertrik/hab/PayloadDecoder.java +++ b/ttnhabbridge/src/main/java/nl/sikken/bertrik/hab/PayloadDecoder.java @@ -161,11 +161,36 @@ public final class PayloadDecoder { try { Instant time = message.getTime(); - Sentence sentence = new Sentence(callSign, counter, time); ECayennePayloadFormat cayenneFormat = ECayennePayloadFormat.fromPort(message.getPort()); CayenneMessage cayenne = new CayenneMessage(cayenneFormat); cayenne.parse(message.getPayloadRaw()); + double latitude = 0; + double longitude = 0; + double altitude = 0; + + // add all items, in the order they appear in the cayenne message + for (CayenneItem item : cayenne.getItems()) { + switch (item.getChannel()) { + case 0x12: { + latitude = item.getValue().doubleValue(); + break; + } + case 0x13: { + longitude = item.getValue().doubleValue(); + break; + } + case 0x16: { + altitude = item.getValue().doubleValue(); + break; + } + default: + } + } + + Location location = new Location(latitude, longitude, altitude); + Sentence sentence = new Sentence(callSign, counter, time, location); + // add all items, in the order they appear in the cayenne message for (CayenneItem item : cayenne.getItems()) { for (String s : item.format()) {