From 7dd85faa3018aa6d3c8a192eed99360cb406eb71 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 17 Aug 2016 09:52:27 +0500 Subject: - Added Kenji, T800x, Xexun alarm decoders - Fixed GT06 mistake --- src/org/traccar/protocol/KenjiProtocolDecoder.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/org/traccar/protocol/KenjiProtocolDecoder.java') diff --git a/src/org/traccar/protocol/KenjiProtocolDecoder.java b/src/org/traccar/protocol/KenjiProtocolDecoder.java index 2a95717ee..e13c91e3a 100755 --- a/src/org/traccar/protocol/KenjiProtocolDecoder.java +++ b/src/org/traccar/protocol/KenjiProtocolDecoder.java @@ -18,6 +18,7 @@ package org.traccar.protocol; import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.DeviceSession; +import org.traccar.helper.BitUtil; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; @@ -49,6 +50,23 @@ public class KenjiProtocolDecoder extends BaseProtocolDecoder { .any() .compile(); + private String decodeAlarm(int value) { + if (BitUtil.check(value, 2)) { + return Position.ALARM_SOS; + } + if (BitUtil.check(value, 4)) { + return Position.ALARM_LOW_BATTERY; + } + if (BitUtil.check(value, 6)) { + return Position.ALARM_MOVEMENT; + } + if (BitUtil.check(value, 1) || BitUtil.check(value, 10) || BitUtil.check(value, 11)) { + return Position.ALARM_VIBRATION; + } + + return null; + } + @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -67,7 +85,7 @@ public class KenjiProtocolDecoder extends BaseProtocolDecoder { } position.setDeviceId(deviceSession.getDeviceId()); - position.set(Position.KEY_ALARM, parser.nextInt(16)); + position.set(Position.KEY_ALARM, decodeAlarm(parser.nextInt(16))); position.set(Position.KEY_OUTPUT, parser.nextInt(16)); position.set(Position.KEY_INPUT, parser.nextInt(16)); -- cgit v1.2.3