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.java15
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);