aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/protocol/ST210ProtocolDecoder.java15
-rwxr-xr-xtest.sh3
-rw-r--r--test/org/traccar/protocol/ST210ProtocolDecoderTest.java5
3 files changed, 19 insertions, 4 deletions
diff --git a/src/org/traccar/protocol/ST210ProtocolDecoder.java b/src/org/traccar/protocol/ST210ProtocolDecoder.java
index 983e9c6f4..2f9bcd863 100644
--- a/src/org/traccar/protocol/ST210ProtocolDecoder.java
+++ b/src/org/traccar/protocol/ST210ProtocolDecoder.java
@@ -23,8 +23,7 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
}
private enum ST210FIELDS {
- HDR_STATUS("SA200STT;",
- "Status Report"),
+ HDR_STATUS("SA200STT;","Status Report"),
HDR_EMERGENCY("SA200EMG;","Emergency Report"),
HDR_EVENT("SA200EVT;", "Event Report"),
HDR_ALERT("SA200ALT;","Alert Report"),
@@ -44,8 +43,8 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
PWR_VOLT("(\\d+.\\d{2});","Voltage value of main power"),
IO("(\\d+);","Current I/O status of inputs and outputs."),
MODE("(\\d);","1 = Idle mode (Parking)\n" + "2 = Active Mode (Driving)"),
- MSG_NUM("(\\d{4})","Message number - After 9999 is reported, message number returns to 0000"),
- EMG_ID("(\\d)", "Emergency type"),
+ MSG_NUM("(\\d{4});","Message number - After 9999 is reported, message number returns to 0000"),
+ EMG_ID("(\\d);", "Emergency type"),
EVT_ID("(\\d);", "Event type"),
ALERT_ID("(\\d);", "Alert type");
@@ -488,6 +487,10 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
patternStr += field.getPattern();
}
+ if(patternStr.endsWith(";")){
+ patternStr = patternStr.substring(0, patternStr.length()-1);
+ }
+
return Pattern.compile(patternStr);
}
@@ -631,6 +634,10 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
throw new Exception("Pattern no match: " + protocolPattern.toString());
}
+ if(report.equals(ST210REPORTS.ALIVE)){
+ return null;
+ }
+
// Create new position
Position position = new Position();
diff --git a/test.sh b/test.sh
index 03c1af4fe..66d4535eb 100755
--- a/test.sh
+++ b/test.sh
@@ -43,3 +43,6 @@ echo "10. st210"
echo "11. st210emg"
(echo -n -e "SA200EMG;317652;042;20120718;15:35:41;16d41;-15.618740;-056.083252;000.034;000.00;8;1;41548;12.17;110000;1\r";) | nc -v localhost 8801
+
+echo "12. st210alv"
+(echo -n -e "SA200ALV;317652\r";) | nc -v localhost 8801
diff --git a/test/org/traccar/protocol/ST210ProtocolDecoderTest.java b/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
index bc2e6e21e..403b5621a 100644
--- a/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
@@ -1,6 +1,7 @@
package org.traccar.protocol;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import org.junit.Test;
@@ -36,6 +37,10 @@ public class ST210ProtocolDecoderTest {
.decode(null,
null,
"SA200EMG;317652;042;20120718;15:35:41;16d41;-15.618740;-056.083252;000.034;000.00;8;1;41548;12.17;110000;1"));
+ assertNull(decoder
+ .decode(null,
+ null,
+ "SA200ALV;317652"));
}
}