aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/protocol/gl200
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2012-03-22 04:54:46 +0000
committerAnton Tananaev <anton.tananaev@gmail.com>2012-03-22 04:54:46 +0000
commitd0de5245574e223384d9e89421850af16fb7a848 (patch)
tree8203e522ecfc6540284ef3c29c9af1c42be5e84a /src/org/traccar/protocol/gl200
parent2298302ea7f3b4f09b52638355c2b86a952a8306 (diff)
downloadtrackermap-server-d0de5245574e223384d9e89421850af16fb7a848.tar.gz
trackermap-server-d0de5245574e223384d9e89421850af16fb7a848.tar.bz2
trackermap-server-d0de5245574e223384d9e89421850af16fb7a848.zip
Diffstat (limited to 'src/org/traccar/protocol/gl200')
-rw-r--r--src/org/traccar/protocol/gl200/Gl200ProtocolDecoder.java57
1 files changed, 5 insertions, 52 deletions
diff --git a/src/org/traccar/protocol/gl200/Gl200ProtocolDecoder.java b/src/org/traccar/protocol/gl200/Gl200ProtocolDecoder.java
index 984eb91d8..4c1149347 100644
--- a/src/org/traccar/protocol/gl200/Gl200ProtocolDecoder.java
+++ b/src/org/traccar/protocol/gl200/Gl200ProtocolDecoder.java
@@ -18,40 +18,24 @@ package org.traccar.protocol.gl200;
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 Gl200ProtocolDecoder extends OneToOneDecoder {
+public class Gl200ProtocolDecoder extends GenericProtocolDecoder {
/**
- * Data manager
- */
- private DataManager dataManager;
-
- /**
- * Reset connection delay
- */
- private Integer resetDelay;
-
- /**
- * Init device table
+ * Initialize
*/
public Gl200ProtocolDecoder(DataManager dataManager, Integer resetDelay) {
- this.dataManager = dataManager;
- this.resetDelay = resetDelay;
+ super(dataManager, resetDelay);
}
/**
@@ -98,7 +82,7 @@ public class Gl200ProtocolDecoder 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);
@@ -126,35 +110,4 @@ public class Gl200ProtocolDecoder 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);
- }
- }
- }
-
}