aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-05-18 18:36:43 -0700
committerAnton Tananaev <anton@traccar.org>2022-05-18 18:36:43 -0700
commit68a1b67be1c7fe9b22805a8d4c1e7a4c7d0bf2ed (patch)
treeb9dfcfea8471759a62027bc67ffb574ffc8fa763
parent433816109a02622145ff5ead295d3aff5bafaacd (diff)
downloadtrackermap-server-68a1b67be1c7fe9b22805a8d4c1e7a4c7d0bf2ed.tar.gz
trackermap-server-68a1b67be1c7fe9b22805a8d4c1e7a4c7d0bf2ed.tar.bz2
trackermap-server-68a1b67be1c7fe9b22805a8d4c1e7a4c7d0bf2ed.zip
Handle Ruptela identification
-rw-r--r--src/main/java/org/traccar/protocol/RuptelaProtocolDecoder.java15
-rw-r--r--src/test/java/org/traccar/protocol/RuptelaProtocolDecoderTest.java3
2 files changed, 17 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/protocol/RuptelaProtocolDecoder.java b/src/main/java/org/traccar/protocol/RuptelaProtocolDecoder.java
index 2812d22ff..5a0383358 100644
--- a/src/main/java/org/traccar/protocol/RuptelaProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/RuptelaProtocolDecoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2013 - 2021 Anton Tananaev (anton@traccar.org)
+ * Copyright 2013 - 2022 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,6 +50,7 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
public static final int MSG_SMS_VIA_GPRS_RESPONSE = 7;
public static final int MSG_SMS_VIA_GPRS = 8;
public static final int MSG_DTCS = 9;
+ public static final int MSG_IDENTIFICATION = 15;
public static final int MSG_SET_IO = 17;
public static final int MSG_FILES = 37;
public static final int MSG_EXTENDED_RECORDS = 68;
@@ -306,6 +307,18 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
return null;
+ } else if (type == MSG_IDENTIFICATION) {
+
+ ByteBuf content = Unpooled.buffer();
+ content.writeByte(1);
+ ByteBuf response = RuptelaProtocolEncoder.encodeContent(type, content);
+ content.release();
+ if (channel != null) {
+ channel.writeAndFlush(new NetworkMessage(response, remoteAddress));
+ }
+
+ return null;
+
} else {
return decodeCommandResponse(deviceSession, type, buf);
diff --git a/src/test/java/org/traccar/protocol/RuptelaProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/RuptelaProtocolDecoderTest.java
index 64ac6a57e..eca7518a7 100644
--- a/src/test/java/org/traccar/protocol/RuptelaProtocolDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/RuptelaProtocolDecoderTest.java
@@ -10,6 +10,9 @@ public class RuptelaProtocolDecoderTest extends ProtocolTest {
var decoder = new RuptelaProtocolDecoder(null);
+ verifyNull(decoder, binary(
+ "002e000316d53d58d6020f4573303430302e30332e36382e30340000c2b3090d0e950000827b000003e80000003c003c1681"));
+
verifyPositions(decoder, binary(
"00800003167d765c155d01000160cd0a310000faae43f7176ee45702332b0c12000006070d05007300cfff260082008600870088000f00d7021100d801c900061d0000c500001e0e988300008900008b000002d0000c9bca720c889a0b047e00000000000000007f0000000000000000800000000000000000810000000000000000a341"));