aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/protocol/Ev603ProtocolDecoder.java15
-rw-r--r--test/org/traccar/protocol/Ev603ProtocolDecoderTest.java11
2 files changed, 19 insertions, 7 deletions
diff --git a/src/org/traccar/protocol/Ev603ProtocolDecoder.java b/src/org/traccar/protocol/Ev603ProtocolDecoder.java
index 36a08f394..8686088cb 100644
--- a/src/org/traccar/protocol/Ev603ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Ev603ProtocolDecoder.java
@@ -34,13 +34,13 @@ public class Ev603ProtocolDecoder extends BaseProtocolDecoder{
}
private static final Pattern pattern = Pattern.compile(
- "!A," + // Type
+ "!.," + // Type
"(\\d{2})\\/(\\d{2})\\/(\\d{2})," + // Date dd/mm/YY
"(\\d{2}):(\\d{2}):(\\d{2})," + // Time hh:mm:ss
- "(-?\\d+\\.\\d+)," + // Latitude (DDMM.MMMM)
- "(-?\\d+\\.\\d+)," + // Longitude (DDDMM.MMMM)
- "(\\d+\\.\\d+)," + // Speed
- "(\\d+\\.?\\d+)," + // Course
+ "(-?\\d+\\.\\d+)," + // Latitude
+ "(-?\\d+\\.\\d+)," + // Longitude
+ "(\\d+\\.?\\d*)," + // Speed
+ "(\\d+\\.?\\d*)," + // Course
".*");
@Override
@@ -52,10 +52,11 @@ public class Ev603ProtocolDecoder extends BaseProtocolDecoder{
// Detect device ID
if (sentence.startsWith("!1,")) {
+
identify(sentence.substring(3), channel);
- }
- else if (sentence.startsWith("!A,")) {
+ } else {
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!hasDeviceId() || !parser.matches()) {
diff --git a/test/org/traccar/protocol/Ev603ProtocolDecoderTest.java b/test/org/traccar/protocol/Ev603ProtocolDecoderTest.java
index 71550cee0..e116fff39 100644
--- a/test/org/traccar/protocol/Ev603ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Ev603ProtocolDecoderTest.java
@@ -16,12 +16,23 @@ public class Ev603ProtocolDecoderTest extends ProtocolDecoderTest {
assertNull(decoder.decode(null, null, "!5,17,V"));
+ assertNull(decoder.decode(null, null, "!1,860719027585011"));
+
verify(decoder.decode(null, null,
"!A,26/10/12,00:28:41,7.770385,-72.215706,0.0,25101,0"));
verify(decoder.decode(null, null,
"!A,01/12/10,13:25:35,22.641724,114.023666,000.1,281.6,0"));
+ verify(decoder.decode(null, null,
+ "!D,08/07/15,04:01:32,40.428257,-3.704808,0,0,170001,701.7,22,5,14,0"));
+
+ verify(decoder.decode(null, null,
+ "!D,08/07/15,04:55:13,40.428257,-3.704932,0,0,180001,680.0,8,8,13,0"));
+
+ verify(decoder.decode(null, null,
+ "!D,08/07/15,02:01:32,40.428230,-3.704950,4,170,170001,682.7,43,6,13,0"));
+
}
}