From 309e6a6d4e153b67aa598d67b45f3128716576b8 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 26 Apr 2021 20:44:10 -0700 Subject: Decode alarm codes --- .../org/traccar/protocol/StartekProtocolDecoder.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/main/java/org/traccar/protocol') diff --git a/src/main/java/org/traccar/protocol/StartekProtocolDecoder.java b/src/main/java/org/traccar/protocol/StartekProtocolDecoder.java index b80c8e174..9b3780d0f 100644 --- a/src/main/java/org/traccar/protocol/StartekProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/StartekProtocolDecoder.java @@ -69,6 +69,22 @@ public class StartekProtocolDecoder extends BaseProtocolDecoder { .any() .compile(); + private String decodeAlarm(int value) { + switch (value) { + case 5: + case 6: + return Position.ALARM_DOOR; + case 39: + return Position.ALARM_ACCELERATION; + case 40: + return Position.ALARM_BRAKING; + case 41: + return Position.ALARM_CORNERING; + default: + return null; + } + } + @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -86,7 +102,9 @@ public class StartekProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); - position.set(Position.KEY_EVENT, parser.nextInt()); + int event = parser.nextInt(); + position.set(Position.KEY_ALARM, decodeAlarm(event)); + position.set(Position.KEY_EVENT, event); position.setTime(parser.nextDateTime()); position.setValid(parser.next().equals("A")); -- cgit v1.2.3