aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2019-11-05 22:37:55 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2019-11-05 22:37:55 -0800
commitcce68c7e6c116dc23a66dde7ca5476ad7ea575b2 (patch)
treeef5f86b800a93734973e24279f10283a5808bde7
parent771768c215d31e6b9e4a50079cabdbd96fc62d5f (diff)
downloadtraccar-server-cce68c7e6c116dc23a66dde7ca5476ad7ea575b2.tar.gz
traccar-server-cce68c7e6c116dc23a66dde7ca5476ad7ea575b2.tar.bz2
traccar-server-cce68c7e6c116dc23a66dde7ca5476ad7ea575b2.zip
Decode inputs and outputs
-rw-r--r--src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java10
-rw-r--r--src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
index 197e93602..cd0b3d363 100644
--- a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -593,6 +593,16 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
position.setValid(buf.readUnsignedByte() > 0);
}
+ if (BitUtil.check(mask, 17)) {
+ int input = buf.readUnsignedByte();
+ position.set(Position.KEY_IGNITION, BitUtil.check(input, 0));
+ position.set(Position.KEY_INPUT, input);
+ }
+
+ if (BitUtil.check(mask, 18)) {
+ position.set(Position.KEY_OUTPUT, buf.readUnsignedByte());
+ }
+
return position;
}
diff --git a/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
index f2a28558d..3c26a9566 100644
--- a/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/SuntechProtocolDecoderTest.java
@@ -62,6 +62,10 @@ public class SuntechProtocolDecoderTest extends ProtocolTest {
SuntechProtocolDecoder decoder = new SuntechProtocolDecoder(null);
+ verifyAttribute(decoder, binary(
+ "81004e05200013383fffff3401000300130b020b2a0500000000000000000000000047f9ec846a06500000000012010200000123a1002904ba00010fb40000000000000000000000000000000000005989"),
+ Position.KEY_IGNITION, false);
+
verifyPosition(decoder, binary(
"81004e05200013383fffff3401000301130a0512080400000000000000000000000047f9d5846a06810072225214010100020300a8002604c1000004b000000470000025a100000000000025c4000000a6"));