diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2017-05-29 22:36:43 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2017-05-29 22:37:01 +1200 |
commit | 12655eb631003dee98b5392686400ea871d9d2ed (patch) | |
tree | a16719228479b464913dbdde2acbd053e2de5fdf /src/org/traccar/protocol/Gps056FrameDecoder.java | |
parent | 6d34331b2de7515bf8a448a8224992409e988a67 (diff) | |
download | trackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.tar.gz trackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.tar.bz2 trackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.zip |
Fix GPS 056 frame decoder
Diffstat (limited to 'src/org/traccar/protocol/Gps056FrameDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/Gps056FrameDecoder.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/Gps056FrameDecoder.java b/src/org/traccar/protocol/Gps056FrameDecoder.java index 7adfddd07..4ce83dc0a 100644 --- a/src/org/traccar/protocol/Gps056FrameDecoder.java +++ b/src/org/traccar/protocol/Gps056FrameDecoder.java @@ -33,7 +33,11 @@ public class Gps056FrameDecoder extends FrameDecoder { if (buf.readableBytes() >= MESSAGE_HEADER) { int length = Integer.parseInt(buf.toString(2, 2, StandardCharsets.US_ASCII)) + 5; if (buf.readableBytes() >= length) { - return buf.readBytes(length); + ChannelBuffer frame = buf.readBytes(length); + while (buf.readable() && buf.getUnsignedByte(buf.readerIndex()) != '$') { + buf.readByte(); + } + return frame; } } |