aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-01-22 23:52:41 -0800
committerAnton Tananaev <anton.tananaev@gmail.com>2020-01-22 23:52:41 -0800
commiteb2697434dbbb8c12cad26df94e3a367880ac4db (patch)
tree2fd2f504c7542091c858f3fc560c19c91194e321
parentcdbb912a1552d2e8eb6590dbffb6799ee187b50b (diff)
downloadtraccar-server-eb2697434dbbb8c12cad26df94e3a367880ac4db.tar.gz
traccar-server-eb2697434dbbb8c12cad26df94e3a367880ac4db.tar.bz2
traccar-server-eb2697434dbbb8c12cad26df94e3a367880ac4db.zip
Fix frame decoding issues
-rw-r--r--src/main/java/org/traccar/protocol/OmnicommFrameDecoder.java4
-rw-r--r--src/test/java/org/traccar/protocol/OmnicommFrameDecoderTest.java4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/protocol/OmnicommFrameDecoder.java b/src/main/java/org/traccar/protocol/OmnicommFrameDecoder.java
index 1caf6ceb9..314f19757 100644
--- a/src/main/java/org/traccar/protocol/OmnicommFrameDecoder.java
+++ b/src/main/java/org/traccar/protocol/OmnicommFrameDecoder.java
@@ -27,11 +27,11 @@ public class OmnicommFrameDecoder extends BaseFrameDecoder {
protected Object decode(
ChannelHandlerContext ctx, Channel channel, ByteBuf buf) throws Exception {
- if (buf.readableBytes() < 10) {
+ if (buf.readableBytes() < 6) {
return null;
}
- int endIndex = buf.getUnsignedShortLE(2) + buf.readerIndex() + 6;
+ int endIndex = buf.getUnsignedShortLE(buf.readerIndex() + 2) + buf.readerIndex() + 6;
if (buf.writerIndex() < endIndex) {
return null;
}
diff --git a/src/test/java/org/traccar/protocol/OmnicommFrameDecoderTest.java b/src/test/java/org/traccar/protocol/OmnicommFrameDecoderTest.java
index 06c6e24eb..ae21de107 100644
--- a/src/test/java/org/traccar/protocol/OmnicommFrameDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/OmnicommFrameDecoderTest.java
@@ -11,6 +11,10 @@ public class OmnicommFrameDecoderTest extends ProtocolTest {
OmnicommFrameDecoder decoder = new OmnicommFrameDecoder();
verifyFrame(
+ binary("c08600004566"),
+ decoder.decode(null, null, binary("c08600004566")));
+
+ verifyFrame(
binary("c080080061a61915340100001dec"),
decoder.decode(null, null, binary("c080080061a61915340100001dec")));