diff options
author | jon-stumpf <jon.stumpf@gmail.com> | 2017-02-20 19:47:07 -0500 |
---|---|---|
committer | jon-stumpf <jon.stumpf@gmail.com> | 2017-02-20 19:47:07 -0500 |
commit | 21d8146fc216df827c156b446221c2bc01f05a6f (patch) | |
tree | 63972b4df6d5d9180c5c65610bb8ea375d01b984 /src/org/traccar/protocol/Jt600ProtocolDecoder.java | |
parent | b67f1e828ce5bc8fe215d377cd2ae81f23152abd (diff) | |
download | trackermap-server-21d8146fc216df827c156b446221c2bc01f05a6f.tar.gz trackermap-server-21d8146fc216df827c156b446221c2bc01f05a6f.tar.bz2 trackermap-server-21d8146fc216df827c156b446221c2bc01f05a6f.zip |
Updated protocols to record CellTower information where appropriate; Removed KEY_RSSI when reported in CellTower;
Diffstat (limited to 'src/org/traccar/protocol/Jt600ProtocolDecoder.java')
-rw-r--r-- | src/org/traccar/protocol/Jt600ProtocolDecoder.java | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java index 0d8b4abbc..b730c2feb 100644 --- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java +++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java @@ -110,10 +110,14 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_BATTERY, battery + "%"); } - position.setNetwork(new Network( - CellTower.fromCidLac(buf.readUnsignedShort(), buf.readUnsignedShort()))); + int cid = buf.readUnsignedShort(); + int lac = buf.readUnsignedShort(); + int rssi = buf.readUnsignedByte(); + + CellTower cellTower = CellTower.fromCidLac(cid, lac); + cellTower.setSignalStrength(rssi); + position.setNetwork(new Network(cellTower)); - position.set(Position.KEY_RSSI, buf.readUnsignedByte()); position.set(Position.KEY_INDEX, buf.readUnsignedByte()); } else if (version == 1) { @@ -125,14 +129,18 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.setAltitude(buf.readUnsignedShort()); - int cid = buf.readUnsignedShort(); - int lac = buf.readUnsignedShort(); + int cid = buf.readUnsignedShort(); + int lac = buf.readUnsignedShort(); + int rssi = buf.readUnsignedByte(); + if (cid != 0 && lac != 0) { - position.setNetwork(new Network(CellTower.fromCidLac(cid, lac))); + CellTower cellTower = CellTower.fromCidLac(cid, lac); + cellTower.setSignalStrength(rssi); + position.setNetwork(new Network(cellTower)); + } else { + position.set(Position.KEY_RSSI, rssi); } - position.set(Position.KEY_RSSI, buf.readUnsignedByte()); - } else if (version == 2) { int fuel = buf.readUnsignedByte() << 8; @@ -259,9 +267,10 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_BATTERY, parser.next()); position.set(Position.KEY_STATUS, parser.nextInt(2)); - position.setNetwork(new Network(CellTower.fromCidLac(parser.nextInt(), parser.nextInt()))); + CellTower cellTower = CellTower.fromCidLac(parser.nextInt(), parser.nextInt()); + cellTower.setSignalStrength(parser.nextInt()); + position.setNetwork(new Network(cellTower)); - position.set(Position.KEY_RSSI, parser.nextInt()); position.set(Position.KEY_ODOMETER, parser.nextLong() * 1000); position.set(Position.KEY_INDEX, parser.nextInt()); |