aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-05-29 22:36:43 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2017-05-29 22:37:01 +1200
commit12655eb631003dee98b5392686400ea871d9d2ed (patch)
treea16719228479b464913dbdde2acbd053e2de5fdf /src/org
parent6d34331b2de7515bf8a448a8224992409e988a67 (diff)
downloadtrackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.tar.gz
trackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.tar.bz2
trackermap-server-12655eb631003dee98b5392686400ea871d9d2ed.zip
Fix GPS 056 frame decoder
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/protocol/Gps056FrameDecoder.java6
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;
}
}