diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2019-09-18 08:50:14 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2019-09-18 08:50:14 -0700 |
commit | 94dad7a70fe4d8b733f773820743c61891bb771d (patch) | |
tree | 7f4ff7ca8b238a175f0ae668d1f586a5e1ec9378 | |
parent | a0f246a0cba000e9e8bb12fe6e40ddbc914c2e69 (diff) | |
download | traccar-server-94dad7a70fe4d8b733f773820743c61891bb771d.tar.gz traccar-server-94dad7a70fe4d8b733f773820743c61891bb771d.tar.bz2 traccar-server-94dad7a70fe4d8b733f773820743c61891bb771d.zip |
Support OBD data
-rw-r--r-- | src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java b/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java index 09ee12256..fceefa73a 100644 --- a/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java @@ -197,20 +197,44 @@ public class HuabaoProtocolDecoder extends BaseProtocolDecoder { while (buf.readableBytes() > 2) { int subtype = buf.readUnsignedByte(); int length = buf.readUnsignedByte(); + int endIndex = buf.readerIndex() + length; switch (subtype) { case 0x01: position.set(Position.KEY_ODOMETER, buf.readUnsignedInt() * 100); break; + case 0x02: + position.set(Position.KEY_FUEL_LEVEL, buf.readUnsignedShort() * 0.1); + break; case 0x30: position.set(Position.KEY_RSSI, buf.readUnsignedByte()); break; case 0x31: position.set(Position.KEY_SATELLITES, buf.readUnsignedByte()); break; + case 0x91: + position.set(Position.KEY_BATTERY, buf.readUnsignedShort() * 0.1); + position.set(Position.KEY_RPM, buf.readUnsignedShort()); + position.set(Position.KEY_OBD_SPEED, buf.readUnsignedByte()); + position.set(Position.KEY_THROTTLE, buf.readUnsignedByte() * 100 / 255); + position.set(Position.KEY_ENGINE_LOAD, buf.readUnsignedByte() * 100 / 255); + position.set(Position.KEY_COOLANT_TEMP, buf.readUnsignedByte() - 40); + buf.readUnsignedShort(); + position.set(Position.KEY_FUEL_CONSUMPTION, buf.readUnsignedShort() * 0.01); + buf.readUnsignedShort(); + buf.readUnsignedInt(); + buf.readUnsignedShort(); + position.set(Position.KEY_FUEL_USED, buf.readUnsignedShort() * 0.01); + break; + case 0x94: + if (length > 0) { + position.set( + Position.KEY_VIN, buf.readCharSequence(length, StandardCharsets.US_ASCII).toString()); + } + break; default: - buf.skipBytes(length); break; } + buf.readerIndex(endIndex); } return position; @@ -233,3 +257,4 @@ public class HuabaoProtocolDecoder extends BaseProtocolDecoder { } } + |