aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-09-16 01:53:43 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2016-09-16 01:53:43 +1200
commit3c634fb3c10f8d560b03f87d333ca3cc26281a8a (patch)
tree8fff35caefef01bac659112fe90273c0040aade7
parent722327b482e51d8b48fd4bab1e6a27fe972fc167 (diff)
downloadtrackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.tar.gz
trackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.tar.bz2
trackermap-server-3c634fb3c10f8d560b03f87d333ca3cc26281a8a.zip
Decode H02 battery percentage
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java19
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;