From 1498b5c5a00c575ba67dce2dcfac0d77a8b4964a Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 16 Apr 2017 14:53:05 +1200 Subject: Fix H02 status code decoding --- src/org/traccar/protocol/H02ProtocolDecoder.java | 4 +++- test/org/traccar/ProtocolTest.java | 4 ++++ .../traccar/protocol/H02ProtocolDecoderTest.java | 27 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index b78f21d8d..465bf8395 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -184,7 +184,9 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { .number("(d+),") .number("(d+)#") .or() - .any() + .expression(",.*") + .or() + .text("#") .groupEnd() .compile(); diff --git a/test/org/traccar/ProtocolTest.java b/test/org/traccar/ProtocolTest.java index faf27071d..502fa6284 100644 --- a/test/org/traccar/ProtocolTest.java +++ b/test/org/traccar/ProtocolTest.java @@ -86,6 +86,10 @@ public class ProtocolTest extends BaseTest { Assert.assertNull(decoder.decode(null, null, object)); } + protected void verifyAttribute(BaseProtocolDecoder decoder, Object object, String key, Object expected) throws Exception { + Assert.assertEquals(expected, ((Position) decoder.decode(null, null, object)).getAttributes().get(key)); + } + protected void verifyAttributes(BaseProtocolDecoder decoder, Object object) throws Exception { verifyDecodedPosition(decoder.decode(null, null, object), false, true, null); } diff --git a/test/org/traccar/protocol/H02ProtocolDecoderTest.java b/test/org/traccar/protocol/H02ProtocolDecoderTest.java index 7498bbcd7..f39c3a689 100644 --- a/test/org/traccar/protocol/H02ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/H02ProtocolDecoderTest.java @@ -2,6 +2,7 @@ package org.traccar.protocol; import org.junit.Test; import org.traccar.ProtocolTest; +import org.traccar.model.Position; public class H02ProtocolDecoderTest extends ProtocolTest { @@ -10,6 +11,9 @@ public class H02ProtocolDecoderTest extends ProtocolTest { H02ProtocolDecoder decoder = new H02ProtocolDecoder(new H02Protocol()); + verifyPosition(decoder, buffer( + "*HQ,4109179024,V19,181519,V,3853.2587,S,06205.9175,W,000.00,000,090217,,5492932630888,8954315265044716555?,FFFFFBFF#")); + verifyPosition(decoder, buffer( "*HQ,8161289587,V1,181933,A,5444.3994,N,02516.3844,E,000.05,000,090317,FFFFBBFF,246,03,00002,41565#")); @@ -184,4 +188,27 @@ public class H02ProtocolDecoderTest extends ProtocolTest { } + @Test + public void testDecodeStatus() throws Exception { + + H02ProtocolDecoder decoder = new H02ProtocolDecoder(new H02Protocol()); + + verifyAttribute(decoder, buffer( + "*HQ,2705171109,V1,213324,A,5002.5849,N,01433.7822,E,0.00,000,140613,FFFFFFFF#"), + Position.KEY_STATUS, 0xFFFFFFFFL); + + verifyAttribute(decoder, buffer( + "*HQ,4109179024,V19,181519,V,3853.2587,S,06205.9175,W,000.00,000,090217,,5492932630888,8954315265044716555?,FFFFFBFF#"), + Position.KEY_STATUS, 0xFFFFFBFFL); + + verifyAttribute(decoder, binary( + "2441091144271222470112142233983006114026520E000000FFFFFBFFFF0014060000000001CC00262B0F170A"), + Position.KEY_STATUS, 0xFFFFFBFFL); + + verifyAttribute(decoder, buffer( + "*HQ,4210051415,V1,164549,A,0956.3869,N,08406.7068,W,000.00,000,221215,FFFFFBFF,712,01,0,0,6#"), + Position.KEY_STATUS, 0xFFFFFBFFL); + + } + } -- cgit v1.2.3