aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/events/OverspeedEventHandler.java
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2017-08-11 09:22:53 +0500
committerAbyss777 <abyss@fox5.ru>2017-08-11 09:27:41 +0500
commit2e459d8d591ee9d3578a38d981e7c1c13eb3c389 (patch)
treed5d69d81dc796b54d67946b753e5f801fcb07913 /src/org/traccar/events/OverspeedEventHandler.java
parent532e0a98d469573a575dc595554792cbbd4cd953 (diff)
downloadtrackermap-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.java20
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;