diff options
-rw-r--r-- | src/org/traccar/protocol/TeltonikaProtocolDecoder.java | 15 | ||||
-rw-r--r-- | test/org/traccar/protocol/TeltonikaProtocolDecoderTest.java | 3 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java index 411915400..fc7a8fd3a 100644 --- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java +++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java @@ -73,15 +73,30 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { private void decodeParameter(Position position, int id, ChannelBuffer buf, int length) { switch (id) { + case 1: + case 2: + case 3: + case 4: + position.set("di" + id, buf.readUnsignedByte()); + break; case 9: position.set(Position.PREFIX_ADC + 1, buf.readUnsignedShort()); break; + case 21: + position.set(Position.KEY_RSSI, buf.readUnsignedByte()); + break; + case 22: + position.set("profile", buf.readUnsignedByte()); + break; case 66: position.set(Position.KEY_POWER, buf.readUnsignedShort() + "mV"); break; case 67: position.set(Position.KEY_BATTERY, buf.readUnsignedShort() + "mV"); break; + case 70: + position.set("pcbTemp", buf.readInt() * 0.1); + break; case 72: position.set(Position.PREFIX_TEMP + 1, buf.readInt() * 0.1); break; diff --git a/test/org/traccar/protocol/TeltonikaProtocolDecoderTest.java b/test/org/traccar/protocol/TeltonikaProtocolDecoderTest.java index 22c9c4b4b..289a4f28d 100644 --- a/test/org/traccar/protocol/TeltonikaProtocolDecoderTest.java +++ b/test/org/traccar/protocol/TeltonikaProtocolDecoderTest.java @@ -14,6 +14,9 @@ public class TeltonikaProtocolDecoderTest extends ProtocolTest { "000F313233343536373839303132333435")); verifyPositions(decoder, false, binary( + "0000000000000000080100000113fc208dff00209cca800f14f650006f00d60400040004030101150316030001460000015d000100000000")); // invalid length and checksum + + verifyPositions(decoder, false, binary( "000000000000009f080400000159738f76b8012e13b796110ab27600d700000b00004e01000000014e000000000000000000000159738f6ee8012e13b796110ab27600d700000a00004e01000000014e01000b00791c179300000159738f6b00012e13b796110ab27600d700000a00004e01000000014e000000000000000000000159738f5f48012e13b796110ab27600d700000b00004e01000000014e01000b00791c17930400009671")); verifyPositions(decoder, false, binary( |