diff options
Diffstat (limited to 'src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java')
-rw-r--r-- | src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java b/src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java index ee2adde6d..6dc299c7a 100644 --- a/src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java +++ b/src/main/java/org/traccar/protocol/CellocatorFrameDecoder.java @@ -35,28 +35,20 @@ public class CellocatorFrameDecoder extends BaseFrameDecoder { int length = 0; int type = buf.getUnsignedByte(4); switch (type) { - case CellocatorProtocolDecoder.MSG_CLIENT_STATUS: - length = 70; - break; - case CellocatorProtocolDecoder.MSG_CLIENT_PROGRAMMING: - length = 31; - break; - case CellocatorProtocolDecoder.MSG_CLIENT_SERIAL_LOG: - length = 70; - break; - case CellocatorProtocolDecoder.MSG_CLIENT_SERIAL: + case CellocatorProtocolDecoder.MSG_CLIENT_STATUS -> length = 70; + case CellocatorProtocolDecoder.MSG_CLIENT_PROGRAMMING -> length = 31; + case CellocatorProtocolDecoder.MSG_CLIENT_SERIAL_LOG -> length = 70; + case CellocatorProtocolDecoder.MSG_CLIENT_SERIAL -> { if (buf.readableBytes() >= 19) { length = 19 + buf.getUnsignedShortLE(buf.readerIndex() + 16); } - break; - case CellocatorProtocolDecoder.MSG_CLIENT_MODULAR: + } + case CellocatorProtocolDecoder.MSG_CLIENT_MODULAR -> { length = 15 + buf.getUnsignedByte(buf.readerIndex() + 13); - break; - case CellocatorProtocolDecoder.MSG_CLIENT_MODULAR_EXT: + } + case CellocatorProtocolDecoder.MSG_CLIENT_MODULAR_EXT -> { length = 16 + buf.getUnsignedShortLE(buf.readerIndex() + 13); - break; - default: - break; + } } if (length > 0 && buf.readableBytes() >= length) { |