aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/protocol/KhdProtocolDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar/protocol/KhdProtocolDecoder.java')
-rw-r--r--src/main/java/org/traccar/protocol/KhdProtocolDecoder.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/protocol/KhdProtocolDecoder.java b/src/main/java/org/traccar/protocol/KhdProtocolDecoder.java
index 251351a74..a14f9b8a4 100644
--- a/src/main/java/org/traccar/protocol/KhdProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/KhdProtocolDecoder.java
@@ -162,7 +162,13 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder {
if (type != MSG_ALARM) {
- position.set(Position.KEY_ODOMETER, buf.readUnsignedMedium());
+ int odometer = buf.readUnsignedMedium();
+ if (BitUtil.to(odometer, 16) > 0) {
+ position.set(Position.KEY_ODOMETER, odometer);
+ } else if (odometer > 0) {
+ position.set(Position.KEY_FUEL_LEVEL, BitUtil.from(odometer, 16));
+ }
+
position.set(Position.KEY_STATUS, buf.readUnsignedInt());
buf.readUnsignedShort();
@@ -172,7 +178,7 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte();
buf.readUnsignedByte();
- position.set(Position.KEY_RESULT, buf.readUnsignedByte());
+ position.set(Position.KEY_RESULT, String.valueOf(buf.readUnsignedByte()));
if (type == MSG_PERIPHERAL) {