aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java
index b340973e6..bb18a68e2 100644
--- a/src/org/traccar/protocol/H02ProtocolDecoder.java
+++ b/src/org/traccar/protocol/H02ProtocolDecoder.java
@@ -65,10 +65,22 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
private void processStatus(Position position, long status) {
if (!BitUtil.check(status, 0) || !BitUtil.check(status, 1)
- || !BitUtil.check(status, 3) || !BitUtil.check(status, 4)) {
- position.set(Position.KEY_ALARM, true);
- }
- position.set(Position.KEY_IGNITION, !BitUtil.check(status, 10));
+ || !BitUtil.check(status, 3) || !BitUtil.check(status, 4) || !BitUtil.check(status, 7)) {
+
+ if (!BitUtil.check(status, 0)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_VIBRATION);
+ } else if (!BitUtil.check(status, 1)) {
+ position.set(Position.KEY_ALARM, "robbery");
+ } else if (!BitUtil.check(status, 3)) {
+ position.set(Position.KEY_ALARM, "illegal ignition");
+ } else if (!BitUtil.check(status, 4)) {
+ position.set(Position.KEY_ALARM, "entering");
+ } else if (!BitUtil.check(status, 7)) {
+ position.set(Position.KEY_ALARM, "out");
+ }
+
+ }
+ position.set(Position.KEY_IGNITION, BitUtil.check(status, 10));
position.set(Position.KEY_STATUS, status);
}