diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2012-03-22 04:54:46 +0000 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2012-03-22 04:54:46 +0000 |
commit | d0de5245574e223384d9e89421850af16fb7a848 (patch) | |
tree | 8203e522ecfc6540284ef3c29c9af1c42be5e84a /src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java | |
parent | 2298302ea7f3b4f09b52638355c2b86a952a8306 (diff) | |
download | trackermap-server-d0de5245574e223384d9e89421850af16fb7a848.tar.gz trackermap-server-d0de5245574e223384d9e89421850af16fb7a848.tar.bz2 trackermap-server-d0de5245574e223384d9e89421850af16fb7a848.zip |
Diffstat (limited to 'src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java | 57 |
1 files changed, 5 insertions, 52 deletions
diff --git a/src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java b/src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java index f762753b4..e4c0de38a 100644 --- a/src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java +++ b/src/org/traccar/protocol/gl100/Gl100ProtocolDecoder.java @@ -18,40 +18,24 @@ package org.traccar.protocol.gl100; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.TimeZone; -import java.util.Timer; -import java.util.TimerTask; import java.util.regex.Pattern; import java.util.regex.Matcher; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelHandlerContext; -import org.jboss.netty.handler.codec.oneone.OneToOneDecoder; import org.traccar.Position; import org.traccar.DataManager; -import org.jboss.netty.channel.ChannelEvent; -import org.jboss.netty.channel.ChannelState; -import org.jboss.netty.channel.ChannelStateEvent; +import org.traccar.GenericProtocolDecoder; /** * GL200 tracker protocol decoder */ -public class Gl100ProtocolDecoder extends OneToOneDecoder { +public class Gl100ProtocolDecoder extends GenericProtocolDecoder { /** - * Data manager - */ - private DataManager dataManager; - - /** - * Reset connection delay - */ - private Integer resetDelay; - - /** - * Init device table + * Initialize */ public Gl100ProtocolDecoder(DataManager dataManager, Integer resetDelay) { - this.dataManager = dataManager; - this.resetDelay = resetDelay; + super(dataManager, resetDelay); } /** @@ -105,7 +89,7 @@ public class Gl100ProtocolDecoder extends OneToOneDecoder { // Get device by IMEI String imei = parser.group(index++); - position.setDeviceId(dataManager.getDeviceByImei(imei).getId()); + position.setDeviceId(getDataManager().getDeviceByImei(imei).getId()); // Validity position.setValid(Integer.valueOf(parser.group(index++)) == 0 ? false : true); @@ -133,35 +117,4 @@ public class Gl100ProtocolDecoder extends OneToOneDecoder { return position; } - /** - * Disconnect channel - */ - class DisconnectTask extends TimerTask { - private Channel channel; - - public DisconnectTask(Channel channel) { - this.channel = channel; - } - - public void run() { - channel.disconnect(); - } - } - - /** - * Handle connect event - */ - @Override - public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent evt) throws Exception { - super.handleUpstream(ctx, evt); - - if (evt instanceof ChannelStateEvent) { - ChannelStateEvent event = (ChannelStateEvent) evt; - - if (event.getState() == ChannelState.CONNECTED && event.getValue() != null && resetDelay != 0) { - new Timer().schedule(new DisconnectTask(evt.getChannel()), resetDelay); - } - } - } - } |