From feb008442b63e5467b050e3cee3cf90a01dcb462 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 28 May 2019 07:33:34 -0700 Subject: Decode additional Atrack parameters --- src/main/java/org/traccar/model/Position.java | 1 + .../java/org/traccar/protocol/AtrackProtocolDecoder.java | 12 +++++++++++- .../java/org/traccar/protocol/CarcellProtocolDecoder.java | 2 +- src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java | 2 +- src/main/java/org/traccar/protocol/XirgoProtocolDecoder.java | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/traccar/model/Position.java b/src/main/java/org/traccar/model/Position.java index 90444cc9f..4c28ae59b 100644 --- a/src/main/java/org/traccar/model/Position.java +++ b/src/main/java/org/traccar/model/Position.java @@ -83,6 +83,7 @@ public class Position extends Message { public static final String KEY_DOOR = "door"; public static final String KEY_AXLE_WEIGHT = "axleWeight"; public static final String KEY_G_SENSOR = "gSensor"; + public static final String KEY_ICCID = "iccid"; public static final String KEY_DTCS = "dtcs"; public static final String KEY_OBD_SPEED = "obdSpeed"; // knots diff --git a/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java b/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java index 71bb6791c..c018b2651 100644 --- a/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/AtrackProtocolDecoder.java @@ -84,6 +84,10 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { this.custom = custom; } + public void setForm(String form) { + this.form = form; + } + private static void sendResponse(Channel channel, SocketAddress remoteAddress, long rawId, int index) { if (channel != null) { ByteBuf response = Unpooled.buffer(12); @@ -167,6 +171,12 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { case "AV1": position.set(Position.PREFIX_ADC + 1, Integer.parseInt(values[i])); break; + case "CD": + position.set(Position.KEY_ICCID, values[i]); + break; + case "EH": + position.set(Position.KEY_HOURS, UnitsConverter.msFromHours(Integer.parseInt(values[i]))); + break; default: break; } @@ -274,7 +284,7 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedByte(); // pending code status break; case "CD": - readString(buf); // sim cid + position.set(Position.KEY_ICCID, readString(buf)); break; case "CM": buf.readLong(); // imsi diff --git a/src/main/java/org/traccar/protocol/CarcellProtocolDecoder.java b/src/main/java/org/traccar/protocol/CarcellProtocolDecoder.java index 344b2f1ea..ec640ba71 100644 --- a/src/main/java/org/traccar/protocol/CarcellProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/CarcellProtocolDecoder.java @@ -155,7 +155,7 @@ public class CarcellProtocolDecoder extends BaseProtocolDecoder { Double mainVoltage = parser.nextDouble(0) / 100d; position.set(Position.KEY_POWER, mainVoltage); - position.set("iccid", parser.next()); + position.set(Position.KEY_ICCID, parser.next()); } return position; diff --git a/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java index 4665290c3..d942edbfe 100644 --- a/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -824,7 +824,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { } else if (subType == 0x0a) { buf.skipBytes(8); // imei buf.skipBytes(8); // imsi - position.set("iccid", ByteBufUtil.hexDump(buf.readSlice(8))); + position.set(Position.KEY_ICCID, ByteBufUtil.hexDump(buf.readSlice(8))); return position; } else if (subType == 0x0d) { if (buf.getByte(buf.readerIndex()) != '!') { diff --git a/src/main/java/org/traccar/protocol/XirgoProtocolDecoder.java b/src/main/java/org/traccar/protocol/XirgoProtocolDecoder.java index 08809307f..4d0cc314b 100644 --- a/src/main/java/org/traccar/protocol/XirgoProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/XirgoProtocolDecoder.java @@ -266,7 +266,7 @@ public class XirgoProtocolDecoder extends BaseProtocolDecoder { position.setValid(Integer.parseInt(values[i]) == 3); break; case "SI": - position.set("iccid", values[i]); + position.set(Position.KEY_ICCID, values[i]); break; case "IG": int ignition = Integer.parseInt(values[i]); -- cgit v1.2.3