diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2021-12-14 22:58:13 -0800 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2021-12-14 22:58:13 -0800 |
commit | eda05aa8e846b273c4cb30f77ebf3c4db48443ad (patch) | |
tree | 833ade1da7baf80adbe1df1d3acc0970e5626f61 /src/main/java | |
parent | 54de76fe8645c8da30bbc08d1c8efb1ad472e8b5 (diff) | |
download | trackermap-server-eda05aa8e846b273c4cb30f77ebf3c4db48443ad.tar.gz trackermap-server-eda05aa8e846b273c4cb30f77ebf3c4db48443ad.tar.bz2 trackermap-server-eda05aa8e846b273c4cb30f77ebf3c4db48443ad.zip |
Decode battery from heartbeat
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/org/traccar/protocol/MiniFinderProtocolDecoder.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/main/java/org/traccar/protocol/MiniFinderProtocolDecoder.java index 2b7a960c4..d5be31cec 100644 --- a/src/main/java/org/traccar/protocol/MiniFinderProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/MiniFinderProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2014 - 2018 Anton Tananaev (anton@traccar.org) + * Copyright 2014 - 2021 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -143,7 +143,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { } DeviceSession deviceSession = getDeviceSession(channel, remoteAddress); - if (deviceSession == null || !sentence.matches("![3A-D],.*")) { + if (deviceSession == null || !sentence.matches("![35A-D],.*")) { return null; } @@ -161,6 +161,19 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { return position; + } else if (type.equals("5")) { + + String[] values = sentence.split(","); + + getLastLocation(position, null); + + position.set(Position.KEY_RSSI, Integer.parseInt(values[1])); + if (values.length >= 4) { + position.set(Position.KEY_BATTERY_LEVEL, Integer.parseInt(values[3])); + } + + return position; + } else if (type.equals("B") || type.equals("D")) { Parser parser = new Parser(PATTERN_BD, sentence); |