diff options
Diffstat (limited to 'src/main/java/org/traccar/protocol/Gl200FrameDecoder.java')
-rw-r--r-- | src/main/java/org/traccar/protocol/Gl200FrameDecoder.java | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/main/java/org/traccar/protocol/Gl200FrameDecoder.java b/src/main/java/org/traccar/protocol/Gl200FrameDecoder.java index 4ce243425..b011ede8b 100644 --- a/src/main/java/org/traccar/protocol/Gl200FrameDecoder.java +++ b/src/main/java/org/traccar/protocol/Gl200FrameDecoder.java @@ -52,27 +52,13 @@ public class Gl200FrameDecoder extends BaseFrameDecoder { if (isBinary(buf)) { - int length; - switch (buf.toString(buf.readerIndex(), 4, StandardCharsets.US_ASCII)) { - case "+ACK": - length = buf.getUnsignedByte(buf.readerIndex() + 6); - break; - case "+INF": - case "+BNF": - length = buf.getUnsignedShort(buf.readerIndex() + 7); - break; - case "+HBD": - length = buf.getUnsignedByte(buf.readerIndex() + 5); - break; - case "+CRD": - case "+BRD": - case "+LGN": - length = buf.getUnsignedShort(buf.readerIndex() + 6); - break; - default: - length = buf.getUnsignedShort(buf.readerIndex() + 9); - break; - } + int length = switch (buf.toString(buf.readerIndex(), 4, StandardCharsets.US_ASCII)) { + case "+ACK" -> buf.getUnsignedByte(buf.readerIndex() + 6); + case "+INF", "+BNF" -> buf.getUnsignedShort(buf.readerIndex() + 7); + case "+HBD" -> buf.getUnsignedByte(buf.readerIndex() + 5); + case "+CRD", "+BRD", "+LGN" -> buf.getUnsignedShort(buf.readerIndex() + 6); + default -> buf.getUnsignedShort(buf.readerIndex() + 9); + }; if (buf.readableBytes() >= length) { return buf.readRetainedSlice(length); |