aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/protocol/H02ProtocolDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/protocol/H02ProtocolDecoder.java')
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java17
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);