aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/traccar/protocol/WialonProtocolDecoder.java18
-rw-r--r--src/test/java/org/traccar/protocol/WialonProtocolDecoderTest.java6
2 files changed, 4 insertions, 20 deletions
diff --git a/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java b/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
index b319a5947..ffa4472ef 100644
--- a/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
@@ -135,27 +135,13 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder {
for (String param : values) {
Matcher paramParser = Pattern.compile("(.*):[1-3]:(.*)").matcher(param);
if (paramParser.matches()) {
- // Parsing gives a (string,string) key-value pair
String key = paramParser.group(1).toLowerCase();
String value = paramParser.group(2);
-
- // Key is already in correct type (string)
-
- // If we can parse the value as a double, then we use that as the value's type.
- // This covers both integer (x:1:y) and double (x:2:y) types in the Wialon protocol
-
- // If not, value type is a string unless it is equal to some specific cases
- // (true, false), in which case we convert into a boolean
-
try {
- double doubleValue = Double.parseDouble(value);
-
- // Since accuracy is not part of the general parameter list,
- // we need to handle it separately by calling setAccuracy directly
if (key.equals("accuracy")) {
- position.setAccuracy(doubleValue);
+ position.setAccuracy(Double.parseDouble(value));
} else {
- position.set(key, doubleValue);
+ position.set(key, Double.parseDouble(value));
}
} catch (NumberFormatException e) {
if (value.equalsIgnoreCase("true")) {
diff --git a/src/test/java/org/traccar/protocol/WialonProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/WialonProtocolDecoderTest.java
index 0a47edcb4..29a86e0ac 100644
--- a/src/test/java/org/traccar/protocol/WialonProtocolDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/WialonProtocolDecoderTest.java
@@ -1,11 +1,8 @@
package org.traccar.protocol;
-import org.traccar.model.Position;
import org.junit.Test;
import org.traccar.ProtocolTest;
-import static org.junit.Assert.assertEquals;
-
public class WialonProtocolDecoderTest extends ProtocolTest {
@Test
@@ -79,7 +76,8 @@ public class WialonProtocolDecoderTest extends ProtocolTest {
"#B#110315;045857;5364.0167;N;06127.8262;E;0;155;965;7;2.40;4;0;14.77,0.02,3.6;AB45DF01145;"));
verifyAttribute(decoder, text(
- "#D#120319;112003;NA;NA;NA;NA;0.000;NA;NA;0;NA;NA;NA;NA;NA;motion:3:false"), "motion", false);
+ "#D#120319;112003;NA;NA;NA;NA;0.000;NA;NA;0;NA;NA;NA;NA;NA;motion:3:false"),
+ "motion", false);
}
}