From 72d35d6c63ff80353eae1559d5c5d71c94d137bb Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 29 Aug 2017 17:06:14 +0500 Subject: Move common speed converting code to BaseProtocolDecoder --- src/org/traccar/protocol/OsmAndProtocolDecoder.java | 19 +------------------ src/org/traccar/protocol/Tk103ProtocolDecoder.java | 13 +------------ src/org/traccar/protocol/XexunProtocolDecoder.java | 11 +---------- 3 files changed, 3 insertions(+), 40 deletions(-) (limited to 'src/org/traccar/protocol') diff --git a/src/org/traccar/protocol/OsmAndProtocolDecoder.java b/src/org/traccar/protocol/OsmAndProtocolDecoder.java index 222369f58..c06582a15 100644 --- a/src/org/traccar/protocol/OsmAndProtocolDecoder.java +++ b/src/org/traccar/protocol/OsmAndProtocolDecoder.java @@ -25,9 +25,7 @@ import org.jboss.netty.handler.codec.http.HttpVersion; import org.jboss.netty.handler.codec.http.QueryStringDecoder; import org.joda.time.format.ISODateTimeFormat; import org.traccar.BaseProtocolDecoder; -import org.traccar.Context; import org.traccar.DeviceSession; -import org.traccar.helper.UnitsConverter; import org.traccar.model.Position; import java.net.SocketAddress; @@ -40,11 +38,8 @@ import java.util.Map; public class OsmAndProtocolDecoder extends BaseProtocolDecoder { - private String speedUnits; - public OsmAndProtocolDecoder(OsmAndProtocol protocol) { super(protocol); - speedUnits = Context.getConfig().getString("osmand.speedUnits", "kn"); } private void sendResponse(Channel channel, HttpResponseStatus status) { @@ -115,19 +110,7 @@ public class OsmAndProtocolDecoder extends BaseProtocolDecoder { position.setLongitude(Double.parseDouble(location[1])); break; case "speed": - switch (speedUnits) { - case "kph": - position.setSpeed(UnitsConverter.knotsFromKph(Double.parseDouble(value))); - break; - case "mps": - position.setSpeed(UnitsConverter.knotsFromMps(Double.parseDouble(value))); - break; - case "mph": - position.setSpeed(UnitsConverter.knotsFromMph(Double.parseDouble(value))); - break; - default: - position.setSpeed(Double.parseDouble(value)); - } + position.setSpeed(convertSpeed(Double.parseDouble(value), "kn")); break; case "bearing": case "heading": diff --git a/src/org/traccar/protocol/Tk103ProtocolDecoder.java b/src/org/traccar/protocol/Tk103ProtocolDecoder.java index aa75f5675..be3def453 100644 --- a/src/org/traccar/protocol/Tk103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Tk103ProtocolDecoder.java @@ -23,7 +23,6 @@ import org.traccar.helper.BitUtil; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; -import org.traccar.helper.UnitsConverter; import org.traccar.model.CellTower; import org.traccar.model.Network; import org.traccar.model.Position; @@ -253,17 +252,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder { position.setLatitude(parser.nextCoordinate()); position.setLongitude(parser.nextCoordinate()); - switch (Context.getConfig().getString(getProtocolName() + ".speed", "kmh")) { - case "kn": - position.setSpeed(parser.nextDouble(0)); - break; - case "mph": - position.setSpeed(UnitsConverter.knotsFromMph(parser.nextDouble(0))); - break; - default: - position.setSpeed(UnitsConverter.knotsFromKph(parser.nextDouble(0))); - break; - } + position.setSpeed(convertSpeed(parser.nextDouble(0), "kmh")); dateBuilder.setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0)); position.setTime(dateBuilder.getDate()); diff --git a/src/org/traccar/protocol/XexunProtocolDecoder.java b/src/org/traccar/protocol/XexunProtocolDecoder.java index 20804bbb4..a5a38c370 100644 --- a/src/org/traccar/protocol/XexunProtocolDecoder.java +++ b/src/org/traccar/protocol/XexunProtocolDecoder.java @@ -17,13 +17,11 @@ package org.traccar.protocol; import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; -import org.traccar.Context; import org.traccar.DeviceSession; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; import org.traccar.model.Position; -import org.traccar.helper.UnitsConverter; import java.net.SocketAddress; import java.util.regex.Pattern; @@ -121,14 +119,7 @@ public class XexunProtocolDecoder extends BaseProtocolDecoder { position.setLatitude(parser.nextCoordinate()); position.setLongitude(parser.nextCoordinate()); - switch (Context.getConfig().getString(getProtocolName() + ".speed", "kn")) { - case "kmh": - position.setSpeed(UnitsConverter.knotsFromKph(parser.nextDouble(0))); - break; - default: - position.setSpeed(parser.nextDouble(0)); - break; - } + position.setSpeed(convertSpeed(parser.nextDouble(0), "kn")); position.setCourse(parser.nextDouble(0)); -- cgit v1.2.3