From a418adedfc17642dda161dc373b8fc57ab1dbbdf Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 31 Aug 2016 06:27:07 +1200 Subject: Handle Bofan photo response --- src/org/traccar/protocol/Pt502ProtocolDecoder.java | 17 +++++++++-------- test/org/traccar/protocol/Pt502ProtocolDecoderTest.java | 5 ++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/org/traccar/protocol/Pt502ProtocolDecoder.java b/src/org/traccar/protocol/Pt502ProtocolDecoder.java index 3edada78a..7dc4fbe5e 100644 --- a/src/org/traccar/protocol/Pt502ProtocolDecoder.java +++ b/src/org/traccar/protocol/Pt502ProtocolDecoder.java @@ -81,13 +81,6 @@ public class Pt502ProtocolDecoder extends BaseProtocolDecoder { String sentence = (String) msg; - if (sentence.startsWith("$PHO")) { - if (channel != null) { - channel.write("#PHD0," + sentence.substring(4)); - } - return null; - } - Parser parser = new Parser(PATTERN, sentence); if (!parser.matches()) { return null; @@ -96,7 +89,15 @@ public class Pt502ProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); position.setProtocol(getProtocolName()); - position.set(Position.KEY_ALARM, decodeAlarm(parser.next())); + String type = parser.next(); + + if (type.startsWith("PHO")) { + if (channel != null) { + channel.write("#PHD0," + type.substring(3) + "\r\n"); + } + } + + position.set(Position.KEY_ALARM, decodeAlarm(type)); DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next()); if (deviceSession == null) { diff --git a/test/org/traccar/protocol/Pt502ProtocolDecoderTest.java b/test/org/traccar/protocol/Pt502ProtocolDecoderTest.java index 333181625..3ea83ef60 100644 --- a/test/org/traccar/protocol/Pt502ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Pt502ProtocolDecoderTest.java @@ -10,6 +10,9 @@ public class Pt502ProtocolDecoderTest extends ProtocolTest { Pt502ProtocolDecoder decoder = new Pt502ProtocolDecoder(new Pt502Protocol()); + verifyPosition(decoder, text( + "$PHO6608,115099,133140.000,A,1307.1238,N,05936.4194,W,0.00,21.50,290816,,,A/00010,00000/0,0,0,0/185100//f59/")); + verifyPosition(decoder, text( "$DFR,40456789,083125.000,A,2232.0971,N,11400.9504,E,0.0,5.00,090714,,,A/00000,00/0,0/200076//FE7/")); @@ -35,7 +38,7 @@ public class Pt502ProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, text( "$POS,6095,233344.000,V,0933.0451,N,06912.3360,W,,,151112,,,N/00000,00000/0/1677600/")); - verifyNothing(decoder, text( + verifyPosition(decoder, text( "$PHO0,6091,233606.000,A,0902.9855,N,06944.3654,W,0.0,43.8,141112,,,A/00010,00000/0/224000//")); verifyPosition(decoder, text( -- cgit v1.2.3