diff options
Diffstat (limited to 'src/org')
72 files changed, 557 insertions, 234 deletions
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java index e23367278..3976ba9e8 100644 --- a/src/org/traccar/BaseProtocolDecoder.java +++ b/src/org/traccar/BaseProtocolDecoder.java @@ -31,6 +31,7 @@ public abstract class BaseProtocolDecoder extends OneToOneDecoder { private ServerManager serverManager; private DataManager dataManager; + private final String protocol; public final void setDataManager(DataManager dataManager) { this.dataManager = dataManager; @@ -48,14 +49,38 @@ public abstract class BaseProtocolDecoder extends OneToOneDecoder { return serverManager; } + public final String getProtocol() { + return protocol; + } + public BaseProtocolDecoder() { + protocol = null; } public BaseProtocolDecoder(ServerManager serverManager) { + // Only used by test classes now + assert (serverManager == null) : + "BaseProtocolDecoder() initialized with non-NULL serverManager"; + if (serverManager != null) { this.serverManager = serverManager; dataManager = serverManager.getDataManager(); } + + protocol = null; + } + + public BaseProtocolDecoder(ServerManager serverManager, String protocol) { + assert (serverManager != null) : + "BaseProtocolDecoder() initialized with NULL serverManager"; + + assert (protocol != null) : + "BaseProtocolDecoder() initialized with NULL protocol"; + + this.serverManager = serverManager; + this.protocol = protocol; + + dataManager = serverManager.getDataManager(); } @Override diff --git a/src/org/traccar/ServerManager.java b/src/org/traccar/ServerManager.java index 33d364cc4..9edb1cf5e 100644 --- a/src/org/traccar/ServerManager.java +++ b/src/org/traccar/ServerManager.java @@ -228,20 +228,20 @@ public class ServerManager { return false; } - private void initXexunServer(String protocol) throws SQLException { + private void initXexunServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new XexunFrameDecoder()); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new XexunProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new XexunProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGps103Server(String protocol) throws SQLException { + private void initGps103Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -255,7 +255,7 @@ public class ServerManager { ChannelBuffers.wrappedBuffer(delimiter3))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Gps103ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gps103ProtocolDecoder(ServerManager.this, protocol)); } }); serverList.add(new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @@ -263,13 +263,13 @@ public class ServerManager { protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Gps103ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gps103ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTk103Server(String protocol) throws SQLException { + private void initTk103Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -279,7 +279,7 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Tk103ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Tk103ProtocolDecoder(ServerManager.this, protocol)); } }); serverList.add(new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @@ -287,13 +287,13 @@ public class ServerManager { protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Tk103ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Tk103ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGl100Server(String protocol) throws SQLException { + private void initGl100Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -303,13 +303,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Gl100ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gl100ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGl200Server(String protocol) throws SQLException { + private void initGl200Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -322,13 +322,13 @@ public class ServerManager { ChannelBuffers.wrappedBuffer(delimiter2))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Gl200ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gl200ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initT55Server(String protocol) throws SQLException { + private void initT55Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -338,13 +338,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new T55ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new T55ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initXexun2Server(String protocol) throws SQLException { + private void initXexun2Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -353,50 +353,50 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new Xexun2ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Xexun2ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTotemServer(String protocol) throws SQLException { + private void initTotemServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new TotemFrameDecoder()); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new TotemProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new TotemProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initEnforaServer(String protocol) throws SQLException { + private void initEnforaServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 0, 2, -2, 2)); - pipeline.addLast("objectDecoder", new EnforaProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new EnforaProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initMeiligaoServer(String protocol) throws SQLException { + private void initMeiligaoServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new MeiligaoFrameDecoder()); - pipeline.addLast("objectDecoder", new MeiligaoProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new MeiligaoProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initMaxonServer(String protocol) throws SQLException { + private void initMaxonServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -406,13 +406,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new MaxonProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new MaxonProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initSuntechServer(String protocol) throws SQLException { + private void initSuntechServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -421,19 +421,19 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new SuntechProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new SuntechProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initProgressServer(String protocol) throws SQLException { + private void initProgressServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 2, 2, 4, 0)); - pipeline.addLast("objectDecoder", new ProgressProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new ProgressProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -441,31 +441,31 @@ public class ServerManager { } } - private void initH02Server(String protocol) throws SQLException { + private void initH02Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new H02FrameDecoder()); - pipeline.addLast("objectDecoder", new H02ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new H02ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initJt600Server(String protocol) throws SQLException { + private void initJt600Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new Jt600FrameDecoder()); - pipeline.addLast("objectDecoder", new Jt600ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Jt600ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initEv603Server(String protocol) throws SQLException { + private void initEv603Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -474,13 +474,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new Ev603ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Ev603ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initV680Server(String protocol) throws SQLException { + private void initV680Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -489,20 +489,20 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new V680ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new V680ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initPt502Server(String protocol) throws SQLException { + private void initPt502Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new Pt502FrameDecoder()); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new Pt502ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Pt502ProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -510,7 +510,7 @@ public class ServerManager { } } - private void initTr20Server(String protocol) throws SQLException { + private void initTr20Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -520,19 +520,19 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Tr20ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Tr20ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initNavisServer(String protocol) throws SQLException { + private void initNavisServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(4 * 1024, 12, 2, 2, 0)); - pipeline.addLast("objectDecoder", new NavisProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new NavisProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -540,14 +540,14 @@ public class ServerManager { } } - private void initMeitrackServer(String protocol) throws SQLException { + private void initMeitrackServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new MeitrackFrameDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new MeitrackProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new MeitrackProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -555,42 +555,42 @@ public class ServerManager { } } - private void initSkypatrolServer(String protocol) throws SQLException { + private void initSkypatrolServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { - pipeline.addLast("objectDecoder", new SkypatrolProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new SkypatrolProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGt02Server(String protocol) throws SQLException { + private void initGt02Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(256, 2, 1, 2, 0)); - pipeline.addLast("objectDecoder", new Gt02ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gt02ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGt06Server(String protocol) throws SQLException { + private void initGt06Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new Gt06FrameDecoder()); - pipeline.addLast("objectDecoder", new Gt06ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Gt06ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initMegastekServer(String protocol) throws SQLException { + private void initMegastekServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -598,19 +598,19 @@ public class ServerManager { pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new MegastekProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new MegastekProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initNavigilServer(String protocol) throws SQLException { + private void initNavigilServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new NavigilFrameDecoder()); - pipeline.addLast("objectDecoder", new NavigilProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new NavigilProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -618,7 +618,7 @@ public class ServerManager { } } - private void initGpsGateServer(String protocol) throws SQLException { + private void initGpsGateServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -628,51 +628,51 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new GpsGateProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new GpsGateProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTeltonikaServer(String protocol) throws SQLException { + private void initTeltonikaServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new TeltonikaFrameDecoder()); - pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initMta6Server(String protocol) throws SQLException { + private void initMta6Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("httpDecoder", new HttpRequestDecoder()); pipeline.addLast("httpEncoder", new HttpResponseEncoder()); - pipeline.addLast("objectDecoder", new Mta6ProtocolDecoder(ServerManager.this, false)); + pipeline.addLast("objectDecoder", new Mta6ProtocolDecoder(ServerManager.this, protocol, false)); } }); } } - private void initMta6CanServer(String protocol) throws SQLException { + private void initMta6CanServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("httpDecoder", new HttpRequestDecoder()); pipeline.addLast("httpEncoder", new HttpResponseEncoder()); - pipeline.addLast("objectDecoder", new Mta6ProtocolDecoder(ServerManager.this, true)); + pipeline.addLast("objectDecoder", new Mta6ProtocolDecoder(ServerManager.this, protocol, true)); } }); } } - private void initTlt2hServer(String protocol) throws SQLException { + private void initTlt2hServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -682,13 +682,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(32 * 1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Tlt2hProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Tlt2hProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initSyrusServer(String protocol) throws SQLException { + private void initSyrusServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -698,32 +698,32 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new SyrusProtocolDecoder(ServerManager.this, true)); + pipeline.addLast("objectDecoder", new SyrusProtocolDecoder(ServerManager.this, protocol, true)); } }); } } - private void initWondexServer(String protocol) throws SQLException { + private void initWondexServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new WondexFrameDecoder()); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new WondexProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new WondexProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initCellocatorServer(String protocol) throws SQLException { + private void initCellocatorServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new CellocatorFrameDecoder()); - pipeline.addLast("objectDecoder", new CellocatorProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new CellocatorProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -731,13 +731,13 @@ public class ServerManager { } } - private void initGalileoServer(String protocol) throws SQLException { + private void initGalileoServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new GalileoFrameDecoder()); - pipeline.addLast("objectDecoder", new GalileoProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new GalileoProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -745,7 +745,7 @@ public class ServerManager { } } - private void initYwtServer(String protocol) throws SQLException { + private void initYwtServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -755,13 +755,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new YwtProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new YwtProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTk102Server(String protocol) throws SQLException { + private void initTk102Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -771,13 +771,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Tk102ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Tk102ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initIntellitracServer(String protocol) throws SQLException { + private void initIntellitracServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -785,25 +785,25 @@ public class ServerManager { pipeline.addLast("frameDecoder", new IntellitracFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new IntellitracProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new IntellitracProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initXt7Server(String protocol) throws SQLException { + private void initXt7Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(256, 20, 1, 5, 0)); - pipeline.addLast("objectDecoder", new Xt7ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Xt7ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initWialonServer(String protocol) throws SQLException { + private void initWialonServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -811,13 +811,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new WialonProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new WialonProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initCarscopServer(String protocol) throws SQLException { + private void initCarscopServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -827,19 +827,19 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new CarscopProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new CarscopProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initApelServer(String protocol) throws SQLException { + private void initApelServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 2, 2, 4, 0)); - pipeline.addLast("objectDecoder", new ApelProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new ApelProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -847,7 +847,7 @@ public class ServerManager { } } - private void initManPowerServer(String protocol) throws SQLException { + private void initManPowerServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -857,13 +857,13 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new ManPowerProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new ManPowerProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGlobalSatServer(String protocol) throws SQLException { + private void initGlobalSatServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -873,25 +873,25 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new GlobalSatProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new GlobalSatProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initAtrackServer(String protocol) throws SQLException { + private void initAtrackServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new AtrackFrameDecoder()); - pipeline.addLast("objectDecoder", new AtrackProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new AtrackProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initPt3000Server(String protocol) throws SQLException { + private void initPt3000Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -901,25 +901,25 @@ public class ServerManager { new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new Pt3000ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Pt3000ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initRuptelaServer(String protocol) throws SQLException { + private void initRuptelaServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 0, 2, 2, 0)); - pipeline.addLast("objectDecoder", new RuptelaProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new RuptelaProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTopflytechServer(String protocol) throws SQLException { + private void initTopflytechServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -928,13 +928,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new TopflytechProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new TopflytechProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initLaipacServer(String protocol) throws SQLException { + private void initLaipacServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -942,25 +942,25 @@ public class ServerManager { pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new LaipacProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new LaipacProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initAplicomServer(String protocol) throws SQLException { + private void initAplicomServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new AplicomFrameDecoder()); - pipeline.addLast("objectDecoder", new AplicomProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new AplicomProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGotopServer(String protocol) throws SQLException { + private void initGotopServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -969,13 +969,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new GotopProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new GotopProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initSanavServer(String protocol) throws SQLException { + private void initSanavServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -984,29 +984,29 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new SanavProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new SanavProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initGatorServer(String protocol) throws SQLException { + private void initGatorServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { - pipeline.addLast("objectDecoder", new GatorProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new GatorProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initNoranServer(String protocol) throws SQLException { + private void initNoranServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { - pipeline.addLast("objectDecoder", new NoranProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new NoranProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -1014,32 +1014,32 @@ public class ServerManager { } } - private void initM2mServer(String protocol) throws SQLException { + private void initM2mServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new FixedLengthFrameDecoder(23)); - pipeline.addLast("objectDecoder", new M2mProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new M2mProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initOsmAndServer(String protocol) throws SQLException { + private void initOsmAndServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("httpDecoder", new HttpRequestDecoder()); pipeline.addLast("httpEncoder", new HttpResponseEncoder()); - pipeline.addLast("objectDecoder", new OsmAndProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new OsmAndProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initEasyTrackServer(String protocol) throws SQLException { + private void initEasyTrackServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1048,37 +1048,37 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new EasyTrackProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new EasyTrackProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTaipServer(String protocol) throws SQLException { + private void initTaipServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ConnectionlessBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new SyrusProtocolDecoder(ServerManager.this, false)); + pipeline.addLast("objectDecoder", new SyrusProtocolDecoder(ServerManager.this, protocol, false)); } }); } } - private void initKhdServer(String protocol) throws SQLException { + private void initKhdServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(256, 3, 2)); - pipeline.addLast("objectDecoder", new KhdProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new KhdProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initPiligrimServer(String protocol) throws SQLException { + private void initPiligrimServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1086,26 +1086,26 @@ public class ServerManager { pipeline.addLast("httpDecoder", new HttpRequestDecoder()); pipeline.addLast("httpAggregator", new HttpChunkAggregator(16384)); pipeline.addLast("httpEncoder", new HttpResponseEncoder()); - pipeline.addLast("objectDecoder", new PiligrimProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new PiligrimProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initStl060Server(String protocol) throws SQLException { + private void initStl060Server(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new Stl060FrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new Stl060ProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new Stl060ProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initCarTrackServer(String protocol) throws SQLException { + private void initCarTrackServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1114,13 +1114,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new CarTrackProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new CarTrackProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initMiniFinderServer(String protocol) throws SQLException { + private void initMiniFinderServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1129,13 +1129,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new MiniFinderProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new MiniFinderProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initHaicomServer(String protocol) throws SQLException { + private void initHaicomServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1144,25 +1144,25 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new HaicomProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new HaicomProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initEelinkServer(String protocol) throws SQLException { + private void initEelinkServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 3, 2)); - pipeline.addLast("objectDecoder", new EelinkProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new EelinkProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initBoxServer(String protocol) throws SQLException { + private void initBoxServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1171,26 +1171,26 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new BoxProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new BoxProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initFreedomServer(String protocol) throws SQLException { + private void initFreedomServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new FreedomProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new FreedomProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTelikServer(String protocol) throws SQLException { + private void initTelikServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1199,13 +1199,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new TelikProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new TelikProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initTrackboxServer(String protocol) throws SQLException { + private void initTrackboxServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1213,13 +1213,13 @@ public class ServerManager { pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); pipeline.addLast("stringDecoder", new StringDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); - pipeline.addLast("objectDecoder", new TrackboxProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new TrackboxProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initVisiontekServer(String protocol) throws SQLException { + private void initVisiontekServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { serverList.add(new TrackerServer(this, new ServerBootstrap(), protocol) { @Override @@ -1228,19 +1228,19 @@ public class ServerManager { pipeline.addLast("frameDecoder", new DelimiterBasedFrameDecoder(1024, ChannelBuffers.wrappedBuffer(delimiter))); pipeline.addLast("stringDecoder", new StringDecoder()); - pipeline.addLast("objectDecoder", new VisiontekProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new VisiontekProtocolDecoder(ServerManager.this, protocol)); } }); } } - private void initOrionServer(String protocol) throws SQLException { + private void initOrionServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new OrionFrameDecoder()); - pipeline.addLast("objectDecoder", new OrionProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new OrionProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); @@ -1248,13 +1248,13 @@ public class ServerManager { } } - private void initRitiServer(String protocol) throws SQLException { + private void initRitiServer(final String protocol) throws SQLException { if (isProtocolEnabled(properties, protocol)) { TrackerServer server = new TrackerServer(this, new ServerBootstrap(), protocol) { @Override protected void addSpecificHandlers(ChannelPipeline pipeline) { pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1024, 105, 2, 3, 0)); - pipeline.addLast("objectDecoder", new RitiProtocolDecoder(ServerManager.this)); + pipeline.addLast("objectDecoder", new RitiProtocolDecoder(ServerManager.this, protocol)); } }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); diff --git a/src/org/traccar/protocol/ApelProtocolDecoder.java b/src/org/traccar/protocol/ApelProtocolDecoder.java index 54b112b59..954006807 100644 --- a/src/org/traccar/protocol/ApelProtocolDecoder.java +++ b/src/org/traccar/protocol/ApelProtocolDecoder.java @@ -42,6 +42,10 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public ApelProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + /* * Message types */ @@ -165,7 +169,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder { for (int j = 0; j < recordCount; j++) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("apel"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Message index diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index 21a3127d1..468e4a5fc 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -31,6 +31,10 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public AplicomProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final long IMEI_BASE_TC65_V20 = 0x1437207000000L; private static final long IMEI_BASE_TC65_V28 = 358244010000000L; private static final long IMEI_BASE_TC65I_V11 = 0x14143B4000000L; @@ -124,7 +128,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("aplicom"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); try { position.setDeviceId(getDataManager().getDeviceByImei(imei).getId()); } catch(Exception error) { diff --git a/src/org/traccar/protocol/AtrackProtocolDecoder.java b/src/org/traccar/protocol/AtrackProtocolDecoder.java index 3dbd214d9..7edafa057 100644 --- a/src/org/traccar/protocol/AtrackProtocolDecoder.java +++ b/src/org/traccar/protocol/AtrackProtocolDecoder.java @@ -35,6 +35,10 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public AtrackProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final int MSG_HEARTBEAT = 0x1A; private static final int MSG_DATA = 0x10; @@ -96,7 +100,7 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("atrack"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Date and time position.setTime(new Date(buf.readUnsignedInt() * 1000)); // gps time diff --git a/src/org/traccar/protocol/BoxProtocolDecoder.java b/src/org/traccar/protocol/BoxProtocolDecoder.java index 239b0aac5..4184ee0e2 100644 --- a/src/org/traccar/protocol/BoxProtocolDecoder.java +++ b/src/org/traccar/protocol/BoxProtocolDecoder.java @@ -35,6 +35,10 @@ public class BoxProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public BoxProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "L," + "(\\d{2})(\\d{2})(\\d{2})" + // Date @@ -79,7 +83,7 @@ public class BoxProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("box"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/CarTrackProtocolDecoder.java b/src/org/traccar/protocol/CarTrackProtocolDecoder.java index 559a5ccc1..aa02ba044 100644 --- a/src/org/traccar/protocol/CarTrackProtocolDecoder.java +++ b/src/org/traccar/protocol/CarTrackProtocolDecoder.java @@ -34,6 +34,10 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public CarTrackProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$\\$" + // Header "(\\d+)\\?*" + // Device ID @@ -70,7 +74,7 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("cartrack"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Get device by unique identifier diff --git a/src/org/traccar/protocol/CarscopProtocolDecoder.java b/src/org/traccar/protocol/CarscopProtocolDecoder.java index 9748b2e09..6683a463f 100644 --- a/src/org/traccar/protocol/CarscopProtocolDecoder.java +++ b/src/org/traccar/protocol/CarscopProtocolDecoder.java @@ -35,6 +35,10 @@ public class CarscopProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public CarscopProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + // Very similar to TK103 protocol static private Pattern pattern = Pattern.compile( "\\*.*" + @@ -80,7 +84,7 @@ public class CarscopProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("carscop"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); index = 1; // Time diff --git a/src/org/traccar/protocol/CellocatorProtocolDecoder.java b/src/org/traccar/protocol/CellocatorProtocolDecoder.java index 7e55a6865..8cce47bd5 100644 --- a/src/org/traccar/protocol/CellocatorProtocolDecoder.java +++ b/src/org/traccar/protocol/CellocatorProtocolDecoder.java @@ -34,6 +34,10 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public CellocatorProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private String readImei(ChannelBuffer buf) { int b = buf.readUnsignedByte(); StringBuilder imei = new StringBuilder(); @@ -103,7 +107,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder { // Parse location if (type == MSG_CLIENT_STATUS) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("cellocator"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Device identifier try { diff --git a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java index 4b0080267..87a0135eb 100644 --- a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java +++ b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java @@ -33,6 +33,10 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public EasyTrackProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + //ET,358155100003016,HB,A,0d081e,07381e,8038ee09,03d2e9be,004f,0000,40c00000,0f,100,0000,00037c,29 static private Pattern pattern = Pattern.compile( "\\*..," + // Manufacturer @@ -74,7 +78,7 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("easytrack"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/EelinkProtocolDecoder.java b/src/org/traccar/protocol/EelinkProtocolDecoder.java index 00c74f7f3..97c2821b5 100644 --- a/src/org/traccar/protocol/EelinkProtocolDecoder.java +++ b/src/org/traccar/protocol/EelinkProtocolDecoder.java @@ -36,6 +36,10 @@ public class EelinkProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public EelinkProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private String readImei(ChannelBuffer buf) { int b = buf.readUnsignedByte(); StringBuilder imei = new StringBuilder(); @@ -105,7 +109,7 @@ public class EelinkProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("eelink"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", index); // Location diff --git a/src/org/traccar/protocol/EnforaProtocolDecoder.java b/src/org/traccar/protocol/EnforaProtocolDecoder.java index eec724e30..0509b0c6d 100644 --- a/src/org/traccar/protocol/EnforaProtocolDecoder.java +++ b/src/org/traccar/protocol/EnforaProtocolDecoder.java @@ -36,6 +36,10 @@ public class EnforaProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public EnforaProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "GPRMC," + "(\\d{2})(\\d{2})(\\d{2}).(\\d+)," + // Time (HHMMSS.SS) @@ -94,7 +98,7 @@ public class EnforaProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("enfora"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Get device by IMEI diff --git a/src/org/traccar/protocol/Ev603ProtocolDecoder.java b/src/org/traccar/protocol/Ev603ProtocolDecoder.java index a57a0e79b..c73067b0c 100644 --- a/src/org/traccar/protocol/Ev603ProtocolDecoder.java +++ b/src/org/traccar/protocol/Ev603ProtocolDecoder.java @@ -36,6 +36,10 @@ public class Ev603ProtocolDecoder extends BaseProtocolDecoder{ super(serverManager);
}
+ public Ev603ProtocolDecoder(ServerManager serverManager, String protocol) {
+ super(serverManager, protocol);
+ }
+
private static final Pattern pattern = Pattern.compile(
"!A," + // Type
"(\\d{2})\\/(\\d{2})\\/(\\d{2})," + // Date dd/mm/YY
@@ -74,7 +78,7 @@ public class Ev603ProtocolDecoder extends BaseProtocolDecoder{ // Create new position
Position position = new Position();
position.setDeviceId(deviceId);
- ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("ev603");
+ ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol());
Integer index = 1;
// Date
diff --git a/src/org/traccar/protocol/FreedomProtocolDecoder.java b/src/org/traccar/protocol/FreedomProtocolDecoder.java index 7e86d285f..0acff7f22 100644 --- a/src/org/traccar/protocol/FreedomProtocolDecoder.java +++ b/src/org/traccar/protocol/FreedomProtocolDecoder.java @@ -33,6 +33,10 @@ public class FreedomProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public FreedomProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "IMEI," + "(\\d+)," + // IMEI @@ -56,7 +60,7 @@ public class FreedomProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("freedom"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Identification diff --git a/src/org/traccar/protocol/GalileoProtocolDecoder.java b/src/org/traccar/protocol/GalileoProtocolDecoder.java index 079b76ea4..cb29a0920 100644 --- a/src/org/traccar/protocol/GalileoProtocolDecoder.java +++ b/src/org/traccar/protocol/GalileoProtocolDecoder.java @@ -40,6 +40,10 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public GalileoProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final int TAG_IMEI = 0x03; private static final int TAG_DATE = 0x20; private static final int TAG_COORDINATES = 0x30; @@ -97,7 +101,7 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder { List<Position> positions = new LinkedList<Position>(); Set<Integer> tags = new HashSet<Integer>(); Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("galileo"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); while (buf.readerIndex() < length) { @@ -108,7 +112,7 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder { positions.add(position); tags.clear(); position = new Position(); - extendedInfo = new ExtendedInfoFormatter("galileo"); + extendedInfo = new ExtendedInfoFormatter(getProtocol()); } tags.add(tag); diff --git a/src/org/traccar/protocol/GatorProtocolDecoder.java b/src/org/traccar/protocol/GatorProtocolDecoder.java index 15a46d375..7f93082fd 100644 --- a/src/org/traccar/protocol/GatorProtocolDecoder.java +++ b/src/org/traccar/protocol/GatorProtocolDecoder.java @@ -33,6 +33,10 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public GatorProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final int PACKET_HEARTBEAT = 0x21; private static final int PACKET_POSITION_DATA = 0x80; private static final int PACKET_ROLLCALL_RESPONSE = 0x81; @@ -66,7 +70,7 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gator"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Identification try { diff --git a/src/org/traccar/protocol/Gl100ProtocolDecoder.java b/src/org/traccar/protocol/Gl100ProtocolDecoder.java index 572615053..0dac5d2b3 100644 --- a/src/org/traccar/protocol/Gl100ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gl100ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Gl100ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Gl100ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\+RESP:GT...," + "(\\d{15})," + // IMEI @@ -74,7 +78,7 @@ public class Gl100ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gl100"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/Gl200ProtocolDecoder.java b/src/org/traccar/protocol/Gl200ProtocolDecoder.java index 942d6ef10..83fd42b74 100644 --- a/src/org/traccar/protocol/Gl200ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gl200ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Gl200ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Gl200ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\+(?:RESP|BUFF):GT...," + "[0-9a-fA-F]{6}," + // Protocol version @@ -67,7 +71,7 @@ public class Gl200ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gl200"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/GlobalSatProtocolDecoder.java b/src/org/traccar/protocol/GlobalSatProtocolDecoder.java index 5b4dc5e9b..bd56fde1f 100644 --- a/src/org/traccar/protocol/GlobalSatProtocolDecoder.java +++ b/src/org/traccar/protocol/GlobalSatProtocolDecoder.java @@ -36,6 +36,10 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder { public GlobalSatProtocolDecoder(ServerManager serverManager) { super(serverManager); + // This is now only called by test classes. + // This will be deleted in the next commit. + assert (serverManager == null); + // Initialize format strings format0 = "TSPRXAB27GHKLMnaicz*U!"; format1 = "SARY*U!"; @@ -49,6 +53,23 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder { } } } + + public GlobalSatProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + + // Initialize format strings + format0 = "TSPRXAB27GHKLMnaicz*U!"; + format1 = "SARY*U!"; + if (getServerManager() != null) { + Properties p = getServerManager().getProperties(); + if (p.containsKey(protocol + ".format0")) { + format0 = p.getProperty(protocol + ".format0"); + } + if (p.containsKey(protocol + ".format1")) { + format1 = p.getProperty(protocol + ".format1"); + } + } + } private Position decodeOriginal(Channel channel, String sentence) { @@ -83,7 +104,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder { // Parse data Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("globalsat"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); for (int formatIndex = 0, valueIndex = 1; formatIndex < format.length() && valueIndex < values.length; formatIndex++) { String value = values[valueIndex]; @@ -204,7 +225,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("globalsat"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Identification diff --git a/src/org/traccar/protocol/GotopProtocolDecoder.java b/src/org/traccar/protocol/GotopProtocolDecoder.java index 826faf531..70d0063a1 100644 --- a/src/org/traccar/protocol/GotopProtocolDecoder.java +++ b/src/org/traccar/protocol/GotopProtocolDecoder.java @@ -33,6 +33,10 @@ public class GotopProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public GotopProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(\\d+)," + // IMEI "[^,]+," + // Type @@ -60,7 +64,7 @@ public class GotopProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gotop"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Get device by IMEI diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java index 124df4377..ca578841a 100644 --- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java @@ -34,6 +34,10 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Gps103ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "imei:" + "(\\d+)," + // IMEI @@ -88,7 +92,7 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gps103"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/GpsGateProtocolDecoder.java b/src/org/traccar/protocol/GpsGateProtocolDecoder.java index 268f9ea8a..bc8c759c3 100644 --- a/src/org/traccar/protocol/GpsGateProtocolDecoder.java +++ b/src/org/traccar/protocol/GpsGateProtocolDecoder.java @@ -36,6 +36,10 @@ public class GpsGateProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public GpsGateProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + /** * Regular expressions pattern */ @@ -104,7 +108,7 @@ public class GpsGateProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gpsgate"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/Gt02ProtocolDecoder.java b/src/org/traccar/protocol/Gt02ProtocolDecoder.java index 561377f7f..8e351f456 100644 --- a/src/org/traccar/protocol/Gt02ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt02ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Gt02ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Gt02ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private String readImei(ChannelBuffer buf) { int b = buf.readUnsignedByte(); StringBuilder imei = new StringBuilder(); @@ -77,7 +81,7 @@ public class Gt02ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gt02"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", index); // Get device id diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java index 44702924c..f1e8585e5 100644 --- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -36,12 +36,16 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { public Gt06ProtocolDecoder(ServerManager serverManager) { super(serverManager); + } + + public Gt06ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); if (serverManager != null) { Properties p = getServerManager().getProperties(); - if (p.containsKey("gt06.timezone")) { + if (p.containsKey(protocol + ".timezone")) { timeZone.setRawOffset( - Integer.valueOf(p.getProperty("gt06.timezone")) * 1000); + Integer.valueOf(p.getProperty(protocol + ".timezone")) * 1000); } } } @@ -144,7 +148,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gt06"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Date and time Calendar time = Calendar.getInstance(timeZone); diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index 51b1aff5e..f7843e2c8 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -35,6 +35,10 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { public H02ProtocolDecoder(ServerManager serverManager) { super(serverManager); } + + public H02ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } private static double readCoordinate(ChannelBuffer buf, boolean lon) { @@ -59,7 +63,7 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("h02"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); buf.readByte(); // marker @@ -133,7 +137,7 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("h02"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/HaicomProtocolDecoder.java b/src/org/traccar/protocol/HaicomProtocolDecoder.java index 1845dc31b..199093492 100644 --- a/src/org/traccar/protocol/HaicomProtocolDecoder.java +++ b/src/org/traccar/protocol/HaicomProtocolDecoder.java @@ -33,6 +33,10 @@ public class HaicomProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public HaicomProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$GPRS" + "(\\d+)," + // IMEI @@ -67,7 +71,7 @@ public class HaicomProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("haicom"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/IntellitracProtocolDecoder.java b/src/org/traccar/protocol/IntellitracProtocolDecoder.java index 53e67af3d..fe093a033 100644 --- a/src/org/traccar/protocol/IntellitracProtocolDecoder.java +++ b/src/org/traccar/protocol/IntellitracProtocolDecoder.java @@ -33,6 +33,10 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public IntellitracProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(?:.+,)?(\\d+)," + // Device Identifier "(\\d{4})(\\d{2})(\\d{2})" + // Date (YYYYMMDD) @@ -76,7 +80,7 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("intellitrac"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Detect device diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java index b8273b5a4..7f67daafe 100644 --- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java +++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java @@ -36,10 +36,14 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Jt600ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private Position decodeNormalMessage(ChannelBuffer buf) throws Exception { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("jt600"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); buf.readByte(); // header @@ -158,7 +162,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("jt600"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("alert", "true"); Integer index = 1; diff --git a/src/org/traccar/protocol/KhdProtocolDecoder.java b/src/org/traccar/protocol/KhdProtocolDecoder.java index bd21592e1..e8716ffd0 100644 --- a/src/org/traccar/protocol/KhdProtocolDecoder.java +++ b/src/org/traccar/protocol/KhdProtocolDecoder.java @@ -35,6 +35,10 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public KhdProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private String readSerialNumber(ChannelBuffer buf) { int b1 = buf.readUnsignedByte(); int b2 = buf.readUnsignedByte(); if (b2 > 0x80) b2 -= 0x80; @@ -73,7 +77,7 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("khd"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Device identification String id = readSerialNumber(buf); diff --git a/src/org/traccar/protocol/LaipacProtocolDecoder.java b/src/org/traccar/protocol/LaipacProtocolDecoder.java index a62a50e51..cba86f7b4 100644 --- a/src/org/traccar/protocol/LaipacProtocolDecoder.java +++ b/src/org/traccar/protocol/LaipacProtocolDecoder.java @@ -34,6 +34,10 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public LaipacProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$AVRMC," + "([^,]+)," + // Identifier @@ -71,7 +75,7 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("laipac"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Identification diff --git a/src/org/traccar/protocol/M2mProtocolDecoder.java b/src/org/traccar/protocol/M2mProtocolDecoder.java index f54934536..2a0c8ebaf 100644 --- a/src/org/traccar/protocol/M2mProtocolDecoder.java +++ b/src/org/traccar/protocol/M2mProtocolDecoder.java @@ -31,6 +31,10 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder { public M2mProtocolDecoder(ServerManager serverManager) { super(serverManager); } + + public M2mProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } private boolean firstPacket = true; private Long deviceId; @@ -75,7 +79,7 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("m2m"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Date and time diff --git a/src/org/traccar/protocol/ManPowerProtocolDecoder.java b/src/org/traccar/protocol/ManPowerProtocolDecoder.java index d8bcdb937..57b47ce5e 100644 --- a/src/org/traccar/protocol/ManPowerProtocolDecoder.java +++ b/src/org/traccar/protocol/ManPowerProtocolDecoder.java @@ -33,6 +33,10 @@ public class ManPowerProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public ManPowerProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "simei:" + "(\\d+)," + // IMEI @@ -64,7 +68,7 @@ public class ManPowerProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("manpower"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/MaxonProtocolDecoder.java b/src/org/traccar/protocol/MaxonProtocolDecoder.java index b6ba2fb4b..c1e9e4ec5 100644 --- a/src/org/traccar/protocol/MaxonProtocolDecoder.java +++ b/src/org/traccar/protocol/MaxonProtocolDecoder.java @@ -47,6 +47,10 @@ public class MaxonProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public MaxonProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + /** * Regular expressions pattern */ diff --git a/src/org/traccar/protocol/MegastekProtocolDecoder.java b/src/org/traccar/protocol/MegastekProtocolDecoder.java index 96b2d564d..a4e25510d 100644 --- a/src/org/traccar/protocol/MegastekProtocolDecoder.java +++ b/src/org/traccar/protocol/MegastekProtocolDecoder.java @@ -33,6 +33,10 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public MegastekProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern patternGPRMC = Pattern.compile( "\\$GPRMC," + "(\\d{2})(\\d{2})(\\d{2})\\.\\d+," + // Time (HHMMSS.SSS) @@ -176,7 +180,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("megastek"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Parse location data if (!parseGPRMC(gprmc, position)) { diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index 6221ce4e7..73b238443 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -38,6 +38,10 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public MeiligaoProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(\\d{2})(\\d{2})(\\d{2})\\.?(\\d+)?," + // Time (HHMMSS.SSS) "([AV])," + // Validity @@ -116,8 +120,8 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { private String getMeiligaoServer(Channel channel) { if (getServerManager() != null && - getServerManager().getProperties().containsKey("meiligao.server")) { - return getServerManager().getProperties().getProperty("meiligao.server"); + getServerManager().getProperties().containsKey(getProtocol() + ".server")) { + return getServerManager().getProperties().getProperty(getProtocol() + ".server"); } else { InetSocketAddress address = (InetSocketAddress) channel.getLocalAddress(); return address.getAddress().getHostAddress() + ":" + address.getPort(); @@ -160,7 +164,7 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("meiligao"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Custom data if (command == MSG_ALARM) { diff --git a/src/org/traccar/protocol/MeitrackProtocolDecoder.java b/src/org/traccar/protocol/MeitrackProtocolDecoder.java index 166c77e60..972f69061 100644 --- a/src/org/traccar/protocol/MeitrackProtocolDecoder.java +++ b/src/org/traccar/protocol/MeitrackProtocolDecoder.java @@ -39,6 +39,10 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public MeitrackProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + //$$J163,123123123123123,AFF,0004,35,58.588926,16.180473,140928192856,A,10,27,0,161,1.2,19 //,1648894,435695,240|24|88B9|E435,0000,|||0A22|0000,00000001,,50,,,,,,,,,,,,,*70\r\n private static final Pattern pattern = Pattern.compile( @@ -81,7 +85,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("meitrack"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; @@ -182,7 +186,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder { while (buf.readableBytes() >= 0x34) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("meitrack"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Event diff --git a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java index 2d524a23a..96057f347 100644 --- a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java +++ b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java @@ -35,6 +35,10 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public MiniFinderProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\!D," + "(\\d+)/(\\d+)/(\\d+)," + // Date @@ -78,7 +82,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("minifinder"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/Mta6ProtocolDecoder.java b/src/org/traccar/protocol/Mta6ProtocolDecoder.java index 62fa87e68..0908a5793 100644 --- a/src/org/traccar/protocol/Mta6ProtocolDecoder.java +++ b/src/org/traccar/protocol/Mta6ProtocolDecoder.java @@ -41,8 +41,12 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { private boolean simple; - public Mta6ProtocolDecoder(ServerManager serverManager, boolean simple) { + public Mta6ProtocolDecoder(ServerManager serverManager) { super(serverManager); + } + + public Mta6ProtocolDecoder(ServerManager serverManager, String protocol, boolean simple) { + super(serverManager, protocol); this.simple = simple; } @@ -129,7 +133,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { while (buf.readable()) { Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("mta6"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); short flags = buf.readUnsignedByte(); @@ -211,7 +215,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { private Position parseFormatA1(ChannelBuffer buf, long deviceId) { Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("mta6"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); short flags = buf.readUnsignedByte(); diff --git a/src/org/traccar/protocol/NavigilProtocolDecoder.java b/src/org/traccar/protocol/NavigilProtocolDecoder.java index 29be1e5ad..938426297 100644 --- a/src/org/traccar/protocol/NavigilProtocolDecoder.java +++ b/src/org/traccar/protocol/NavigilProtocolDecoder.java @@ -33,6 +33,10 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { public NavigilProtocolDecoder(ServerManager serverManager) { super(serverManager); } + + public NavigilProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } private static final int LEAP_SECONDS_DELTA = 25; @@ -80,7 +84,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parseUnitReport(ChannelBuffer buf, long deviceId, int sequenceNumber) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setValid(true); extendedInfo.set("index", sequenceNumber); @@ -117,7 +121,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parseTg2Report(ChannelBuffer buf, long deviceId, int sequenceNumber) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setValid(true); extendedInfo.set("index", sequenceNumber); @@ -156,7 +160,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parsePositionReport(ChannelBuffer buf, long deviceId, int sequenceNumber, long timestamp) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); @@ -180,7 +184,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parsePositionReport2(ChannelBuffer buf, long deviceId, int sequenceNumber, long timestamp) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); @@ -207,7 +211,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parseSnapshot4(ChannelBuffer buf, long deviceId, int sequenceNumber) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); @@ -248,7 +252,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { private Position parseTrackingData(ChannelBuffer buf, long deviceId, int sequenceNumber, long timestamp) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); diff --git a/src/org/traccar/protocol/NavisProtocolDecoder.java b/src/org/traccar/protocol/NavisProtocolDecoder.java index 1ee28e0aa..fe4b04543 100644 --- a/src/org/traccar/protocol/NavisProtocolDecoder.java +++ b/src/org/traccar/protocol/NavisProtocolDecoder.java @@ -45,6 +45,10 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public NavisProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + // Format types public static final int F10 = 0x01; public static final int F20 = 0x02; @@ -83,7 +87,7 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { private ParseResult parsePosition(ChannelBuffer buf) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navis"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(databaseDeviceId); position.setAltitude(0.0); diff --git a/src/org/traccar/protocol/NoranProtocolDecoder.java b/src/org/traccar/protocol/NoranProtocolDecoder.java index 4cb35fee5..207975aec 100644 --- a/src/org/traccar/protocol/NoranProtocolDecoder.java +++ b/src/org/traccar/protocol/NoranProtocolDecoder.java @@ -36,6 +36,10 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public NoranProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final int MSG_UPLOAD_POSITION = 0x0008; private static final int MSG_CONTROL_RESPONSE = 0x8009; private static final int MSG_ALARM = 0x0003; @@ -73,7 +77,7 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("noran"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); if (type == MSG_CONTROL_RESPONSE) { buf.readUnsignedInt(); // GIS ip diff --git a/src/org/traccar/protocol/OrionProtocolDecoder.java b/src/org/traccar/protocol/OrionProtocolDecoder.java index 1846bba23..ed0e7c169 100644 --- a/src/org/traccar/protocol/OrionProtocolDecoder.java +++ b/src/org/traccar/protocol/OrionProtocolDecoder.java @@ -34,6 +34,10 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder { public OrionProtocolDecoder(ServerManager serverManager) { super(serverManager); } + + public OrionProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } private static final int TYPE_USERLOG = 0; private static final int TYPE_SYSLOG = 3; @@ -88,7 +92,7 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("orion"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); extendedInfo.set("event", buf.readUnsignedByte()); buf.readUnsignedByte(); // length diff --git a/src/org/traccar/protocol/OsmAndProtocolDecoder.java b/src/org/traccar/protocol/OsmAndProtocolDecoder.java index e150275bd..7c76ea851 100644 --- a/src/org/traccar/protocol/OsmAndProtocolDecoder.java +++ b/src/org/traccar/protocol/OsmAndProtocolDecoder.java @@ -41,6 +41,10 @@ public class OsmAndProtocolDecoder extends BaseProtocolDecoder { public OsmAndProtocolDecoder(ServerManager serverManager) { super(serverManager); } + + public OsmAndProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } @Override protected Object decode( @@ -58,7 +62,7 @@ public class OsmAndProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("osmand"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Identification String id = params.get(params.containsKey("id") ? "id" : "deviceid").get(0); diff --git a/src/org/traccar/protocol/PiligrimProtocolDecoder.java b/src/org/traccar/protocol/PiligrimProtocolDecoder.java index e0947b02a..db051c39f 100644 --- a/src/org/traccar/protocol/PiligrimProtocolDecoder.java +++ b/src/org/traccar/protocol/PiligrimProtocolDecoder.java @@ -43,6 +43,10 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public PiligrimProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private void sendResponse(Channel channel, String message) { if (channel != null) { HttpResponse response = new DefaultHttpResponse( @@ -104,7 +108,7 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder { if (type == MSG_GPS || type == MSG_GPS_SENSORS) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("piligrim"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Time diff --git a/src/org/traccar/protocol/ProgressProtocolDecoder.java b/src/org/traccar/protocol/ProgressProtocolDecoder.java index 85680c039..492c5afd3 100644 --- a/src/org/traccar/protocol/ProgressProtocolDecoder.java +++ b/src/org/traccar/protocol/ProgressProtocolDecoder.java @@ -44,6 +44,10 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public ProgressProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + /* * Message types */ @@ -128,7 +132,7 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder { for (int j = 0; j < recordCount; j++) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("progress"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Message index diff --git a/src/org/traccar/protocol/Pt3000ProtocolDecoder.java b/src/org/traccar/protocol/Pt3000ProtocolDecoder.java index 50b5aca02..8767b0f7c 100644 --- a/src/org/traccar/protocol/Pt3000ProtocolDecoder.java +++ b/src/org/traccar/protocol/Pt3000ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Pt3000ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Pt3000ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "\\%(\\d+)," + // IMEI "\\$GPRMC," + @@ -62,7 +66,7 @@ public class Pt3000ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("pt3000"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/Pt502ProtocolDecoder.java b/src/org/traccar/protocol/Pt502ProtocolDecoder.java index b324e3c55..c555a3690 100644 --- a/src/org/traccar/protocol/Pt502ProtocolDecoder.java +++ b/src/org/traccar/protocol/Pt502ProtocolDecoder.java @@ -34,6 +34,10 @@ public class Pt502ProtocolDecoder extends BaseProtocolDecoder { super(serverManager);
}
+ public Pt502ProtocolDecoder(ServerManager serverManager, String protocol) {
+ super(serverManager, protocol);
+ }
+
private static final Pattern pattern = Pattern.compile(
".*\\$POS," + // Data Frame start
"(\\d+)," + // Id
@@ -63,7 +67,7 @@ public class Pt502ProtocolDecoder extends BaseProtocolDecoder { // Create new position
Position position = new Position();
- ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("pt502");
+ ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol());
Integer index = 1;
diff --git a/src/org/traccar/protocol/RitiProtocolDecoder.java b/src/org/traccar/protocol/RitiProtocolDecoder.java index aad68a37d..1c7a0500b 100644 --- a/src/org/traccar/protocol/RitiProtocolDecoder.java +++ b/src/org/traccar/protocol/RitiProtocolDecoder.java @@ -36,6 +36,10 @@ public class RitiProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public RitiProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$GPRMC," + "(\\d{2})(\\d{2})(\\d{2})\\.?\\d*," + // Time (HHMMSS.SSS) @@ -58,7 +62,7 @@ public class RitiProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("riti"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); buf.skipBytes(2); // header diff --git a/src/org/traccar/protocol/RuptelaProtocolDecoder.java b/src/org/traccar/protocol/RuptelaProtocolDecoder.java index c9f8bd392..c5d678a06 100644 --- a/src/org/traccar/protocol/RuptelaProtocolDecoder.java +++ b/src/org/traccar/protocol/RuptelaProtocolDecoder.java @@ -34,6 +34,10 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public RuptelaProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final int COMMAND_RECORDS = 0x01; @Override @@ -64,7 +68,7 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder { for (int i = 0; i < count; i++) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("ruptela"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); // Time diff --git a/src/org/traccar/protocol/SanavProtocolDecoder.java b/src/org/traccar/protocol/SanavProtocolDecoder.java index e60209855..d09065355 100644 --- a/src/org/traccar/protocol/SanavProtocolDecoder.java +++ b/src/org/traccar/protocol/SanavProtocolDecoder.java @@ -33,6 +33,10 @@ public class SanavProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public SanavProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( ".*imei[:=]" + "(\\d+)" + // IMEI @@ -62,7 +66,7 @@ public class SanavProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("sanav"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Identification diff --git a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java index 4c7829bf6..5ef8a09a4 100644 --- a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java +++ b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java @@ -33,6 +33,10 @@ public class SkypatrolProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public SkypatrolProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static boolean checkBit(long mask, int bit) { long checkMask = 1 << bit; return (mask & checkMask) == checkMask; @@ -76,7 +80,7 @@ public class SkypatrolProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("skypatrol"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Status code if (checkBit(mask, 1)) { diff --git a/src/org/traccar/protocol/Stl060ProtocolDecoder.java b/src/org/traccar/protocol/Stl060ProtocolDecoder.java index 211483aed..77d7ed3bf 100644 --- a/src/org/traccar/protocol/Stl060ProtocolDecoder.java +++ b/src/org/traccar/protocol/Stl060ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Stl060ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Stl060ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( ".*\\$1," + "(\\d+)," + // IMEI @@ -67,7 +71,7 @@ public class Stl060ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("stl060"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/SuntechProtocolDecoder.java b/src/org/traccar/protocol/SuntechProtocolDecoder.java index 124b4feaf..5b5f4f136 100644 --- a/src/org/traccar/protocol/SuntechProtocolDecoder.java +++ b/src/org/traccar/protocol/SuntechProtocolDecoder.java @@ -33,6 +33,10 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public SuntechProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "S.\\d{3}(?:\\w{3})?;" + // Header "(?:[^;]+;)?" + @@ -62,7 +66,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("suntech"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); int index = 1; // Identifier diff --git a/src/org/traccar/protocol/SyrusProtocolDecoder.java b/src/org/traccar/protocol/SyrusProtocolDecoder.java index 0d61daf82..fc307d09a 100644 --- a/src/org/traccar/protocol/SyrusProtocolDecoder.java +++ b/src/org/traccar/protocol/SyrusProtocolDecoder.java @@ -37,6 +37,11 @@ public class SyrusProtocolDecoder extends BaseProtocolDecoder { this.sendResponse = sendResponse; } + public SyrusProtocolDecoder(ServerManager serverManager, String protocol, boolean sendResponse) { + super(serverManager, protocol); + this.sendResponse = sendResponse; + } + private static final Pattern pattern = Pattern.compile( "R[EP]V" + // Type "(?:\\d{2}" + // Event index @@ -132,7 +137,7 @@ public class SyrusProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("syrus"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/T55ProtocolDecoder.java b/src/org/traccar/protocol/T55ProtocolDecoder.java index da473d994..c3128bf97 100644 --- a/src/org/traccar/protocol/T55ProtocolDecoder.java +++ b/src/org/traccar/protocol/T55ProtocolDecoder.java @@ -35,6 +35,10 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public T55ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern patternGPRMC = Pattern.compile( "\\$GPRMC," + "(\\d{2})(\\d{2})(\\d{2})\\.?\\d*," + // Time (HHMMSS.SSS) @@ -143,7 +147,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("t55"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; @@ -210,7 +214,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("t55"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; @@ -262,7 +266,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("t55"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; @@ -319,7 +323,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("t55"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/TelikProtocolDecoder.java b/src/org/traccar/protocol/TelikProtocolDecoder.java index d632cc478..0f5e3794b 100644 --- a/src/org/traccar/protocol/TelikProtocolDecoder.java +++ b/src/org/traccar/protocol/TelikProtocolDecoder.java @@ -33,6 +33,10 @@ public class TelikProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public TelikProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\d{4}" + "(\\d{6})" + // Device ID @@ -62,7 +66,7 @@ public class TelikProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("telik"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java index 876a1e4ff..5f7ce1638 100644 --- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java +++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java @@ -37,6 +37,10 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public TeltonikaProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private void parseIdentification(Channel channel, ChannelBuffer buf) { boolean result = false; @@ -81,7 +85,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { for (int i = 0; i < count; i++) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("teltonika"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); diff --git a/src/org/traccar/protocol/Tk102ProtocolDecoder.java b/src/org/traccar/protocol/Tk102ProtocolDecoder.java index e142d95b5..9b1157d50 100644 --- a/src/org/traccar/protocol/Tk102ProtocolDecoder.java +++ b/src/org/traccar/protocol/Tk102ProtocolDecoder.java @@ -35,6 +35,10 @@ public class Tk102ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Tk102ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "\\[.\\d{10}.\\(\\p{Upper}+" + "(\\d{2})(\\d{2})(\\d{2})" + // Time (HHMMSS) @@ -85,7 +89,7 @@ public class Tk102ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("tk102"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/Tk103ProtocolDecoder.java b/src/org/traccar/protocol/Tk103ProtocolDecoder.java index d3220368a..2309012ab 100644 --- a/src/org/traccar/protocol/Tk103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Tk103ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Tk103ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(\\d+)(,)?" + // Device ID ".{4},?" + // Command @@ -82,7 +86,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("tk103"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Get device by IMEI diff --git a/src/org/traccar/protocol/Tlt2hProtocolDecoder.java b/src/org/traccar/protocol/Tlt2hProtocolDecoder.java index e4e6cb300..0f5bc5275 100644 --- a/src/org/traccar/protocol/Tlt2hProtocolDecoder.java +++ b/src/org/traccar/protocol/Tlt2hProtocolDecoder.java @@ -35,6 +35,10 @@ public class Tlt2hProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Tlt2hProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern patternHeader = Pattern.compile( "#(\\d+)#" + // IMEI "[^#]+#" + @@ -91,7 +95,7 @@ public class Tlt2hProtocolDecoder extends BaseProtocolDecoder { parser = patternPosition.matcher(message); if (parser.matches()) { Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("tlt2h"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/TopflytechProtocolDecoder.java b/src/org/traccar/protocol/TopflytechProtocolDecoder.java index 58448f881..112b1e183 100644 --- a/src/org/traccar/protocol/TopflytechProtocolDecoder.java +++ b/src/org/traccar/protocol/TopflytechProtocolDecoder.java @@ -35,6 +35,10 @@ public class TopflytechProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public TopflytechProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "\\(" + "(\\d+)" + // IMEI @@ -64,7 +68,7 @@ public class TopflytechProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("topflytech"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Identifier diff --git a/src/org/traccar/protocol/TotemProtocolDecoder.java b/src/org/traccar/protocol/TotemProtocolDecoder.java index 466929777..180289b20 100644 --- a/src/org/traccar/protocol/TotemProtocolDecoder.java +++ b/src/org/traccar/protocol/TotemProtocolDecoder.java @@ -33,6 +33,10 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public TotemProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern patternFirst = Pattern.compile( "\\$\\$" + // Header "\\p{XDigit}{2}" + // Length @@ -159,7 +163,7 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("totem"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/Tr20ProtocolDecoder.java b/src/org/traccar/protocol/Tr20ProtocolDecoder.java index de21f4420..4d17b45fe 100644 --- a/src/org/traccar/protocol/Tr20ProtocolDecoder.java +++ b/src/org/traccar/protocol/Tr20ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Tr20ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Tr20ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern patternPing = Pattern.compile( "\\%\\%[^,]+,(\\d+)"); @@ -77,7 +81,7 @@ public class Tr20ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("tr20"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/TrackboxProtocolDecoder.java b/src/org/traccar/protocol/TrackboxProtocolDecoder.java index 865d81e30..8f495cca8 100644 --- a/src/org/traccar/protocol/TrackboxProtocolDecoder.java +++ b/src/org/traccar/protocol/TrackboxProtocolDecoder.java @@ -35,6 +35,10 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public TrackboxProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(\\d{2})(\\d{2})(\\d{2})\\.(\\d{3})," + // Time "(\\d{2})(\\d{2}\\.\\d{4})([NS])," + // Latitude (DDMM.MMMM) @@ -82,7 +86,7 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); position.setDeviceId(deviceId); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("trackbox"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/V680ProtocolDecoder.java b/src/org/traccar/protocol/V680ProtocolDecoder.java index 25c943e57..6c8673775 100644 --- a/src/org/traccar/protocol/V680ProtocolDecoder.java +++ b/src/org/traccar/protocol/V680ProtocolDecoder.java @@ -35,6 +35,10 @@ public class V680ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public V680ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(?:#(\\d+)#" + // IMEI "([^#]*)#)?" + // User @@ -80,7 +84,7 @@ public class V680ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("v680"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; // Get device by IMEI diff --git a/src/org/traccar/protocol/VisiontekProtocolDecoder.java b/src/org/traccar/protocol/VisiontekProtocolDecoder.java index 4ca97be67..70f1ae194 100644 --- a/src/org/traccar/protocol/VisiontekProtocolDecoder.java +++ b/src/org/traccar/protocol/VisiontekProtocolDecoder.java @@ -33,6 +33,10 @@ public class VisiontekProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public VisiontekProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$1," + "([^,]+)," + // Identifier @@ -71,7 +75,7 @@ public class VisiontekProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("visiontek"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/WialonProtocolDecoder.java b/src/org/traccar/protocol/WialonProtocolDecoder.java index 93e32ced0..1f14886c4 100644 --- a/src/org/traccar/protocol/WialonProtocolDecoder.java +++ b/src/org/traccar/protocol/WialonProtocolDecoder.java @@ -37,6 +37,10 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public WialonProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "(\\d{2})(\\d{2})(\\d{2});" + // Date (DDMMYY) "(\\d{2})(\\d{2})(\\d{2});" + // Time (HHMMSS) @@ -71,7 +75,7 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("wialon"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); position.setDeviceId(deviceId); Integer index = 1; diff --git a/src/org/traccar/protocol/WondexProtocolDecoder.java b/src/org/traccar/protocol/WondexProtocolDecoder.java index a9c4ea4c1..6d404a57d 100644 --- a/src/org/traccar/protocol/WondexProtocolDecoder.java +++ b/src/org/traccar/protocol/WondexProtocolDecoder.java @@ -33,6 +33,10 @@ public class WondexProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public WondexProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "[^\\d]*" + // Header "(\\d+)," + // Device Identifier @@ -65,7 +69,7 @@ public class WondexProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("wondex"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); int index = 1; // Device identifier diff --git a/src/org/traccar/protocol/Xexun2ProtocolDecoder.java b/src/org/traccar/protocol/Xexun2ProtocolDecoder.java index d974ce227..bccd8a8cf 100644 --- a/src/org/traccar/protocol/Xexun2ProtocolDecoder.java +++ b/src/org/traccar/protocol/Xexun2ProtocolDecoder.java @@ -33,6 +33,10 @@ public class Xexun2ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Xexun2ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + static private Pattern pattern = Pattern.compile( "[\r\n]*" + "(\\d+)," + // Serial @@ -72,7 +76,7 @@ public class Xexun2ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("xexun2"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/XexunProtocolDecoder.java b/src/org/traccar/protocol/XexunProtocolDecoder.java index 7a0d71e64..16573dd7c 100644 --- a/src/org/traccar/protocol/XexunProtocolDecoder.java +++ b/src/org/traccar/protocol/XexunProtocolDecoder.java @@ -34,6 +34,10 @@ public class XexunProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public XexunProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "GPRMC," + "(\\d{2})(\\d{2})(\\d{2}).(\\d+)," + // Time (HHMMSS.SSS) @@ -62,7 +66,7 @@ public class XexunProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("xexun"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; diff --git a/src/org/traccar/protocol/Xt7ProtocolDecoder.java b/src/org/traccar/protocol/Xt7ProtocolDecoder.java index a30977263..2ee0e6b0f 100644 --- a/src/org/traccar/protocol/Xt7ProtocolDecoder.java +++ b/src/org/traccar/protocol/Xt7ProtocolDecoder.java @@ -35,6 +35,10 @@ public class Xt7ProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public Xt7ProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "\\$GPRMC," + "(\\d{2})(\\d{2})(\\d{2})\\.(\\d+)," + // Time (HHMMSS.SSS) @@ -67,7 +71,7 @@ public class Xt7ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("xt7"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); // Get device by id String id = buf.readBytes(16).toString(Charset.defaultCharset()).trim(); diff --git a/src/org/traccar/protocol/YwtProtocolDecoder.java b/src/org/traccar/protocol/YwtProtocolDecoder.java index 2b189ea7c..01cfbc8dc 100644 --- a/src/org/traccar/protocol/YwtProtocolDecoder.java +++ b/src/org/traccar/protocol/YwtProtocolDecoder.java @@ -33,6 +33,10 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder { super(serverManager); } + public YwtProtocolDecoder(ServerManager serverManager, String protocol) { + super(serverManager, protocol); + } + private static final Pattern pattern = Pattern.compile( "%(..)," + // Type "(\\d+):" + // Unit identifier @@ -81,7 +85,7 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("ywt"); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter(getProtocol()); Integer index = 1; String type = parser.group(index++); |