diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-07-19 22:25:12 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-19 22:25:12 +1200 |
commit | 4ebf7c5a6df152af9c23eb9caab2885ff79e448c (patch) | |
tree | 3dfcd0b379e71f1fc85b626179a72e14489aeb47 /src/org/traccar/protocol/Mta6ProtocolDecoder.java | |
parent | 934371a0af815e18b3d29f350e96be60606de77b (diff) | |
parent | 1a0eae22fc58d7241e2c60bb593535a17d6c629b (diff) | |
download | trackermap-server-4ebf7c5a6df152af9c23eb9caab2885ff79e448c.tar.gz trackermap-server-4ebf7c5a6df152af9c23eb9caab2885ff79e448c.tar.bz2 trackermap-server-4ebf7c5a6df152af9c23eb9caab2885ff79e448c.zip |
Merge pull request #2127 from tananaev/refactor
Move device id to a session
Diffstat (limited to 'src/org/traccar/protocol/Mta6ProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/Mta6ProtocolDecoder.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/org/traccar/protocol/Mta6ProtocolDecoder.java b/src/org/traccar/protocol/Mta6ProtocolDecoder.java index 791a1acab..609f0b63e 100644 --- a/src/org/traccar/protocol/Mta6ProtocolDecoder.java +++ b/src/org/traccar/protocol/Mta6ProtocolDecoder.java @@ -24,6 +24,7 @@ import org.jboss.netty.handler.codec.http.HttpResponse; import org.jboss.netty.handler.codec.http.HttpResponseStatus; import org.jboss.netty.handler.codec.http.HttpVersion; import org.traccar.BaseProtocolDecoder; +import org.traccar.DeviceSession; import org.traccar.Protocol; import org.traccar.helper.BitUtil; import org.traccar.helper.DateBuilder; @@ -110,7 +111,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { } - private List<Position> parseFormatA(ChannelBuffer buf) { + private List<Position> parseFormatA(DeviceSession deviceSession, ChannelBuffer buf) { List<Position> positions = new LinkedList<>(); FloatReader latitudeReader = new FloatReader(); @@ -120,8 +121,8 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { try { while (buf.readable()) { Position position = new Position(); - position.setDeviceId(getDeviceId()); position.setProtocol(getProtocolName()); + position.setDeviceId(deviceSession.getDeviceId()); short flags = buf.readUnsignedByte(); @@ -197,9 +198,9 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { return positions; } - private Position parseFormatA1(ChannelBuffer buf) { + private Position parseFormatA1(DeviceSession deviceSession, ChannelBuffer buf) { Position position = new Position(); - position.setDeviceId(getDeviceId()); + position.setDeviceId(deviceSession.getDeviceId()); position.setProtocol(getProtocolName()); short flags = buf.readUnsignedByte(); @@ -283,7 +284,8 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { buf.skipBytes("id=".length()); int index = buf.indexOf(buf.readerIndex(), buf.writerIndex(), (byte) '&'); String uniqueId = buf.toString(buf.readerIndex(), index - buf.readerIndex(), StandardCharsets.US_ASCII); - if (!identify(uniqueId, channel, remoteAddress)) { + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, uniqueId); + if (deviceSession == null) { return null; } buf.skipBytes(uniqueId.length()); @@ -303,9 +305,9 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { if (packetId == 0x31 || packetId == 0x32 || packetId == 0x36) { if (simple) { - return parseFormatA1(buf); + return parseFormatA1(deviceSession, buf); } else { - return parseFormatA(buf); + return parseFormatA(deviceSession, buf); } } //else if (0x34 0x38 0x4F 0x59) |