diff options
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/traccar/Main.java | 2 | ||||
-rw-r--r-- | src/org/traccar/database/DataManager.java | 10 | ||||
-rw-r--r-- | src/org/traccar/protocol/MiniFinderProtocolDecoder.java | 5 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/org/traccar/Main.java b/src/org/traccar/Main.java index 21625d3c1..1e2db2693 100644 --- a/src/org/traccar/Main.java +++ b/src/org/traccar/Main.java @@ -44,7 +44,7 @@ public final class Main { @Override public void run() { try { - Context.getDataManager().clearPositionsHistory(); + Context.getDataManager().clearHistory(); } catch (SQLException error) { Log.warning(error); } diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index 0c5f458a2..2f2cf1275 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -308,11 +308,15 @@ public class DataManager { .executeQuery(Position.class); } - public void clearPositionsHistory() throws SQLException { - long historyDays = config.getInteger("database.positionsHistoryDays"); + public void clearHistory() throws SQLException { + long historyDays = config.getInteger("database.historyDays"); if (historyDays != 0) { + Date timeLimit = new Date(System.currentTimeMillis() - historyDays * 24 * 3600 * 1000); QueryBuilder.create(dataSource, getQuery("database.deletePositions")) - .setDate("serverTime", new Date(System.currentTimeMillis() - historyDays * 24 * 3600 * 1000)) + .setDate("serverTime", timeLimit) + .executeUpdate(); + QueryBuilder.create(dataSource, getQuery("database.deleteEvents")) + .setDate("serverTime", timeLimit) .executeUpdate(); } } diff --git a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java index c3279da43..8bfb4fb36 100644 --- a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java +++ b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java @@ -79,7 +79,10 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder { private void decodeFlags(Position position, int flags) { - position.setValid(BitUtil.check(flags, 0)); + position.setValid(BitUtil.to(flags, 2) > 0); + if (BitUtil.check(flags, 1)) { + position.set(Position.KEY_APPROXIMATE, true); + } if (BitUtil.check(flags, 2)) { position.set(Position.KEY_ALARM, Position.ALARM_FAULT); |