From 7e121784cc9fc79d058f2bdc5bd631a027e7c455 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 28 Apr 2018 10:07:46 +1200 Subject: Atrack always send ack --- src/org/traccar/protocol/AtrackProtocolDecoder.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/org/traccar/protocol/AtrackProtocolDecoder.java') diff --git a/src/org/traccar/protocol/AtrackProtocolDecoder.java b/src/org/traccar/protocol/AtrackProtocolDecoder.java index ac208c0f2..b0f094103 100644 --- a/src/org/traccar/protocol/AtrackProtocolDecoder.java +++ b/src/org/traccar/protocol/AtrackProtocolDecoder.java @@ -21,6 +21,7 @@ import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.Context; import org.traccar.DeviceSession; +import org.traccar.helper.DataConverter; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; @@ -410,16 +411,21 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { return positions; } + private void sendResponse(Channel channel, SocketAddress remoteAddress) { + if (channel != null) { + channel.write(ChannelBuffers.wrappedBuffer(DataConverter.parseHex("fe02")), remoteAddress); + } + } + @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { ChannelBuffer buf = (ChannelBuffer) msg; + sendResponse(channel, remoteAddress); + if (buf.getUnsignedShort(buf.readerIndex()) == 0xfe02) { - if (channel != null) { - channel.write(buf, remoteAddress); // keep-alive message - } return null; } else if (buf.getByte(buf.readerIndex()) == '$') { return decodeInfo(channel, remoteAddress, buf.toString(StandardCharsets.US_ASCII).trim()); -- cgit v1.2.3