From 53494de4e41e1c4d4440c9afc0c4a9dfa6480558 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 28 Sep 2013 13:40:00 +1200 Subject: Remove optional fields --- src/org/traccar/protocol/ApelProtocolDecoder.java | 2 +- .../traccar/protocol/AplicomProtocolDecoder.java | 2 +- src/org/traccar/protocol/Avl08ProtocolDecoder.java | 2 +- .../traccar/protocol/EasyTrackProtocolDecoder.java | 2 +- .../traccar/protocol/GalileoProtocolDecoder.java | 2 +- src/org/traccar/protocol/GatorProtocolDecoder.java | 2 +- src/org/traccar/protocol/Gt02ProtocolDecoder.java | 5 ++- src/org/traccar/protocol/Gt06ProtocolDecoder.java | 4 +-- .../protocol/IntellitracProtocolDecoder.java | 2 +- src/org/traccar/protocol/Jt600ProtocolDecoder.java | 4 +-- .../traccar/protocol/MegastekProtocolDecoder.java | 4 +-- src/org/traccar/protocol/Mta6ProtocolDecoder.java | 4 +-- .../traccar/protocol/NavigilProtocolDecoder.java | 22 ++++++------- src/org/traccar/protocol/NavisProtocolDecoder.java | 37 ++++++++++++++++------ .../traccar/protocol/ProgressProtocolDecoder.java | 2 +- .../traccar/protocol/SkypatrolProtocolDecoder.java | 4 +-- src/org/traccar/protocol/TotemProtocolDecoder.java | 4 +-- .../traccar/protocol/Xexun2ProtocolDecoder.java | 3 +- src/org/traccar/protocol/Xt7ProtocolDecoder.java | 2 +- 19 files changed, 65 insertions(+), 44 deletions(-) (limited to 'src/org/traccar/protocol') diff --git a/src/org/traccar/protocol/ApelProtocolDecoder.java b/src/org/traccar/protocol/ApelProtocolDecoder.java index 5f626a496..9ffc473c7 100644 --- a/src/org/traccar/protocol/ApelProtocolDecoder.java +++ b/src/org/traccar/protocol/ApelProtocolDecoder.java @@ -177,7 +177,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder { if (type == MSG_TYPE_LOG_RECORDS) { extendedInfo.set("archive", true); lastIndex = buf.readUnsignedInt() + 1; - position.setId(lastIndex); + extendedInfo.set("index", lastIndex); subtype = buf.readUnsignedShort(); if (subtype != MSG_TYPE_CURRENT_GPS_DATA && subtype != MSG_TYPE_STATE_FULL_INFO_T104) { diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index 978b84b6d..21a3127d1 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -181,7 +181,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { // Power if ((selector & 0x8000) != 0) { - position.setPower(buf.readUnsignedShort() / 1000.0); + extendedInfo.set("power", buf.readUnsignedShort() / 1000.0); extendedInfo.set("battery", buf.readUnsignedShort()); } diff --git a/src/org/traccar/protocol/Avl08ProtocolDecoder.java b/src/org/traccar/protocol/Avl08ProtocolDecoder.java index 6ccb333d9..825e84cf6 100644 --- a/src/org/traccar/protocol/Avl08ProtocolDecoder.java +++ b/src/org/traccar/protocol/Avl08ProtocolDecoder.java @@ -157,7 +157,7 @@ public class Avl08ProtocolDecoder extends BaseProtocolDecoder { // Voltage String voltage = parser.group(index++); - position.setPower(Double.valueOf(voltage.substring(1, 4)) / 100); + extendedInfo.set("power", Double.valueOf(voltage.substring(1, 4)) / 100); extendedInfo.set("voltage", voltage); // ADC diff --git a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java index d6a14fd08..7152955f5 100644 --- a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java +++ b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java @@ -123,7 +123,7 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("signal", parser.group(index++)); // Power - position.setPower(Double.valueOf(parser.group(index++))); + extendedInfo.set("power", Double.valueOf(parser.group(index++))); // Oil extendedInfo.set("oil", Integer.parseInt(parser.group(index++), 16)); diff --git a/src/org/traccar/protocol/GalileoProtocolDecoder.java b/src/org/traccar/protocol/GalileoProtocolDecoder.java index 94ffa60af..3f652dcb0 100644 --- a/src/org/traccar/protocol/GalileoProtocolDecoder.java +++ b/src/org/traccar/protocol/GalileoProtocolDecoder.java @@ -137,7 +137,7 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder { break; case TAG_POWER: - position.setPower((double) buf.readUnsignedShort()); + extendedInfo.set("power", buf.readUnsignedShort()); break; case TAG_BATTERY: diff --git a/src/org/traccar/protocol/GatorProtocolDecoder.java b/src/org/traccar/protocol/GatorProtocolDecoder.java index 9fa50cc88..041e44588 100644 --- a/src/org/traccar/protocol/GatorProtocolDecoder.java +++ b/src/org/traccar/protocol/GatorProtocolDecoder.java @@ -126,7 +126,7 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("oil", buf.readUnsignedShort() / 10.0); // Power - position.setPower(buf.readUnsignedByte() + buf.readUnsignedByte() / 100.0); + extendedInfo.set("power", buf.readUnsignedByte() + buf.readUnsignedByte() / 100.0); // Milage extendedInfo.set("milage", buf.readUnsignedInt()); diff --git a/src/org/traccar/protocol/Gt02ProtocolDecoder.java b/src/org/traccar/protocol/Gt02ProtocolDecoder.java index 22402ce45..65c3260e7 100644 --- a/src/org/traccar/protocol/Gt02ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt02ProtocolDecoder.java @@ -24,6 +24,7 @@ import org.jboss.netty.channel.ChannelHandlerContext; import org.traccar.BaseProtocolDecoder; import org.traccar.ServerManager; import org.traccar.helper.Log; +import org.traccar.model.ExtendedInfoFormatter; import org.traccar.model.Position; public class Gt02ProtocolDecoder extends BaseProtocolDecoder { @@ -76,7 +77,8 @@ public class Gt02ProtocolDecoder extends BaseProtocolDecoder { // Create new position Position position = new Position(); - position.setId(index); + ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("gt02"); + extendedInfo.set("index", index); // Get device id try { @@ -120,6 +122,7 @@ public class Gt02ProtocolDecoder extends BaseProtocolDecoder { position.setLongitude(longitude); position.setAltitude(0.0); + position.setExtendedInfo(extendedInfo.toString()); return position; } diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java index 9b5bcc441..d67e6843e 100644 --- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java @@ -169,7 +169,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("alarm", true); // Voltage - position.setPower((double) buf.readUnsignedByte()); + extendedInfo.set("power", buf.readUnsignedByte()); // GSM signal extendedInfo.set("gsm", buf.readUnsignedByte()); @@ -181,7 +181,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder { buf.skipBytes(buf.readableBytes() - 6); } int index = buf.readUnsignedShort(); - position.setId((long) index); + extendedInfo.set("index", index); sendResponse(channel, type, index); position.setExtendedInfo(extendedInfo.toString()); diff --git a/src/org/traccar/protocol/IntellitracProtocolDecoder.java b/src/org/traccar/protocol/IntellitracProtocolDecoder.java index de1ce35de..b71237e7f 100644 --- a/src/org/traccar/protocol/IntellitracProtocolDecoder.java +++ b/src/org/traccar/protocol/IntellitracProtocolDecoder.java @@ -100,7 +100,7 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("satellites", satellites); // Report identifier - position.setId(Long.valueOf(parser.group(index++))); + extendedInfo.set("index", Long.valueOf(parser.group(index++))); // Input extendedInfo.set("input", parser.group(index++)); diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java index df6d94e47..d12b09740 100644 --- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java +++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java @@ -98,7 +98,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("satellites", buf.readUnsignedByte()); // Power - position.setPower((double) buf.readUnsignedByte()); + extendedInfo.set("power", buf.readUnsignedByte()); buf.readByte(); // other flags and sensors @@ -204,7 +204,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { position.setCourse(Double.valueOf(parser.group(index++))); // Power - position.setPower(Double.valueOf(parser.group(index++))); + extendedInfo.set("power", Double.valueOf(parser.group(index++))); position.setExtendedInfo(extendedInfo.toString()); return position; diff --git a/src/org/traccar/protocol/MegastekProtocolDecoder.java b/src/org/traccar/protocol/MegastekProtocolDecoder.java index ee7c5df2c..f73d04be4 100644 --- a/src/org/traccar/protocol/MegastekProtocolDecoder.java +++ b/src/org/traccar/protocol/MegastekProtocolDecoder.java @@ -218,7 +218,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder { position.setAltitude(Double.valueOf(parser.group(index++))); // Battery - position.setPower(Double.valueOf(parser.group(index++))); + extendedInfo.set("power", Double.valueOf(parser.group(index++))); // Charger String charger = parser.group(index++); @@ -253,7 +253,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("gsm", parser.group(index++)); // Battery - position.setPower(Double.valueOf(parser.group(index++))); + extendedInfo.set("battery", Double.valueOf(parser.group(index++))); extendedInfo.set("flags", parser.group(index++)); extendedInfo.set("input", parser.group(index++)); diff --git a/src/org/traccar/protocol/Mta6ProtocolDecoder.java b/src/org/traccar/protocol/Mta6ProtocolDecoder.java index 108e74963..62fa87e68 100644 --- a/src/org/traccar/protocol/Mta6ProtocolDecoder.java +++ b/src/org/traccar/protocol/Mta6ProtocolDecoder.java @@ -189,7 +189,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { if (checkBit(flags, 7)) { extendedInfo.set("battery", buf.getUnsignedByte(buf.readerIndex()) >> 2); - position.setPower((double) (buf.readUnsignedShort() & 0x03ff)); + extendedInfo.set("power", buf.readUnsignedShort() & 0x03ff); buf.readByte(); // microcontroller temperature extendedInfo.set("gsm", (buf.getUnsignedByte(buf.readerIndex()) >> 4) & 0x07); @@ -269,7 +269,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder { if (checkBit(flags, 5)) { extendedInfo.set("battery", buf.getUnsignedByte(buf.readerIndex()) >> 2); - position.setPower((double) (buf.readUnsignedShort() & 0x03ff)); + extendedInfo.set("power", buf.readUnsignedShort() & 0x03ff); buf.readByte(); // microcontroller temperature extendedInfo.set("gsm", buf.getUnsignedByte(buf.readerIndex()) >> 5); diff --git a/src/org/traccar/protocol/NavigilProtocolDecoder.java b/src/org/traccar/protocol/NavigilProtocolDecoder.java index 34642496a..29be1e5ad 100644 --- a/src/org/traccar/protocol/NavigilProtocolDecoder.java +++ b/src/org/traccar/protocol/NavigilProtocolDecoder.java @@ -83,7 +83,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); position.setValid(true); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); buf.readUnsignedShort(); // report trigger @@ -102,8 +102,8 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedInt(); // distance buf.readUnsignedInt(); // delta distance - - position.setPower(buf.readUnsignedShort() * 0.001); + + extendedInfo.set("battery", buf.readUnsignedShort() * 0.001); buf.readUnsignedShort(); // battery charger status @@ -120,7 +120,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); position.setValid(true); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); buf.readUnsignedShort(); // report trigger @@ -146,7 +146,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedShort(); // VSAUT1 voltage buf.readUnsignedShort(); // VSAUT2 voltage buf.readUnsignedShort(); // solar voltage - position.setPower(buf.readUnsignedShort() * 0.001); // battery voltage + extendedInfo.set("battery", buf.readUnsignedShort() * 0.001); // TODO: a lot of other stuff @@ -158,7 +158,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); position.setTime(convertTimestamp(timestamp)); @@ -182,7 +182,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); position.setTime(convertTimestamp(timestamp)); @@ -209,7 +209,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); buf.readUnsignedByte(); // report trigger @@ -238,7 +238,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedByte(); // supply voltage 1 buf.readUnsignedByte(); // supply voltage 2 - position.setPower(buf.readUnsignedByte() * 0.01 + 2.5); // battery voltage + extendedInfo.set("battery", buf.readUnsignedShort() * 0.001); // TODO: a lot of other stuff @@ -250,7 +250,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { Position position = new Position(); ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navigil"); - position.setId((long) sequenceNumber); + extendedInfo.set("index", sequenceNumber); position.setDeviceId(deviceId); position.setTime(convertTimestamp(timestamp)); @@ -270,7 +270,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedByte(); // satellites in fix - position.setPower(buf.readUnsignedByte() * 0.005 + 3.0); // battery voltage + extendedInfo.set("battery", buf.readUnsignedShort() * 0.001); buf.readUnsignedInt(); // distance diff --git a/src/org/traccar/protocol/NavisProtocolDecoder.java b/src/org/traccar/protocol/NavisProtocolDecoder.java index 9de70595a..70a76a2f5 100644 --- a/src/org/traccar/protocol/NavisProtocolDecoder.java +++ b/src/org/traccar/protocol/NavisProtocolDecoder.java @@ -62,8 +62,26 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { } return false; } + + private class ParseResult { + private long id; + private Position position; + + public ParseResult(long id, Position position) { + this.id = id; + this.position = position; + } + + public long getId() { + return id; + } + + public Position getPosition() { + return position; + } + } - private Position parsePosition(ChannelBuffer buf) { + private ParseResult parsePosition(ChannelBuffer buf) { Position position = new Position(); ExtendedInfoFormatter extendedInfo = new ExtendedInfoFormatter("navis"); @@ -79,7 +97,8 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { } extendedInfo.set("format", format); - position.setId(buf.readUnsignedInt()); // sequence number + long index = buf.readUnsignedInt(); + extendedInfo.set("index", index); // Event type extendedInfo.set("event", buf.readUnsignedShort()); @@ -118,7 +137,7 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { extendedInfo.set("input", buf.readUnsignedByte()); } - position.setPower(buf.readUnsignedShort() / 1000.0); // power + extendedInfo.set("power", buf.readUnsignedShort() / 1000.0); // Battery power extendedInfo.set("battery", buf.readUnsignedShort()); @@ -195,23 +214,23 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder { // Extended info position.setExtendedInfo(extendedInfo.toString()); - return position; + return new ParseResult(index, position); } private Object processSingle(Channel channel, ChannelBuffer buf) { - Position position = parsePosition(buf); + ParseResult result = parsePosition(buf); ChannelBuffer response = ChannelBuffers.dynamicBuffer(ByteOrder.LITTLE_ENDIAN, 8); response.writeBytes(ChannelBuffers.copiedBuffer(ByteOrder.LITTLE_ENDIAN, "*