diff options
author | Abyss777 <abyss@fox5.ru> | 2017-08-11 09:22:53 +0500 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2017-08-11 09:27:41 +0500 |
commit | 2e459d8d591ee9d3578a38d981e7c1c13eb3c389 (patch) | |
tree | d5d69d81dc796b54d67946b753e5f801fcb07913 /src/org/traccar/events/OverspeedEventHandler.java | |
parent | 532e0a98d469573a575dc595554792cbbd4cd953 (diff) | |
download | trackermap-server-2e459d8d591ee9d3578a38d981e7c1c13eb3c389.tar.gz trackermap-server-2e459d8d591ee9d3578a38d981e7c1c13eb3c389.tar.bz2 trackermap-server-2e459d8d591ee9d3578a38d981e7c1c13eb3c389.zip |
Move state updates from ConnectionManager to proper event handlers
Diffstat (limited to 'src/org/traccar/events/OverspeedEventHandler.java')
-rw-r--r-- | src/org/traccar/events/OverspeedEventHandler.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/org/traccar/events/OverspeedEventHandler.java b/src/org/traccar/events/OverspeedEventHandler.java index 3b91fed4d..f0bf8a032 100644 --- a/src/org/traccar/events/OverspeedEventHandler.java +++ b/src/org/traccar/events/OverspeedEventHandler.java @@ -37,6 +37,26 @@ public class OverspeedEventHandler extends BaseEventHandler { minimalDuration = Context.getConfig().getLong("event.overspeed.minimalDuration") * 1000; } + public static Event updateOverspeedState(DeviceState deviceState, double speedLimit, + long minimalDuration, boolean notRepeat) { + Event result = null; + if (deviceState.getOverspeedState() != null && !deviceState.getOverspeedState() + && deviceState.getOverspeedPosition() != null && speedLimit != 0) { + long currentTime = System.currentTimeMillis(); + Position overspeedPosition = deviceState.getOverspeedPosition(); + long overspeedTime = overspeedPosition.getFixTime().getTime(); + if (overspeedTime + minimalDuration <= currentTime) { + result = new Event(Event.TYPE_DEVICE_OVERSPEED, overspeedPosition.getDeviceId(), + overspeedPosition.getId()); + result.set("speed", overspeedPosition.getSpeed()); + result.set(ATTRIBUTE_SPEED_LIMIT, speedLimit); + deviceState.setOverspeedState(notRepeat); + deviceState.setOverspeedPosition(null); + } + } + return result; + } + public static Event updateOverspeedState(DeviceState deviceState, Position position, double speedLimit, long minimalOverspeedDuration, boolean notRepeat) { Event result = null; |