From dc53f34f5f823fcea8ec3a94c78716262e4fb42f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 31 Jan 2016 00:38:03 +1300 Subject: Add new MiniFinder message types --- src/org/traccar/protocol/MiniFinderProtocolDecoder.java | 4 ++-- test/org/traccar/protocol/MiniFinderProtocolDecoderTest.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java index eda085bc3..631a4b56b 100644 --- a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java +++ b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java @@ -33,7 +33,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { } private static final Pattern PATTERN = new PatternBuilder() - .expression("![AD],") + .expression("![A-D],") .number("(d+)/(d+)/(d+),") // date .number("(d+):(d+):(d+),") // time .number("(-?d+.d+),") // latitude @@ -62,7 +62,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { identify(sentence.substring(3, sentence.length()), channel, remoteAddress); - } else if ((sentence.startsWith("!D") || sentence.startsWith("!A")) && hasDeviceId()) { + } else if (sentence.matches("![A-D].*") && hasDeviceId()) { Parser parser = new Parser(PATTERN, sentence); if (!parser.matches()) { diff --git a/test/org/traccar/protocol/MiniFinderProtocolDecoderTest.java b/test/org/traccar/protocol/MiniFinderProtocolDecoderTest.java index 46d01ac01..2b5bbd574 100644 --- a/test/org/traccar/protocol/MiniFinderProtocolDecoderTest.java +++ b/test/org/traccar/protocol/MiniFinderProtocolDecoderTest.java @@ -19,6 +19,9 @@ public class MiniFinderProtocolDecoderTest extends ProtocolTest { verifyNothing(decoder, text( "!1,860719027585011")); + verifyPosition(decoder, text( + "!C,30/1/16,1:1:6,31.259157,30.020910,0,0,100001,25.32,100,0.03,0.01,0")); + verifyPosition(decoder, text( "!A,26/10/12,00:28:41,7.770385,-72.215706,0.0,25101,0")); -- cgit v1.2.3