diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-19 10:51:16 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-19 10:51:16 +1300 |
commit | c9403e503e269f36b93d97777c98352946e1da2f (patch) | |
tree | b0e0460f3b2acb7ace0206883babf616f5352fc3 | |
parent | 6ea8778be3d7426fa9281f9260081e1863fae4bd (diff) | |
download | traccar-server-c9403e503e269f36b93d97777c98352946e1da2f.tar.gz traccar-server-c9403e503e269f36b93d97777c98352946e1da2f.tar.bz2 traccar-server-c9403e503e269f36b93d97777c98352946e1da2f.zip |
Handle IMEI without delimiter (fix #1733)
-rw-r--r-- | src/org/traccar/protocol/Gps103ProtocolDecoder.java | 9 | ||||
-rw-r--r-- | test/org/traccar/protocol/Gps103ProtocolDecoderTest.java | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java index a45e20ba2..e2aed6309 100644 --- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java @@ -118,11 +118,16 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { } // Send response #2 - if (sentence.length() == 15 && Character.isDigit(sentence.charAt(0))) { + if (Character.isDigit(sentence.charAt(0))) { if (channel != null) { channel.write("ON", remoteAddress); } - return null; + int start = sentence.indexOf("imei:"); + if (start >= 0) { + sentence = sentence.substring(start); + } else { + return null; + } } Position position = new Position(); diff --git a/test/org/traccar/protocol/Gps103ProtocolDecoderTest.java b/test/org/traccar/protocol/Gps103ProtocolDecoderTest.java index ae3d2fa55..6e7f19e18 100644 --- a/test/org/traccar/protocol/Gps103ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Gps103ProtocolDecoderTest.java @@ -11,6 +11,9 @@ public class Gps103ProtocolDecoderTest extends ProtocolTest { Gps103ProtocolDecoder decoder = new Gps103ProtocolDecoder(new Gps103Protocol()); verifyNothing(decoder, text( + "359769031878322imei:359769031878322,tracker,1602160718,2,F,221811.000,A,1655.2193,S,14546.6722,E,0.00,,")); + + verifyNothing(decoder, text( "imei:865328021049167,OBD,141118115036,,,0.0,,000,0.0%,+,0.0%,00000,,,,,")); verifyAttributes(decoder, text( |