diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2020-08-26 20:05:51 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2020-08-26 20:09:08 -0700 |
commit | 8c20ee9f2eb3e321204c524ce4fd013d175bb674 (patch) | |
tree | ba33ae3c5c1c4ad457550bfb7fd317dc7c8940c5 /src/main/java | |
parent | 557c40e533027b15b46aeb3f5eec802089978163 (diff) | |
download | trackermap-server-8c20ee9f2eb3e321204c524ce4fd013d175bb674.tar.gz trackermap-server-8c20ee9f2eb3e321204c524ce4fd013d175bb674.tar.bz2 trackermap-server-8c20ee9f2eb3e321204c524ce4fd013d175bb674.zip |
Support temperature sensor
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java index 6f06fccce..a8524808c 100644 --- a/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -88,7 +88,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_COMMAND_2 = 0x82; public static final int MSG_TIME_REQUEST = 0x8A; public static final int MSG_INFO = 0x94; - public static final int MSG_RFID = 0x9B; + public static final int MSG_SERIAL = 0x9B; public static final int MSG_STRING_INFO = 0x21; public static final int MSG_GPS_2 = 0xA0; public static final int MSG_LBS_2 = 0xA1; @@ -1039,15 +1039,22 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { return position; - } else if (type == MSG_RFID) { + } else if (type == MSG_SERIAL) { getLastLocation(position, null); buf.readUnsignedByte(); // external device type code - buf.readUnsignedByte(); // card type - position.set( - Position.KEY_DRIVER_UNIQUE_ID, - buf.readCharSequence(buf.readableBytes() - 9, StandardCharsets.US_ASCII).toString()); + int length = buf.readableBytes() - 9; // line break + checksum + index + checksum + footer + if (length < 8) { + position.set( + Position.PREFIX_TEMP + 1, + Double.parseDouble(buf.readCharSequence(length - 1, StandardCharsets.US_ASCII).toString())); + } else { + buf.readUnsignedByte(); // card type + position.set( + Position.KEY_DRIVER_UNIQUE_ID, + buf.readCharSequence(length - 1, StandardCharsets.US_ASCII).toString()); + } return position; |