From 48f57acd31fc5b0ae3b9de85e72c58c7186f5475 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 13 Oct 2018 22:26:47 +1300 Subject: Make OpenGTS course optional (fix #4101) --- src/org/traccar/protocol/OpenGtsProtocolDecoder.java | 8 ++++---- test/org/traccar/protocol/OpenGtsProtocolDecoderTest.java | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/org/traccar/protocol/OpenGtsProtocolDecoder.java b/src/org/traccar/protocol/OpenGtsProtocolDecoder.java index c1967917f..c854ad491 100644 --- a/src/org/traccar/protocol/OpenGtsProtocolDecoder.java +++ b/src/org/traccar/protocol/OpenGtsProtocolDecoder.java @@ -42,7 +42,7 @@ public class OpenGtsProtocolDecoder extends BaseHttpProtocolDecoder { .number("(d+)(dd.d+),") // longitude .expression("([EW]),") .number("(d+.d+),") // speed - .number("(d+.d+),") // course + .number("(d+.d+)?,") // course .number("(dd)(dd)(dd),") // date (ddmmyy) .any() .compile(); @@ -80,15 +80,15 @@ public class OpenGtsProtocolDecoder extends BaseHttpProtocolDecoder { } DateBuilder dateBuilder = new DateBuilder() - .setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)); + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); position.setValid(parser.next().equals("A")); position.setLatitude(parser.nextCoordinate()); position.setLongitude(parser.nextCoordinate()); - position.setSpeed(parser.nextDouble(0)); + position.setSpeed(parser.nextDouble()); position.setCourse(parser.nextDouble(0)); - dateBuilder.setDateReverse(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)); + dateBuilder.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()); position.setTime(dateBuilder.getDate()); break; case "alt": diff --git a/test/org/traccar/protocol/OpenGtsProtocolDecoderTest.java b/test/org/traccar/protocol/OpenGtsProtocolDecoderTest.java index 5942f38d0..cc7d5b684 100644 --- a/test/org/traccar/protocol/OpenGtsProtocolDecoderTest.java +++ b/test/org/traccar/protocol/OpenGtsProtocolDecoderTest.java @@ -10,6 +10,9 @@ public class OpenGtsProtocolDecoderTest extends ProtocolTest { OpenGtsProtocolDecoder decoder = new OpenGtsProtocolDecoder(new OpenGtsProtocol()); + verifyPosition(decoder, request( + "/?id=999000000000003&gprmc=$GPRMC,082202.0,A,5006.747329,N,01416.512315,E,0.0,,131018,1.2,E,A*2E")); + verifyPosition(decoder, request( "/?id=gprmc_999000000000003&gprmc=$GPRMC,143013.0,A,5006.728217,N,01416.437869,E,0.0,329.6,281017,1.2,E,A*0E")); -- cgit v1.2.3