aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2018-08-03 04:28:13 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2018-08-03 04:28:13 +1200
commita4ad1371690e6d0840e717ec8e65a88fc3b60033 (patch)
tree378b02db40f4a8a14a1f5dbcf80dd4fecac6ea56
parente8357f9fbde73e5d10f512ded4a5ded935a6efc0 (diff)
downloadtraccar-server-a4ad1371690e6d0840e717ec8e65a88fc3b60033.tar.gz
traccar-server-a4ad1371690e6d0840e717ec8e65a88fc3b60033.tar.bz2
traccar-server-a4ad1371690e6d0840e717ec8e65a88fc3b60033.zip
Handle alternative GT06 message format
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolDecoder.java4
-rw-r--r--test/org/traccar/protocol/Gt06ProtocolDecoderTest.java3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
index dfb0b5e07..e405bc195 100644
--- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
@@ -251,8 +251,8 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
position.setNetwork(new Network(CellTower.from(
BitUtil.to(mcc, 15), mnc, buf.readUnsignedShort(), buf.readUnsignedMedium())));
- if (length > 0) {
- buf.skipBytes(length - (hasLength ? 9 : 8));
+ if (length > 9) {
+ buf.skipBytes(length - 9);
}
return true;
diff --git a/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java b/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java
index 8ec422af3..8c884f366 100644
--- a/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Gt06ProtocolDecoderTest.java
@@ -16,6 +16,9 @@ public class Gt06ProtocolDecoderTest extends ProtocolTest {
verifyNull(decoder, binary(
"78780D01086471700328358100093F040D0A"));
+ verifyNotNull(decoder, binary(
+ "78781219028f0a29e10036f12003040102000875dc0d0a"));
+
verifyAttributes(decoder, binary(
"79790008940000ed0289d6860d0a"));