diff options
Diffstat (limited to 'src/org/traccar/protocol/WristbandProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/WristbandProtocolDecoder.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/WristbandProtocolDecoder.java b/src/org/traccar/protocol/WristbandProtocolDecoder.java index a19dcad31..3b1c6c2d4 100644 --- a/src/org/traccar/protocol/WristbandProtocolDecoder.java +++ b/src/org/traccar/protocol/WristbandProtocolDecoder.java @@ -16,6 +16,7 @@ package org.traccar.protocol; import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.DeviceSession; @@ -46,7 +47,16 @@ public class WristbandProtocolDecoder extends BaseProtocolDecoder { if (channel != null) { String sentence = String.format("YX%s|%s|0|{F%d#%s}\r\n", imei, version, type, data); - channel.writeAndFlush(new NetworkMessage(sentence, channel.remoteAddress())); + ByteBuf response = Unpooled.buffer(); + if (type != 91) { + response.writeBytes(new byte[]{0x00, 0x01, 0x02}); + response.writeShort(sentence.length()); + } + response.writeCharSequence(sentence, StandardCharsets.US_ASCII); + if (type != 91) { + response.writeBytes(new byte[]{(byte) 0xFF, (byte) 0xFE, (byte) 0xFC}); + } + channel.writeAndFlush(new NetworkMessage(response, channel.remoteAddress())); } } |