From 06eb72ad101b5a0de9a975fd6f3585238d887cef Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 27 Aug 2016 11:04:03 +1200 Subject: Fix an issue in GpsMaker protocol decoder --- src/org/traccar/protocol/GpsMarkerProtocolDecoder.java | 6 +++--- test/org/traccar/protocol/GpsMarkerProtocolDecoderTest.java | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/org/traccar/protocol/GpsMarkerProtocolDecoder.java b/src/org/traccar/protocol/GpsMarkerProtocolDecoder.java index 4f6faa6ba..89537fa3d 100644 --- a/src/org/traccar/protocol/GpsMarkerProtocolDecoder.java +++ b/src/org/traccar/protocol/GpsMarkerProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,7 +45,7 @@ public class GpsMarkerProtocolDecoder extends BaseProtocolDecoder { .number("(ddd)(dd)(dddd)") // longitude .number("(ddd)") // speed .number("(ddd)") // course - .number("(d)") // satellites + .number("(x)") // satellites .number("(dd)") // battery .number("(d)") // input .number("(d)") // output @@ -82,7 +82,7 @@ public class GpsMarkerProtocolDecoder extends BaseProtocolDecoder { position.setSpeed(parser.nextDouble()); position.setCourse(parser.nextDouble()); - position.set(Position.KEY_SATELLITES, parser.next()); + position.set(Position.KEY_SATELLITES, parser.nextInt(16)); position.set(Position.KEY_BATTERY, parser.next()); position.set(Position.KEY_INPUT, parser.next()); position.set(Position.KEY_OUTPUT, parser.next()); diff --git a/test/org/traccar/protocol/GpsMarkerProtocolDecoderTest.java b/test/org/traccar/protocol/GpsMarkerProtocolDecoderTest.java index a8888c48c..8e25598fc 100644 --- a/test/org/traccar/protocol/GpsMarkerProtocolDecoderTest.java +++ b/test/org/traccar/protocol/GpsMarkerProtocolDecoderTest.java @@ -11,6 +11,8 @@ public class GpsMarkerProtocolDecoderTest extends ProtocolTest { GpsMarkerProtocolDecoder decoder = new GpsMarkerProtocolDecoder(new GpsMarkerProtocol()); + verifyPosition(decoder, text( + "$GM23D863071014445404T260816142611N55441051E037325071033063C0530304#")); verifyNothing(decoder, text( "$GM300350123456789012T100511123300G25000001772F185200000000000000005230298#")); -- cgit v1.2.3