aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-09-11 23:20:37 -0700
committerAnton Tananaev <anton.tananaev@gmail.com>2020-09-11 23:20:37 -0700
commitdbcde8aee59ebaa488cf9730a0356817e282ee84 (patch)
treeaa9e61e621356085f608b51b534d9f32acad8cc9 /src/main
parent81d2bdab9d91b2faa4824fbced4db2bc0edc821d (diff)
downloadtrackermap-server-dbcde8aee59ebaa488cf9730a0356817e282ee84.tar.gz
trackermap-server-dbcde8aee59ebaa488cf9730a0356817e282ee84.tar.bz2
trackermap-server-dbcde8aee59ebaa488cf9730a0356817e282ee84.zip
Decode driver id value
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
index fd4af847f..76e3e6ecc 100644
--- a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -687,6 +687,24 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
return position;
}
+ private Position decodeTravelReport(Channel channel, SocketAddress remoteAddress, String[] values) {
+ int index = 1;
+
+ DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, values[index++]);
+ if (deviceSession == null) {
+ return null;
+ }
+
+ Position position = new Position(getProtocolName());
+ position.setDeviceId(deviceSession.getDeviceId());
+
+ getLastLocation(position, null);
+
+ position.set(Position.KEY_DRIVER_UNIQUE_ID, values[values.length - 1]);
+
+ return position;
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -704,6 +722,8 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
if (prefix.length() < 5) {
return decodeUniversal(channel, remoteAddress, values);
+ } else if (prefix.endsWith("HTE")) {
+ return decodeTravelReport(channel, remoteAddress, values);
} else if (prefix.startsWith("ST9")) {
return decode9(channel, remoteAddress, values);
} else if (prefix.startsWith("ST4")) {