aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-07-25 04:31:13 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2017-07-25 04:31:13 +1200
commitc8e5c5e3da63646fd7c84d4f522bc8d7e5109982 (patch)
tree47e428d3cd786ca19689cfe795578ed87e82ec0d
parent027256c9524cace22f9718f3fa2d929e845de479 (diff)
downloadtrackermap-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.tar.gz
trackermap-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.tar.bz2
trackermap-server-c8e5c5e3da63646fd7c84d4f522bc8d7e5109982.zip
Implement missing XT2400 parameters
-rw-r--r--src/org/traccar/protocol/Xt2400ProtocolDecoder.java15
-rw-r--r--test/org/traccar/protocol/Xt2400ProtocolDecoderTest.java5
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(