GL200 protocol error in GV55W device

Cristian7 months ago

I receive the following error from a Queclink GV55W device

2024-09-20 23:17:17  INFO: [T766a70e4: gl200 < 191.125.160.88] +RESP:GTIGF,500101,86857***0393782,,0,0,,,,,,,0730,0002,A08F,872B36,00,,0.0,20240921021804,E3B1$
2024-09-20 23:17:17  INFO: [T766a70e4] error -
java.lang.NumberFormatException: empty String
        at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
        at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.base/java.lang.Double.parseDouble(Double.java:792)
        at org.traccar.protocol.Gl200TextProtocolDecoder.decodeIgn(Gl200TextProtocolDecoder.java:1050)
        at org.traccar.protocol.Gl200TextProtocolDecoder.decode(Gl200TextProtocolDecoder.java:1620)
        at org.traccar.protocol.Gl200ProtocolDecoder.decode(Gl200ProtocolDecoder.java:54)
        at org.traccar.ExtendedObjectDecoder.channelRead(ExtendedObjectDecoder.java:73)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at org.traccar.WrapperContext.fireChannelRead(WrapperContext.java:102)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
        at org.traccar.WrapperInboundHandler.channelRead(WrapperInboundHandler.java:56)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
        at org.traccar.handler.network.StandardLoggingHandler.channelRead(StandardLoggingHandler.java:62)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at org.traccar.handler.network.NetworkMessageHandler.channelRead(NetworkMessageHandler.java:36)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:1583)

2024-09-20 23:17:17  INFO: [T766a70e4] disconnected
2024-09-20 23:17:17  INFO: Event id: 86857***0393782, time: 2024-09-20 23:17:17, type: deviceOffline, notifications: 0

I am trying to understand what it is about but to no avail. I tried to relate the received data to the protocol, but I don't understand the protocol code in Gl200TextProtocolDecoder to determine why the error occurs.

Captura de pantalla 2024-09-21 a la(s) 12.42.23 a. m..png

Captura de pantalla 2024-09-21 a la(s) 12.42.46 a. m..png

Captura de pantalla 2024-09-21 a la(s) 12.42.56 a. m..png

Anton Tananaev7 months ago
  1. What version of Traccar are you using?
  2. Can you provide full protocol documentation?
Cristian7 months ago
Anton Tananaev7 months ago
Cristian7 months ago

Excellent, thank you Anton