diff options
-rw-r--r-- | src/org/traccar/protocol/GranitProtocolDecoder.java | 1 | ||||
-rw-r--r-- | src/org/traccar/protocol/WialonProtocolDecoder.java | 1 | ||||
-rw-r--r-- | src/org/traccar/protocol/WondexProtocolDecoder.java | 7 | ||||
-rw-r--r-- | test/org/traccar/ProtocolTest.java | 4 |
4 files changed, 10 insertions, 3 deletions
diff --git a/src/org/traccar/protocol/GranitProtocolDecoder.java b/src/org/traccar/protocol/GranitProtocolDecoder.java index 7518eee1f..8e935ae9e 100644 --- a/src/org/traccar/protocol/GranitProtocolDecoder.java +++ b/src/org/traccar/protocol/GranitProtocolDecoder.java @@ -224,6 +224,7 @@ public class GranitProtocolDecoder extends BaseProtocolDecoder { position.setDeviceId(deviceSession.getDeviceId()); position.setTime(new Date((unixTime + i * timeIncrement) * 1000)); decodeStructure(buf, position); + position.set(Position.KEY_ARCHIVE, true); positions.add(position); } else { buf.skipBytes(20); // skip filled 0xFE structure diff --git a/src/org/traccar/protocol/WialonProtocolDecoder.java b/src/org/traccar/protocol/WialonProtocolDecoder.java index 72bf51862..82098413b 100644 --- a/src/org/traccar/protocol/WialonProtocolDecoder.java +++ b/src/org/traccar/protocol/WialonProtocolDecoder.java @@ -166,6 +166,7 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder { for (String message : messages) { Position position = decodePosition(channel, remoteAddress, message); if (position != null) { + position.set(Position.KEY_ARCHIVE, true); positions.add(position); } } diff --git a/src/org/traccar/protocol/WondexProtocolDecoder.java b/src/org/traccar/protocol/WondexProtocolDecoder.java index 8be5e09b8..e27745f38 100644 --- a/src/org/traccar/protocol/WondexProtocolDecoder.java +++ b/src/org/traccar/protocol/WondexProtocolDecoder.java @@ -36,7 +36,7 @@ public class WondexProtocolDecoder extends BaseProtocolDecoder { } private static final Pattern PATTERN = new PatternBuilder() - .number("[^d]*") // deader + .number("[^d]*") // header .number("(d+),") // device identifier .number("(dddd)(dd)(dd)") // date (yyyymmdd) .number("(dd)(dd)(dd),") // time (hhmmss) @@ -105,8 +105,9 @@ public class WondexProtocolDecoder extends BaseProtocolDecoder { position.setCourse(parser.nextDouble(0)); position.setAltitude(parser.nextDouble(0)); - position.setValid(true); - position.set(Position.KEY_SATELLITES, parser.nextInt(0)); + int satellites = parser.nextInt(0); + position.setValid(satellites != 0); + position.set(Position.KEY_SATELLITES, satellites); position.set(Position.KEY_EVENT, parser.next()); position.set(Position.KEY_BATTERY, parser.nextDouble()); diff --git a/test/org/traccar/ProtocolTest.java b/test/org/traccar/ProtocolTest.java index eaecfab0b..3b801c6eb 100644 --- a/test/org/traccar/ProtocolTest.java +++ b/test/org/traccar/ProtocolTest.java @@ -241,6 +241,10 @@ public class ProtocolTest extends BaseTest { Assert.assertTrue(attributes.get(Position.KEY_MOTION) instanceof Boolean); } + if (attributes.containsKey(Position.KEY_ARCHIVE)) { + Assert.assertTrue(attributes.get(Position.KEY_ARCHIVE) instanceof Boolean); + } + if (position.getNetwork() != null && position.getNetwork().getCellTowers() != null) { for (CellTower cellTower : position.getNetwork().getCellTowers()) { checkInteger(cellTower.getMobileCountryCode(), 0, 999); |