diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-09-16 01:53:43 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-09-16 01:53:43 +1200 |
commit | 3c634fb3c10f8d560b03f87d333ca3cc26281a8a (patch) | |
tree | 8fff35caefef01bac659112fe90273c0040aade7 /src | |
parent | 722327b482e51d8b48fd4bab1e6a27fe972fc167 (diff) | |
download | trackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.tar.gz trackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.tar.bz2 trackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.zip |
Decode H02 battery percentage
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/protocol/H02ProtocolDecoder.java | 19 |
1 files changed, 18 insertions, 1 deletions
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; |