From 3c634fb3c10f8d560b03f87d333ca3cc26281a8a Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 16 Sep 2016 01:53:43 +1200 Subject: Decode H02 battery percentage --- src/org/traccar/protocol/H02ProtocolDecoder.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/org') diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index a0c646900..f876f40bc 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -79,6 +79,23 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_STATUS, status); } + private String decodeBattery(int value) { + switch (value) { + case 6: + return "100%"; + case 5: + return "80%"; + case 4: + return "60%"; + case 3: + return "20%"; + case 2: + return "10%"; + default: + return null; + } + } + private Position decodeBinary(ChannelBuffer buf, Channel channel, SocketAddress remoteAddress) { Position position = new Position(); @@ -103,7 +120,7 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { position.setTime(dateBuilder.getDate()); double latitude = readCoordinate(buf, false); - position.set(Position.KEY_POWER, buf.readByte()); + position.set(Position.KEY_BATTERY, decodeBattery(buf.readUnsignedByte())); double longitude = readCoordinate(buf, true); int flags = buf.readUnsignedByte() & 0x0f; -- cgit v1.2.3