diff options
author | Abyss777 <abyss@fox5.ru> | 2016-07-29 15:50:59 +0500 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2016-07-29 15:50:59 +0500 |
commit | 20c2456a9df46eaef04c787ea5471bf31a71f93c (patch) | |
tree | f8e76fb8f6cf27b0d1b2a9476dcb8436f4e88feb /src/org/traccar/protocol/UlbotechProtocolDecoder.java | |
parent | cd0c04a03b359dfc5b1ea3f61b93aaae8f6fec3e (diff) | |
download | trackermap-server-20c2456a9df46eaef04c787ea5471bf31a71f93c.tar.gz trackermap-server-20c2456a9df46eaef04c787ea5471bf31a71f93c.tar.bz2 trackermap-server-20c2456a9df46eaef04c787ea5471bf31a71f93c.zip |
Organized alarms in the first part of protocols
Diffstat (limited to 'src/org/traccar/protocol/UlbotechProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/UlbotechProtocolDecoder.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/UlbotechProtocolDecoder.java b/src/org/traccar/protocol/UlbotechProtocolDecoder.java index c17341b5f..7abe9fb70 100644 --- a/src/org/traccar/protocol/UlbotechProtocolDecoder.java +++ b/src/org/traccar/protocol/UlbotechProtocolDecoder.java @@ -115,6 +115,34 @@ public class UlbotechProtocolDecoder extends BaseProtocolDecoder { } } + private String decodeAlarm(int alarm) { + if (BitUtil.check(alarm, 0)) { + return Position.ALARM_POWER_OFF; + } + if (BitUtil.check(alarm, 1)) { + return Position.ALARM_MOTION; + } + if (BitUtil.check(alarm, 2)) { + return Position.ALARM_OVERSPEED; + } + if (BitUtil.check(alarm, 3)) { + return Position.ALARM_JAMMING; + } + if (BitUtil.check(alarm, 4)) { + return Position.ALARM_GEOFENCE; + } + if (BitUtil.check(alarm, 10)) { + return Position.ALARM_SOS; + } + if (BitUtil.check(alarm, 11)) { + return Position.ALARM_ODB; + } + if (BitUtil.check(alarm, 15)) { + return Position.ALARM_POWER_LOW; + } + return null; + } + @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -181,7 +209,10 @@ public class UlbotechProtocolDecoder extends BaseProtocolDecoder { int status = buf.readUnsignedShort(); position.set(Position.KEY_IGNITION, BitUtil.check(status, 9)); position.set(Position.KEY_STATUS, status); - position.set(Position.KEY_ALARM, buf.readUnsignedShort()); + String alarm = decodeAlarm(buf.readUnsignedShort()); + if (alarm != null) { + position.set(Position.KEY_ALARM, alarm); + } break; case DATA_ODOMETER: |