diff options
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r-- | src/org/traccar/protocol/H02ProtocolDecoder.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index ec5d3adef..ffe16e975 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -64,8 +64,21 @@ 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)) { + || !BitUtil.check(status, 3) || !BitUtil.check(status, 4) || !BitUtil.check(status, 7)) { position.set(Position.KEY_ALARM, true); + + if (!BitUtil.check(status, 0)){ + position.set(Position.KEY_ALARM_TYPE, "theft"); + } else if (!BitUtil.check(status, 1)){ + position.set(Position.KEY_ALARM_TYPE, "robbery"); + } else if (!BitUtil.check(status, 3)){ + position.set(Position.KEY_ALARM_TYPE, "illegal ignition"); + } else if (!BitUtil.check(status, 4)){ + position.set(Position.KEY_ALARM_TYPE, "entering"); + } else if (!BitUtil.check(status, 7)){ + position.set(Position.KEY_ALARM_TYPE, "out"); + } + } position.set(Position.KEY_IGNITION, !BitUtil.check(status, 10)); position.set(Position.KEY_STATUS, status); |