diff options
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r-- | src/org/traccar/protocol/H02ProtocolDecoder.java | 20 |
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); } |