diff options
Diffstat (limited to 'src/org/traccar/BaseProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/BaseProtocolDecoder.java | 51 |
1 files changed, 35 insertions, 16 deletions
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java index 04b1a1eec..bcd441268 100644 --- a/src/org/traccar/BaseProtocolDecoder.java +++ b/src/org/traccar/BaseProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2012 - 2013 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2012 - 2015 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,33 +26,54 @@ import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.handler.codec.oneone.OneToOneDecoder; import org.traccar.database.DataManager; +import org.traccar.helper.Log; +import org.traccar.model.Device; /** * Base class for protocol decoders */ public abstract class BaseProtocolDecoder extends OneToOneDecoder { - private final DataManager dataManager; private final String protocol; - private final Properties properties; - public final DataManager getDataManager() { - return dataManager; + public String getProtocol() { + return protocol; } - public final String getProtocol() { - return protocol; + private long deviceId; + + public boolean hasDeviceId() { + return (deviceId != 0); } - - public final Properties getProperties() { - return properties; + + public long getDeviceId() { + return deviceId; } - - public BaseProtocolDecoder(DataManager dataManager, String protocol, Properties properties) { - this.dataManager = dataManager; + public boolean identify(String uniqueId, boolean logWarning) { + try { + Device device = Context.getDataManager().getDeviceByUniqueId(uniqueId); + if (device != null) { + deviceId = device.getId(); + return true; + } else { + if (logWarning) { + Log.warning("Unknown device - " + uniqueId); + } + return false; + } + } catch (Exception error) { + Log.warning(error); + return false; + } + } + + public boolean identify(String uniqueId) { + return identify(uniqueId, true); + } + + public BaseProtocolDecoder(String protocol) { this.protocol = protocol; - this.properties = properties; } @Override @@ -77,7 +98,6 @@ public abstract class BaseProtocolDecoder extends OneToOneDecoder { ChannelHandlerContext ctx, Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { return decode(ctx, channel, msg); - } @Override @@ -85,7 +105,6 @@ public abstract class BaseProtocolDecoder extends OneToOneDecoder { ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { return null; // default implementation - } } |