diff options
author | Gabor Somogyi <Gabor_Somogyi@epam.com> | 2016-05-04 14:36:18 +0200 |
---|---|---|
committer | Gabor Somogyi <Gabor_Somogyi@epam.com> | 2016-05-04 14:39:03 +0200 |
commit | 516ef6a30eb59e1b9c3aa297e3595c5acf665530 (patch) | |
tree | 2bed5e621be4786816bbf3d6adabe41d2d43fbdb /src/org/traccar/protocol/Gt06ProtocolDecoder.java | |
parent | 5bf82eff1ecac7b23661cea14be26aa7a3e4d09a (diff) | |
parent | 59f466092c9c875c2bbcb70a2a402aad0edd7639 (diff) | |
download | trackermap-server-516ef6a30eb59e1b9c3aa297e3595c5acf665530.tar.gz trackermap-server-516ef6a30eb59e1b9c3aa297e3595c5acf665530.tar.bz2 trackermap-server-516ef6a30eb59e1b9c3aa297e3595c5acf665530.zip |
Merge branch 'master' into command_framework
Diffstat (limited to 'src/org/traccar/protocol/Gt06ProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/Gt06ProtocolDecoder.java | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java index e83ced668..18524fcfa 100644 --- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -15,9 +15,6 @@ */ package org.traccar.protocol; -import java.net.SocketAddress; -import java.util.TimeZone; - import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.Channel; @@ -30,6 +27,10 @@ import org.traccar.helper.UnitsConverter; import org.traccar.model.Event; import org.traccar.model.Position; +import java.net.SocketAddress; +import java.nio.charset.StandardCharsets; +import java.util.TimeZone; + public class Gt06ProtocolDecoder extends BaseProtocolDecoder { private boolean forceTimeZone = false; @@ -203,7 +204,27 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { } else if (hasDeviceId()) { - if (isSupported(type)) { + if (type == MSG_STRING) { + + Position position = new Position(); + position.setDeviceId(getDeviceId()); + position.setProtocol(getProtocolName()); + + getLastLocation(position, null); + + int commandLength = buf.readUnsignedByte(); + + buf.readUnsignedByte(); // server flag (reserved) + + position.set("command", buf.readBytes(commandLength - 1).toString(StandardCharsets.US_ASCII)); + + buf.readUnsignedShort(); // language + + sendResponse(channel, type, buf.readUnsignedShort()); + + return position; + + } else if (isSupported(type)) { Position position = new Position(); position.setDeviceId(getDeviceId()); |