From f16ce106253ce3a857efbe4cd7b65f76c77d6364 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 1 Oct 2015 09:56:32 +1300 Subject: Fix issues in FlexTrack decoder --- src/org/traccar/protocol/FlextrackProtocolDecoder.java | 8 ++++++-- test/org/traccar/protocol/FlextrackProtocolDecoderTest.java | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/protocol/FlextrackProtocolDecoder.java b/src/org/traccar/protocol/FlextrackProtocolDecoder.java index 0622cbc3a..12ed78bee 100644 --- a/src/org/traccar/protocol/FlextrackProtocolDecoder.java +++ b/src/org/traccar/protocol/FlextrackProtocolDecoder.java @@ -61,7 +61,7 @@ public class FlextrackProtocolDecoder extends BaseProtocolDecoder { "(\\d+)," + // HDOP "(\\p{XDigit}+)," + // Cell "\\d+," + // GPS fix time - "(\\d+)," + // LAC + "(\\p{XDigit}+)," + // LAC "(\\d+)"); // Odometer private void sendAcknowledgement(Channel channel, String index) { @@ -97,7 +97,9 @@ public class FlextrackProtocolDecoder extends BaseProtocolDecoder { } } - } else if (sentence.contains("UNITSTAT")) { + } else if (sentence.contains("UNITSTAT") && hasDeviceId()) { + + String x = PatternUtil.checkPattern(pattern.pattern(), sentence); Matcher parser = pattern.matcher(sentence); if (!parser.matches()) { @@ -106,6 +108,8 @@ public class FlextrackProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); position.setProtocol(getProtocolName()); + position.setDeviceId(getDeviceId()); + int index = 1; sendAcknowledgement(channel, parser.group(index++)); diff --git a/test/org/traccar/protocol/FlextrackProtocolDecoderTest.java b/test/org/traccar/protocol/FlextrackProtocolDecoderTest.java index 435dacf9a..6b22f2906 100644 --- a/test/org/traccar/protocol/FlextrackProtocolDecoderTest.java +++ b/test/org/traccar/protocol/FlextrackProtocolDecoderTest.java @@ -18,6 +18,9 @@ public class FlextrackProtocolDecoderTest extends ProtocolDecoderTest { assertNull(decoder.decode(null, null, "-1,LOGON,1080424008,8945020110126633198")); + verify(decoder.decode(null, null, + "-2,UNITSTAT,20060101,123442,1080424008,N0.00.0000,E0.00.0000,0,0,0,4129,-61,2,23866,0,999,A214,63,2EE2,3471676")); + verify(decoder.decode(null, null, "-2,UNITSTAT,20050205,181923,7000004634,N55.46.0812,E009.21.1665,122,198,6,3934,-81,01A8,23802,213,55,37FD,45,0055,12878")); -- cgit v1.2.3