From 13c1b5a0f68cf3f9a6a8fee43a4e5c1406dac32a Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Dec 2016 08:42:20 +1300 Subject: Refactor protocols for network location --- src/org/traccar/protocol/Jt600ProtocolDecoder.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/org/traccar/protocol/Jt600ProtocolDecoder.java') diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java index ad7a00dc2..54f5e43a8 100644 --- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java +++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java @@ -25,6 +25,8 @@ import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; import org.traccar.helper.UnitsConverter; +import org.traccar.model.CellTower; +import org.traccar.model.Network; import org.traccar.model.Position; import java.net.SocketAddress; @@ -108,8 +110,9 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_BATTERY, battery + "%"); } - position.set(Position.KEY_CID, buf.readUnsignedShort()); - position.set(Position.KEY_LAC, buf.readUnsignedShort()); + position.setNetwork(new Network( + CellTower.fromCidLac(buf.readUnsignedShort(), buf.readUnsignedShort()))); + position.set(Position.KEY_GSM, buf.readUnsignedByte()); position.set(Position.KEY_INDEX, buf.readUnsignedByte()); @@ -125,8 +128,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { int cid = buf.readUnsignedShort(); int lac = buf.readUnsignedShort(); if (cid != 0 && lac != 0) { - position.set(Position.KEY_CID, cid); - position.set(Position.KEY_LAC, lac); + position.setNetwork(new Network(CellTower.fromCidLac(cid, lac))); } position.set(Position.KEY_GSM, buf.readUnsignedByte()); @@ -256,8 +258,9 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_SATELLITES, parser.nextInt()); position.set(Position.KEY_BATTERY, parser.next()); position.set(Position.KEY_STATUS, parser.nextInt(2)); - position.set(Position.KEY_CID, parser.nextInt()); - position.set(Position.KEY_LAC, parser.nextInt()); + + position.setNetwork(new Network(CellTower.fromCidLac(parser.nextInt(), parser.nextInt()))); + position.set(Position.KEY_GSM, parser.nextInt()); position.set(Position.KEY_ODOMETER, parser.nextLong() * 1000); position.set(Position.KEY_INDEX, parser.nextInt()); -- cgit v1.2.3