aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-02-15 11:11:01 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2020-02-15 11:11:01 -0800
commit8bf4c171e1771eb89506a87ba8435776ee61286e (patch)
tree330e58559ea6048ba5510cc3bf82a4424a88ad02
parentc860f15e6a541c72d901d928941912edb943883e (diff)
downloadtraccar-server-8bf4c171e1771eb89506a87ba8435776ee61286e.tar.gz
traccar-server-8bf4c171e1771eb89506a87ba8435776ee61286e.tar.bz2
traccar-server-8bf4c171e1771eb89506a87ba8435776ee61286e.zip
Fix ADC decoding
-rw-r--r--src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java2
-rw-r--r--src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
index 7e520ab3a..978d768be 100644
--- a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -397,7 +397,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
if (isIncludeAdc(deviceSession.getDeviceId())) {
for (int i = 1; i <= 3; i++) {
- if (!values[index++].isEmpty()) {
+ if (index < values.length && !values[index++].isEmpty()) {
position.set(Position.PREFIX_ADC + i, Double.parseDouble(values[index - 1]));
}
}
diff --git a/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
index 82f0a29e1..692a13131 100644
--- a/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
@@ -13,6 +13,11 @@ public class SuntechProtocolDecoderTest extends ProtocolTest {
decoder.setHbm(true);
decoder.setIncludeAdc(true);
+
+ verifyAttribute(decoder, buffer(
+ "ST600STT;008594432;20;492;20200212;18:58:30;060bb0e1;334;20;36bb;45;+19.337897;-099.064489;000.398;000.00;12;1;5049883;13.61;100100;2;1198;013762;4.2;1;4.68"),
+ Position.PREFIX_ADC + 1, 4.68);
+
decoder.setIncludeTemp(true);
verifyAttribute(decoder, buffer(