From 87a8bf3f5cff9b2e537594d0a13371ed8f06fcea Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 16 Aug 2016 11:41:53 +0500 Subject: - Added alarm decoding for 5 protocols --- .../traccar/protocol/EelinkProtocolDecoder.java | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src/org/traccar/protocol/EelinkProtocolDecoder.java') diff --git a/src/org/traccar/protocol/EelinkProtocolDecoder.java b/src/org/traccar/protocol/EelinkProtocolDecoder.java index 85f231a17..24cd6b570 100644 --- a/src/org/traccar/protocol/EelinkProtocolDecoder.java +++ b/src/org/traccar/protocol/EelinkProtocolDecoder.java @@ -64,6 +64,36 @@ public class EelinkProtocolDecoder extends BaseProtocolDecoder { } } + private String decodeAlarm(Short value) { + switch (value) { + case 0x01: + return Position.ALARM_POWER_OFF; + case 0x02: + return Position.ALARM_SOS; + case 0x03: + return Position.ALARM_LOW_BATTERY; + case 0x04: + return Position.ALARM_VIBRATION; + case 0x08: + case 0x09: + return Position.ALARM_GPS_ANTENNA_CUT; + case 0x81: + return Position.ALARM_LOW_SPEED; + case 0x82: + return Position.ALARM_OVERSPEED; + case 0x83: + return Position.ALARM_GEOFENCE_ENTER; + case 0x84: + return Position.ALARM_GEOFENCE_EXIT; + case 0x85: + return Position.ALARM_ACCIDENT; + case 0x86: + return Position.ALARM_FALL_DOWN; + default: + return null; + } + } + private Position decodeOld(DeviceSession deviceSession, ChannelBuffer buf, int type, int index) { Position position = new Position(); @@ -90,7 +120,7 @@ public class EelinkProtocolDecoder extends BaseProtocolDecoder { } if (type == MSG_STATE) { - position.set(Position.KEY_STATUS, buf.readUnsignedByte()); + position.set(Position.KEY_STATUS, decodeAlarm(buf.readUnsignedByte())); } return position; -- cgit v1.2.3