diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2017-07-25 04:31:13 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2017-07-25 04:31:13 +1200 |
commit | c8e5c5e3da63646fd7c84d4f522bc8d7e5109982 (patch) | |
tree | 47e428d3cd786ca19689cfe795578ed87e82ec0d | |
parent | 027256c9524cace22f9718f3fa2d929e845de479 (diff) | |
download | traccar-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.tar.gz traccar-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.tar.bz2 traccar-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.zip |
Implement missing XT2400 parameters
-rw-r--r-- | src/org/traccar/protocol/Xt2400ProtocolDecoder.java | 15 | ||||
-rw-r--r-- | test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java | 5 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/org/traccar/protocol/Xt2400ProtocolDecoder.java b/src/org/traccar/protocol/Xt2400ProtocolDecoder.java index a42c6175f..15e8558be 100644 --- a/src/org/traccar/protocol/Xt2400ProtocolDecoder.java +++ b/src/org/traccar/protocol/Xt2400ProtocolDecoder.java @@ -25,6 +25,7 @@ import org.traccar.model.Position; import javax.xml.bind.DatatypeConverter; import java.net.SocketAddress; +import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -77,8 +78,6 @@ public class Xt2400ProtocolDecoder extends BaseProtocolDecoder { for (int i : l4) { TAG_LENGTH_MAP.put(i, 4); } - TAG_LENGTH_MAP.put(0x65, 17); - TAG_LENGTH_MAP.put(0x73, 16); TAG_LENGTH_MAP.put(0x95, 24); } @@ -163,12 +162,24 @@ public class Xt2400ProtocolDecoder extends BaseProtocolDecoder { case 0x13: position.set(Position.KEY_SATELLITES, buf.readUnsignedByte()); break; + case 0x14: + position.set(Position.KEY_RSSI, buf.readShort()); + break; case 0x16: position.set(Position.KEY_BATTERY, buf.readUnsignedByte() * 0.1); break; case 0x17: position.set(Position.KEY_POWER, buf.readUnsignedByte() * 0.1); break; + case 0x57: + position.set(Position.KEY_OBD_SPEED, UnitsConverter.knotsFromKph(buf.readUnsignedShort())); + break; + case 0x65: + position.set(Position.KEY_VIN, buf.readBytes(17).toString(StandardCharsets.US_ASCII)); + break; + case 0x73: + position.set(Position.KEY_VERSION_FW, buf.readBytes(16).toString(StandardCharsets.US_ASCII).trim()); + break; default: buf.skipBytes(getTagLength(tag)); break; diff --git a/test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java b/test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java index 3cc0c22ec..35ca282b2 100644 --- a/test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java @@ -10,6 +10,11 @@ public class Xt2400ProtocolDecoderTest extends ProtocolTest { Xt2400ProtocolDecoder decoder = new Xt2400ProtocolDecoder(new Xt2400Protocol()); + decoder.setConfig("\n:wycfg pcr[0] 001001030406070809570a13121714100565\n"); + + verifyPosition(decoder, binary( + "000a344f1f0259766ae002074289f8f1c4b200e80000026712068000130000029300883559464255524845364650323433343235")); + decoder.setConfig("\n:wycfg pcr[0] 000f01030406070809570a131217141005\n"); verifyPosition(decoder, binary( |