diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-08-17 16:37:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-17 16:37:31 +0300 |
commit | bfacd794c443f0f54a27d5d52b33de4628a36009 (patch) | |
tree | 65a57a0d8f173493ef13cd9cd7736b22808d218c /src/org/traccar/protocol/KenjiProtocolDecoder.java | |
parent | 376bd7a7342ed46f20b7c0c94d7c9b0074ae99f3 (diff) | |
parent | 54a64d8c0186e71ce557b5e9764d478084e9443c (diff) | |
download | traccar-server-bfacd794c443f0f54a27d5d52b33de4628a36009.tar.gz traccar-server-bfacd794c443f0f54a27d5d52b33de4628a36009.tar.bz2 traccar-server-bfacd794c443f0f54a27d5d52b33de4628a36009.zip |
Merge pull request #2222 from Abyss777/alarms_3
Alarm decoding for few more protocols
Diffstat (limited to 'src/org/traccar/protocol/KenjiProtocolDecoder.java')
-rwxr-xr-x | src/org/traccar/protocol/KenjiProtocolDecoder.java | 20 |
1 files changed, 19 insertions, 1 deletions
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)); |