aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/protocol/Tk102ProtocolDecoder.java8
-rw-r--r--test/org/traccar/protocol/Tk102ProtocolDecoderTest.java9
2 files changed, 13 insertions, 4 deletions
diff --git a/src/org/traccar/protocol/Tk102ProtocolDecoder.java b/src/org/traccar/protocol/Tk102ProtocolDecoder.java
index fd760e795..d7226980e 100644
--- a/src/org/traccar/protocol/Tk102ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tk102ProtocolDecoder.java
@@ -36,16 +36,16 @@ public class Tk102ProtocolDecoder extends BaseProtocolDecoder {
}
static private Pattern pattern = Pattern.compile(
- "\\[\\=\\d{10}.\\(.{3}" +
+ "\\[.\\d{10}.\\(\\p{Upper}+" +
"(\\d{2})(\\d{2})(\\d{2})" + // Time (HHMMSS)
"([AV])" + // Validity
"(\\d{2})(\\d{2}\\.\\d{4})" + // Latitude (DDMM.MMMM)
"([NS])" +
"(\\d{3})(\\d{2}\\.\\d{4})" + // Longitude (DDDMM.MMMM)
"([EW])" +
- "(\\d{3}\\.\\d{3})" + // Speed
+ "(\\d{3}\\.\\d{3})" + // Speed
"(\\d{2})(\\d{2})(\\d{2})" + // Date (DDMMYY)
- ".+");
+ "\\d+\\)");
@Override
protected Object decode(
@@ -65,7 +65,7 @@ public class Tk102ProtocolDecoder extends BaseProtocolDecoder {
}
// Parse message
- else if (sentence.startsWith("[=") && deviceId != null) {
+ else if (deviceId != null) {
// Parse message
Matcher parser = pattern.matcher(sentence);
diff --git a/test/org/traccar/protocol/Tk102ProtocolDecoderTest.java b/test/org/traccar/protocol/Tk102ProtocolDecoderTest.java
index 09ac5ed64..11b01323c 100644
--- a/test/org/traccar/protocol/Tk102ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Tk102ProtocolDecoderTest.java
@@ -16,15 +16,24 @@ public class Tk102ProtocolDecoderTest {
assertNull(decoder.decode(null, null,
"[!0000000081r(353327023367238,TK102-W998_01_V1.1.001_130219,255,001,255,001,0,100,100,0,internet,0000,0000,0,0,255,0,4,1,11,00)"));
+
+ assertNull(decoder.decode(null, null,
+ "[L0000001323N(GSM,0,0,07410001,20120101162600,404,010,9261,130,0,2353,130,35,9263,130,33,1)"));
assertNull(decoder.decode(null, null,
"[%0000000082\u001d(100100000000000600-30-65535)"));
+ assertNull(decoder.decode(null, null,
+ "[#0000000004\u0018(062100000000000600-0-0)"));
+
assertNotNull(decoder.decode(null, null,
"[=00000000836(ITV013939A4913.8317N02824.9241E000.90018031310010000)"));
assertNotNull(decoder.decode(null, null,
"[=00000000366(ITV012209A4913.8281N02824.9258E000.32018031310010000)"));
+
+ assertNotNull(decoder.decode(null, null,
+ "[;00000000106(ONE200834A5952.8114N01046.0832E003.93212071305010000)"));
}