aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/protocol/SuntechProtocolDecoder.java10
-rw-r--r--test/org/traccar/protocol/SuntechProtocolDecoderTest.java3
2 files changed, 9 insertions, 4 deletions
diff --git a/src/org/traccar/protocol/SuntechProtocolDecoder.java b/src/org/traccar/protocol/SuntechProtocolDecoder.java
index 93c53d2cf..ec764774d 100644
--- a/src/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -109,7 +109,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
return position;
}
- private Position decode23(
+ private Position decode235(
Channel channel, SocketAddress remoteAddress, String protocol, String[] values) throws ParseException {
int index = 0;
@@ -132,7 +132,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
}
position.setDeviceId(deviceSession.getDeviceId());
- if (protocol.equals("ST300")) {
+ if (protocol.equals("ST300") || protocol.equals("ST500")) {
index += 1; // model
}
@@ -142,7 +142,9 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
position.setTime(dateFormat.parse(values[index++] + values[index++]));
- index += 1; // cell
+ if (!protocol.equals("ST500")) {
+ index += 1; // cell
+ }
position.setLatitude(Double.parseDouble(values[index++]));
position.setLongitude(Double.parseDouble(values[index++]));
@@ -220,7 +222,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
if (protocol.equals("ST910")) {
return decode9(channel, remoteAddress, values);
} else {
- return decode23(channel, remoteAddress, protocol, values);
+ return decode235(channel, remoteAddress, protocol, values);
}
}
diff --git a/test/org/traccar/protocol/SuntechProtocolDecoderTest.java b/test/org/traccar/protocol/SuntechProtocolDecoderTest.java
index bb0710340..d46ca3d34 100644
--- a/test/org/traccar/protocol/SuntechProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/SuntechProtocolDecoderTest.java
@@ -31,6 +31,9 @@ public class SuntechProtocolDecoderTest extends ProtocolTest {
SuntechProtocolDecoder decoder = new SuntechProtocolDecoder(new SuntechProtocol());
verifyPosition(decoder, text(
+ "ST500STT;205450135;07;843;20170816;23:24:45;+19.338432;-099.179817;000.283;000.00;6;1;141121;12.89;0;0;1;4659;002.795;0;001.891;611;4.0"));
+
+ verifyPosition(decoder, text(
"ST300STT;205170303;12;561;20170816;09:10:34;173f53;+19.082370;-098.214287;006.776;000.00;0;0;52982186;12.75;100000;2;6328;155747;4.2;1;0.00;0;0.00;0.00;00000000000000;0;28F2B7600600005D:+5.2;:;:"));
verifyPosition(decoder, text(