From 808c78a5e6074a3e5051396280b0cafc026ff673 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 2 Jun 2019 10:40:20 -0700 Subject: Decode additional Atrack attributes --- .../traccar/protocol/AtrackProtocolDecoder.java | 30 +++++++++++++++++++--- .../protocol/AtrackProtocolDecoderTest.java | 6 +++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java b/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java index c018b2651..53f04234d 100644 --- a/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 - 2018 Anton Tananaev (anton@traccar.org) + * Copyright 2013 - 2019 Anton Tananaev (anton@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -160,7 +160,7 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_THROTTLE, Integer.parseInt(values[i])); break; case "ET": - position.set(Position.PREFIX_TEMP + 1, Integer.parseInt(values[i])); + position.set(Position.KEY_COOLANT_TEMP, Integer.parseInt(values[i])); break; case "FL": position.set(Position.KEY_FUEL_LEVEL, Integer.parseInt(values[i])); @@ -175,7 +175,31 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_ICCID, values[i]); break; case "EH": - position.set(Position.KEY_HOURS, UnitsConverter.msFromHours(Integer.parseInt(values[i]))); + position.set(Position.KEY_HOURS, UnitsConverter.msFromHours(Integer.parseInt(values[i]) * 0.1)); + break; + case "IA": + position.set("intakeTemp", Integer.parseInt(values[i])); + break; + case "EL": + position.set(Position.KEY_ENGINE_LOAD, Integer.parseInt(values[i])); + break; + case "HA": + if (Integer.parseInt(values[i]) > 0) { + position.set(Position.KEY_ALARM, Position.ALARM_ACCELERATION); + } + break; + case "HB": + if (Integer.parseInt(values[i]) > 0) { + position.set(Position.KEY_ALARM, Position.ALARM_BRAKING); + } + break; + case "HC": + if (Integer.parseInt(values[i]) > 0) { + position.set(Position.KEY_ALARM, Position.ALARM_CORNERING); + } + break; + case "MT": + position.set(Position.KEY_MOTION, Integer.parseInt(values[i]) > 0); break; default: break; diff --git a/src/test/java/org/traccar/protocol/AtrackProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/AtrackProtocolDecoderTest.java index 68e08443b..6b3dc3010 100644 --- a/src/test/java/org/traccar/protocol/AtrackProtocolDecoderTest.java +++ b/src/test/java/org/traccar/protocol/AtrackProtocolDecoderTest.java @@ -105,6 +105,12 @@ public class AtrackProtocolDecoderTest extends ProtocolTest { AtrackProtocolDecoder decoder = new AtrackProtocolDecoder(null); decoder.setCustom(true); + + decoder.setForm("%AT%BV%MV%SA%VN%PD%IA%MP%EL%ET%FC%FL%RP%ML%MF%TR%EH%DL%EG%HA%HB%HC%IP%MT"); + + verifyPositions(decoder, buffer( + "@P,7E02,186,0,357766091026083,1558908265,1558908266,1558908266,-121900220,37407524,175,2,6,6,1,39,0,0,,2000,2000, ,3,40,142,12,JN8AZ1MU1BW066090,0,30,0,58,90,22,72,1187,0,1232,9,409,0,1,0,0,0,0,1\r\n")); + decoder.setForm("%AT%BV%CD%CE%CM%CN%DT%GN%GQ%GS%GV%LC%ME%MV%RL%SA%SM%CS%HT%VN%PD%IA%MP%EL%ET%FC%FL%RP%ML%MF%TR%EH%CR%DL%EG%HA%HB%HC%IP%MT%PF"); verifyPositions(decoder, buffer( -- cgit v1.2.3