aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2016-10-03 12:16:15 +0500
committerAbyss777 <abyss@fox5.ru>2016-10-03 12:16:15 +0500
commitbae6692356872fcc093ce92ed37cba7d2e2f6d7f (patch)
tree40f33a5425b098fc0cb6ec717006b919463d3c47
parent4a550477eb3411894f8e12e0b2bded8051b34d07 (diff)
downloadtraccar-server-bae6692356872fcc093ce92ed37cba7d2e2f6d7f.tar.gz
traccar-server-bae6692356872fcc093ce92ed37cba7d2e2f6d7f.tar.bz2
traccar-server-bae6692356872fcc093ce92ed37cba7d2e2f6d7f.zip
Make status events switchable
-rw-r--r--debug.xml1
-rw-r--r--src/org/traccar/database/ConnectionManager.java4
2 files changed, 4 insertions, 1 deletions
diff --git a/debug.xml b/debug.xml
index a529af327..a2d6bc3ba 100644
--- a/debug.xml
+++ b/debug.xml
@@ -50,6 +50,7 @@
<entry key='event.geofenceHandler'>true</entry>
<entry key='event.alertHandler'>true</entry>
<entry key='event.ignitionHandler'>true</entry>
+ <entry key='event.statusHandler'>true</entry>
<!--<entry key='event.forward.enable'>true</entry>
<entry key='event.forward.url'>http://localhost/</entry>
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java
index 46ccab81e..b12899711 100644
--- a/src/org/traccar/database/ConnectionManager.java
+++ b/src/org/traccar/database/ConnectionManager.java
@@ -40,6 +40,7 @@ public class ConnectionManager {
private static final long DEFAULT_TIMEOUT = 600;
private final long deviceTimeout;
+ private final boolean statusHandler;
private final Map<Long, ActiveDevice> activeDevices = new HashMap<>();
private final Map<Long, Set<UpdateListener>> listeners = new HashMap<>();
@@ -47,6 +48,7 @@ public class ConnectionManager {
public ConnectionManager() {
deviceTimeout = Context.getConfig().getLong("status.timeout", DEFAULT_TIMEOUT) * 1000;
+ statusHandler = Context.getConfig().getBoolean("event.statusHandler");
}
public void addActiveDevice(long deviceId, Protocol protocol, Channel channel, SocketAddress remoteAddress) {
@@ -73,7 +75,7 @@ public class ConnectionManager {
return;
}
- if (!status.equals(device.getStatus())) {
+ if (statusHandler && !status.equals(device.getStatus())) {
Event event = new Event(Event.TYPE_DEVICE_OFFLINE, deviceId);
if (status.equals(Device.STATUS_ONLINE)) {
event.setType(Event.TYPE_DEVICE_ONLINE);