diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2018-06-06 20:59:54 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-06 20:59:54 +1200 |
commit | 35bef1115f73da97b15ae3c1de03db1cd6d733c5 (patch) | |
tree | 97e5414d9eeb41fc0c4545c26b5098ac727c2de7 | |
parent | eb6475d5087345b7f355fcd55362b955ba5df715 (diff) | |
parent | e091e61f54cabd2442927700d9c689f81fc1ed8b (diff) | |
download | traccar-server-35bef1115f73da97b15ae3c1de03db1cd6d733c5.tar.gz traccar-server-35bef1115f73da97b15ae3c1de03db1cd6d733c5.tar.bz2 traccar-server-35bef1115f73da97b15ae3c1de03db1cd6d733c5.zip |
Merge pull request #3912 from Abyss777/netty4_gl200_teltonika
Migrate gl200 and teltonika to netty 4
-rw-r--r-- | src/org/traccar/protocol/Gl200BinaryProtocolDecoder.java | 16 | ||||
-rw-r--r-- | src/org/traccar/protocol/Gl200FrameDecoder.java | 19 | ||||
-rw-r--r-- | src/org/traccar/protocol/Gl200Protocol.java | 17 | ||||
-rw-r--r-- | src/org/traccar/protocol/Gl200ProtocolDecoder.java | 9 | ||||
-rw-r--r-- | src/org/traccar/protocol/Gl200TextProtocolDecoder.java | 13 | ||||
-rw-r--r-- | src/org/traccar/protocol/TeltonikaFrameDecoder.java | 15 | ||||
-rw-r--r-- | src/org/traccar/protocol/TeltonikaProtocol.java | 14 | ||||
-rw-r--r-- | src/org/traccar/protocol/TeltonikaProtocolDecoder.java | 44 | ||||
-rw-r--r-- | src/org/traccar/protocol/TeltonikaProtocolEncoder.java | 13 |
9 files changed, 83 insertions, 77 deletions
diff --git a/src/org/traccar/protocol/Gl200BinaryProtocolDecoder.java b/src/org/traccar/protocol/Gl200BinaryProtocolDecoder.java index ba3baaa75..e249cd936 100644 --- a/src/org/traccar/protocol/Gl200BinaryProtocolDecoder.java +++ b/src/org/traccar/protocol/Gl200BinaryProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2017 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +15,8 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.channel.Channel; +import io.netty.buffer.ByteBuf; +import io.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.DeviceSession; import org.traccar.helper.BitBuffer; @@ -39,7 +39,7 @@ public class Gl200BinaryProtocolDecoder extends BaseProtocolDecoder { super(protocol); } - private Date decodeTime(ChannelBuffer buf) { + private Date decodeTime(ByteBuf buf) { DateBuilder dateBuilder = new DateBuilder() .setDate(buf.readUnsignedShort(), buf.readUnsignedByte(), buf.readUnsignedByte()) .setTime(buf.readUnsignedByte(), buf.readUnsignedByte(), buf.readUnsignedByte()); @@ -50,7 +50,7 @@ public class Gl200BinaryProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_RSP_GEO = 8; public static final int MSG_RSP_COMPRESSED = 100; - private List<Position> decodeLocation(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) { + private List<Position> decodeLocation(Channel channel, SocketAddress remoteAddress, ByteBuf buf) { List<Position> positions = new LinkedList<>(); @@ -202,7 +202,7 @@ public class Gl200BinaryProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_EVT_CRA = 23; public static final int MSG_EVT_UPC = 34; - private Position decodeEvent(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) { + private Position decodeEvent(Channel channel, SocketAddress remoteAddress, ByteBuf buf) { Position position = new Position(getProtocolName()); @@ -308,7 +308,7 @@ public class Gl200BinaryProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_INF_TMZ = 9; public static final int MSG_INF_GIR = 10; - private Position decodeInformation(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) { + private Position decodeInformation(Channel channel, SocketAddress remoteAddress, ByteBuf buf) { Position position = new Position(getProtocolName()); @@ -385,7 +385,7 @@ public class Gl200BinaryProtocolDecoder extends BaseProtocolDecoder { protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - ChannelBuffer buf = (ChannelBuffer) msg; + ByteBuf buf = (ByteBuf) msg; switch (buf.readBytes(4).toString(StandardCharsets.US_ASCII)) { case "+RSP": diff --git a/src/org/traccar/protocol/Gl200FrameDecoder.java b/src/org/traccar/protocol/Gl200FrameDecoder.java index 960c3779a..bcddb1aff 100644 --- a/src/org/traccar/protocol/Gl200FrameDecoder.java +++ b/src/org/traccar/protocol/Gl200FrameDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2017 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,24 +15,25 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.channel.Channel; -import org.jboss.netty.channel.ChannelHandlerContext; -import org.jboss.netty.handler.codec.frame.FrameDecoder; +import org.traccar.BaseFrameDecoder; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandlerContext; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashSet; import java.util.Set; -public class Gl200FrameDecoder extends FrameDecoder { +public class Gl200FrameDecoder extends BaseFrameDecoder { private static final int MINIMUM_LENGTH = 11; private static final Set<String> BINARY_HEADERS = new HashSet<>( Arrays.asList("+RSP", "+BSP", "+EVT", "+BVT", "+INF", "+BNF", "+HBD", "+CRD", "+BRD")); - public static boolean isBinary(ChannelBuffer buf) { + public static boolean isBinary(ByteBuf buf) { String header = buf.toString(buf.readerIndex(), 4, StandardCharsets.US_ASCII); if (header.equals("+ACK")) { return buf.getByte(buf.readerIndex() + header.length()) != (byte) ':'; @@ -43,7 +44,7 @@ public class Gl200FrameDecoder extends FrameDecoder { @Override protected Object decode( - ChannelHandlerContext ctx, Channel channel, ChannelBuffer buf) throws Exception { + ChannelHandlerContext ctx, Channel channel, ByteBuf buf) throws Exception { if (buf.readableBytes() < MINIMUM_LENGTH) { return null; @@ -83,7 +84,7 @@ public class Gl200FrameDecoder extends FrameDecoder { endIndex = buf.indexOf(buf.readerIndex(), buf.writerIndex(), (byte) 0); } if (endIndex > 0) { - ChannelBuffer frame = buf.readBytes(endIndex - buf.readerIndex()); + ByteBuf frame = buf.readBytes(endIndex - buf.readerIndex()); buf.readByte(); // delimiter return frame; } diff --git a/src/org/traccar/protocol/Gl200Protocol.java b/src/org/traccar/protocol/Gl200Protocol.java index 799d7fe36..15ed00d06 100644 --- a/src/org/traccar/protocol/Gl200Protocol.java +++ b/src/org/traccar/protocol/Gl200Protocol.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 - 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2015 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,14 +15,13 @@ */ package org.traccar.protocol; -import org.jboss.netty.bootstrap.ConnectionlessBootstrap; -import org.jboss.netty.bootstrap.ServerBootstrap; -import org.jboss.netty.channel.ChannelPipeline; -import org.jboss.netty.handler.codec.string.StringEncoder; import org.traccar.BaseProtocol; +import org.traccar.PipelineBuilder; import org.traccar.TrackerServer; import org.traccar.model.Command; +import io.netty.handler.codec.string.StringEncoder; + import java.util.List; public class Gl200Protocol extends BaseProtocol { @@ -39,18 +38,18 @@ public class Gl200Protocol extends BaseProtocol { @Override public void initTrackerServers(List<TrackerServer> serverList) { - serverList.add(new TrackerServer(new ServerBootstrap(), getName()) { + serverList.add(new TrackerServer(false, getName()) { @Override - protected void addSpecificHandlers(ChannelPipeline pipeline) { + protected void addProtocolHandlers(PipelineBuilder pipeline) { pipeline.addLast("frameDecoder", new Gl200FrameDecoder()); pipeline.addLast("stringEncoder", new StringEncoder()); pipeline.addLast("objectEncoder", new Gl200ProtocolEncoder()); pipeline.addLast("objectDecoder", new Gl200ProtocolDecoder(Gl200Protocol.this)); } }); - serverList.add(new TrackerServer(new ConnectionlessBootstrap(), getName()) { + serverList.add(new TrackerServer(true, getName()) { @Override - protected void addSpecificHandlers(ChannelPipeline pipeline) { + protected void addProtocolHandlers(PipelineBuilder pipeline) { pipeline.addLast("stringEncoder", new StringEncoder()); pipeline.addLast("objectEncoder", new Gl200ProtocolEncoder()); pipeline.addLast("objectDecoder", new Gl200ProtocolDecoder(Gl200Protocol.this)); diff --git a/src/org/traccar/protocol/Gl200ProtocolDecoder.java b/src/org/traccar/protocol/Gl200ProtocolDecoder.java index 0de7bb926..8abaa1e37 100644 --- a/src/org/traccar/protocol/Gl200ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gl200ProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2017 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +15,11 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; +import io.netty.buffer.ByteBuf; +import io.netty.channel.Channel; + import java.net.SocketAddress; public class Gl200ProtocolDecoder extends BaseProtocolDecoder { @@ -36,7 +37,7 @@ public class Gl200ProtocolDecoder extends BaseProtocolDecoder { protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - ChannelBuffer buf = (ChannelBuffer) msg; + ByteBuf buf = (ByteBuf) msg; if (Gl200FrameDecoder.isBinary(buf)) { return binaryProtocolDecoder.decode(channel, remoteAddress, msg); diff --git a/src/org/traccar/protocol/Gl200TextProtocolDecoder.java b/src/org/traccar/protocol/Gl200TextProtocolDecoder.java index 1c7fe4688..e6187a002 100644 --- a/src/org/traccar/protocol/Gl200TextProtocolDecoder.java +++ b/src/org/traccar/protocol/Gl200TextProtocolDecoder.java @@ -15,11 +15,10 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.Context; import org.traccar.DeviceSession; +import org.traccar.NetworkMessage; import org.traccar.helper.BitUtil; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; @@ -29,6 +28,9 @@ import org.traccar.model.Network; import org.traccar.model.Position; import org.traccar.model.WifiAccessPoint; +import io.netty.buffer.ByteBuf; +import io.netty.channel.Channel; + import java.net.SocketAddress; import java.nio.charset.StandardCharsets; import java.text.DateFormat; @@ -368,7 +370,8 @@ public class Gl200TextProtocolDecoder extends BaseProtocolDecoder { if (type.equals("HBD")) { if (channel != null) { parser.skip(6); - channel.write("+SACK:GTHBD," + protocolVersion + "," + parser.next() + "$", remoteAddress); + channel.writeAndFlush(new NetworkMessage( + "+SACK:GTHBD," + protocolVersion + "," + parser.next() + "$", remoteAddress)); } } else { Position position = new Position(getProtocolName()); @@ -980,7 +983,7 @@ public class Gl200TextProtocolDecoder extends BaseProtocolDecoder { decodeDeviceTime(position, parser); if (Context.getConfig().getBoolean(getProtocolName() + ".ack") && channel != null) { - channel.write("+SACK:" + parser.next() + "$", remoteAddress); + channel.writeAndFlush(new NetworkMessage("+SACK:" + parser.next() + "$", remoteAddress)); } return position; @@ -1060,7 +1063,7 @@ public class Gl200TextProtocolDecoder extends BaseProtocolDecoder { protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - String sentence = ((ChannelBuffer) msg).toString(StandardCharsets.US_ASCII); + String sentence = ((ByteBuf) msg).toString(StandardCharsets.US_ASCII); int typeIndex = sentence.indexOf(":GT"); if (typeIndex < 0) { diff --git a/src/org/traccar/protocol/TeltonikaFrameDecoder.java b/src/org/traccar/protocol/TeltonikaFrameDecoder.java index e7313b722..ffdf2a3c1 100644 --- a/src/org/traccar/protocol/TeltonikaFrameDecoder.java +++ b/src/org/traccar/protocol/TeltonikaFrameDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 Anton Tananaev (anton@traccar.org) + * Copyright 2013 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,12 +15,13 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.channel.Channel; -import org.jboss.netty.channel.ChannelHandlerContext; -import org.jboss.netty.handler.codec.frame.FrameDecoder; +import org.traccar.BaseFrameDecoder; -public class TeltonikaFrameDecoder extends FrameDecoder { +import io.netty.buffer.ByteBuf; +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandlerContext; + +public class TeltonikaFrameDecoder extends BaseFrameDecoder { private static final int MESSAGE_MINIMUM_LENGTH = 12; @@ -28,7 +29,7 @@ public class TeltonikaFrameDecoder extends FrameDecoder { protected Object decode( ChannelHandlerContext ctx, Channel channel, - ChannelBuffer buf) throws Exception { + ByteBuf buf) throws Exception { // Check minimum length if (buf.readableBytes() < MESSAGE_MINIMUM_LENGTH) { diff --git a/src/org/traccar/protocol/TeltonikaProtocol.java b/src/org/traccar/protocol/TeltonikaProtocol.java index d0177da97..d5e10de03 100644 --- a/src/org/traccar/protocol/TeltonikaProtocol.java +++ b/src/org/traccar/protocol/TeltonikaProtocol.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 - 2016 Anton Tananaev (anton@traccar.org) + * Copyright 2015 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +15,8 @@ */ package org.traccar.protocol; -import org.jboss.netty.bootstrap.ConnectionlessBootstrap; -import org.jboss.netty.bootstrap.ServerBootstrap; -import org.jboss.netty.channel.ChannelPipeline; import org.traccar.BaseProtocol; +import org.traccar.PipelineBuilder; import org.traccar.TrackerServer; import org.traccar.model.Command; @@ -34,17 +32,17 @@ public class TeltonikaProtocol extends BaseProtocol { @Override public void initTrackerServers(List<TrackerServer> serverList) { - serverList.add(new TrackerServer(new ServerBootstrap(), getName()) { + serverList.add(new TrackerServer(false, getName()) { @Override - protected void addSpecificHandlers(ChannelPipeline pipeline) { + protected void addProtocolHandlers(PipelineBuilder pipeline) { pipeline.addLast("frameDecoder", new TeltonikaFrameDecoder()); pipeline.addLast("objectEncoder", new TeltonikaProtocolEncoder()); pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(TeltonikaProtocol.this, false)); } }); - serverList.add(new TrackerServer(new ConnectionlessBootstrap(), getName()) { + serverList.add(new TrackerServer(true, getName()) { @Override - protected void addSpecificHandlers(ChannelPipeline pipeline) { + protected void addProtocolHandlers(PipelineBuilder pipeline) { pipeline.addLast("objectEncoder", new TeltonikaProtocolEncoder()); pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(TeltonikaProtocol.this, true)); } diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java index 230db5dde..ac51239db 100644 --- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java +++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java @@ -15,12 +15,14 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.buffer.ChannelBuffers; -import org.jboss.netty.channel.Channel; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.buffer.Unpooled; +import io.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.Context; import org.traccar.DeviceSession; +import org.traccar.NetworkMessage; import org.traccar.helper.BitUtil; import org.traccar.helper.UnitsConverter; import org.traccar.model.CellTower; @@ -48,20 +50,20 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { this.extended = Context.getConfig().getBoolean(getProtocolName() + ".extended"); } - private DeviceSession parseIdentification(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) { + private DeviceSession parseIdentification(Channel channel, SocketAddress remoteAddress, ByteBuf buf) { int length = buf.readUnsignedShort(); String imei = buf.toString(buf.readerIndex(), length, StandardCharsets.US_ASCII); DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, imei); if (channel != null) { - ChannelBuffer response = ChannelBuffers.directBuffer(1); + ByteBuf response = Unpooled.directBuffer(1); if (deviceSession != null) { response.writeByte(1); } else { response.writeByte(0); } - channel.write(response); + channel.writeAndFlush(new NetworkMessage(response, remoteAddress)); } return deviceSession; } @@ -71,7 +73,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { public static final int CODEC_12 = 0x0C; public static final int CODEC_16 = 0x10; - private void decodeSerial(Position position, ChannelBuffer buf) { + private void decodeSerial(Position position, ByteBuf buf) { getLastLocation(position, null); @@ -81,7 +83,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } - private long readValue(ChannelBuffer buf, int length, boolean signed) { + private long readValue(ByteBuf buf, int length, boolean signed) { switch (length) { case 1: return signed ? buf.readByte() : buf.readUnsignedByte(); @@ -94,7 +96,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } } - private void decodeOtherParameter(Position position, int id, ChannelBuffer buf, int length) { + private void decodeOtherParameter(Position position, int id, ByteBuf buf, int length) { switch (id) { case 1: case 2: @@ -201,7 +203,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } } - private void decodeGh3000Parameter(Position position, int id, ChannelBuffer buf, int length) { + private void decodeGh3000Parameter(Position position, int id, ByteBuf buf, int length) { switch (id) { case 1: position.set(Position.KEY_BATTERY_LEVEL, readValue(buf, length, false)); @@ -244,7 +246,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } } - private void decodeParameter(Position position, int id, ChannelBuffer buf, int length, int codec) { + private void decodeParameter(Position position, int id, ByteBuf buf, int length, int codec) { if (codec == CODEC_GH3000) { decodeGh3000Parameter(position, id, buf, length); } else { @@ -265,7 +267,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } } - private void decodeLocation(Position position, ChannelBuffer buf, int codec) { + private void decodeLocation(Position position, ByteBuf buf, int codec) { int globalMask = 0x0f; @@ -392,7 +394,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { if (extended) { int cnt = buf.readUnsignedByte(); for (int j = 0; j < cnt; j++) { - position.set(Position.PREFIX_IO + buf.readUnsignedByte(), ChannelBuffers.hexDump(buf.readBytes(16))); + position.set(Position.PREFIX_IO + buf.readUnsignedByte(), ByteBufUtil.hexDump(buf.readBytes(16))); } } @@ -401,7 +403,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } private List<Position> parseData( - Channel channel, SocketAddress remoteAddress, ChannelBuffer buf, int locationPacketId, String... imei) { + Channel channel, SocketAddress remoteAddress, ByteBuf buf, int locationPacketId, String... imei) { List<Position> positions = new LinkedList<>(); if (!connectionless) { @@ -433,17 +435,17 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { if (channel != null) { if (connectionless) { - ChannelBuffer response = ChannelBuffers.dynamicBuffer(); + ByteBuf response = Unpooled.buffer(); response.writeShort(5); response.writeShort(0); response.writeByte(0x01); response.writeByte(locationPacketId); response.writeByte(count); - channel.write(response, remoteAddress); + channel.writeAndFlush(new NetworkMessage(response, remoteAddress)); } else { - ChannelBuffer response = ChannelBuffers.dynamicBuffer(); + ByteBuf response = Unpooled.buffer(); response.writeInt(count); - channel.write(response); + channel.writeAndFlush(new NetworkMessage(response, remoteAddress)); } } @@ -453,7 +455,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { @Override protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - ChannelBuffer buf = (ChannelBuffer) msg; + ByteBuf buf = (ByteBuf) msg; if (connectionless) { return decodeUdp(channel, remoteAddress, buf); @@ -462,7 +464,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { } } - private Object decodeTcp(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) throws Exception { + private Object decodeTcp(Channel channel, SocketAddress remoteAddress, ByteBuf buf) throws Exception { if (buf.getUnsignedShort(0) > 0) { parseIdentification(channel, remoteAddress, buf); @@ -474,7 +476,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { return null; } - private Object decodeUdp(Channel channel, SocketAddress remoteAddress, ChannelBuffer buf) throws Exception { + private Object decodeUdp(Channel channel, SocketAddress remoteAddress, ByteBuf buf) throws Exception { buf.readUnsignedShort(); // length buf.readUnsignedShort(); // packet id diff --git a/src/org/traccar/protocol/TeltonikaProtocolEncoder.java b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java index fd6eae744..f2680c27c 100644 --- a/src/org/traccar/protocol/TeltonikaProtocolEncoder.java +++ b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Anton Tananaev (anton@traccar.org) + * Copyright 2016 - 2018 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,20 +15,21 @@ */ package org.traccar.protocol; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.buffer.ChannelBuffers; import org.traccar.BaseProtocolEncoder; import org.traccar.helper.Checksum; import org.traccar.helper.Log; import org.traccar.model.Command; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.nio.charset.StandardCharsets; public class TeltonikaProtocolEncoder extends BaseProtocolEncoder { - private ChannelBuffer encodeContent(String content) { + private ByteBuf encodeContent(String content) { - ChannelBuffer buf = ChannelBuffers.dynamicBuffer(); + ByteBuf buf = Unpooled.buffer(); buf.writeInt(0); buf.writeInt(content.length() + 10); @@ -40,7 +41,7 @@ public class TeltonikaProtocolEncoder extends BaseProtocolEncoder { buf.writeByte('\r'); buf.writeByte('\n'); buf.writeByte(1); // quantity - buf.writeInt(Checksum.crc16(Checksum.CRC16_IBM, buf.toByteBuffer(8, buf.writerIndex() - 8))); + buf.writeInt(Checksum.crc16(Checksum.CRC16_IBM, buf.nioBuffer(8, buf.writerIndex() - 8))); return buf; } |