diff options
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r-- | src/org/traccar/protocol/H02ProtocolDecoder.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index ec5d3adef..09375958e 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -24,6 +24,7 @@ import org.traccar.helper.BitUtil; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; +import org.traccar.model.Event; import org.traccar.model.Position; import java.net.SocketAddress; @@ -64,8 +65,20 @@ 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); + || !BitUtil.check(status, 3) || !BitUtil.check(status, 4) || !BitUtil.check(status, 7)) { + + if (!BitUtil.check(status, 0)){ + position.set(Position.KEY_ALARM, Event.TYPE_VIBRATION_ALARM);//theft alarm + } 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); |