aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar')
-rw-r--r--src/org/traccar/database/ConnectionManager.java14
-rw-r--r--src/org/traccar/events/MotionEventHandler.java27
2 files changed, 20 insertions, 21 deletions
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java
index b3b00fefa..1c5d4428a 100644
--- a/src/org/traccar/database/ConnectionManager.java
+++ b/src/org/traccar/database/ConnectionManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 - 2016 Anton Tananaev (anton@traccar.org)
+ * Copyright 2015 - 2017 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -149,15 +149,15 @@ public class ConnectionManager {
}
Event result = null;
Boolean oldMotion = deviceState.getMotionState();
- long currentTime = new Date().getTime();
+ long currentTime = System.currentTimeMillis();
boolean newMotion = !oldMotion;
- Position potentialPosition = deviceState.getMotionPosition();
- if (potentialPosition != null) {
- long potentialTime = potentialPosition.getFixTime().getTime()
+ Position motionPosition = deviceState.getMotionPosition();
+ if (motionPosition != null) {
+ long motionTime = motionPosition.getFixTime().getTime()
+ (newMotion ? tripsConfig.getMinimalTripDuration() : tripsConfig.getMinimalParkingDuration());
- if (potentialTime <= currentTime) {
+ if (motionTime <= currentTime) {
String eventType = newMotion ? Event.TYPE_DEVICE_MOVING : Event.TYPE_DEVICE_STOPPED;
- result = new Event(eventType, potentialPosition.getDeviceId(), potentialPosition.getId());
+ result = new Event(eventType, motionPosition.getDeviceId(), motionPosition.getId());
deviceState.setMotionState(newMotion);
deviceState.setMotionPosition(null);
}
diff --git a/src/org/traccar/events/MotionEventHandler.java b/src/org/traccar/events/MotionEventHandler.java
index 9168d0fd8..228b43c0f 100644
--- a/src/org/traccar/events/MotionEventHandler.java
+++ b/src/org/traccar/events/MotionEventHandler.java
@@ -1,5 +1,6 @@
/*
- * Copyright 2016 Anton Tananaev (anton@traccar.org)
+ * Copyright 2016 - 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,9 +33,7 @@ public class MotionEventHandler extends BaseEventHandler {
private TripsConfig tripsConfig;
public MotionEventHandler() {
- if (Context.getConfig() != null) {
- tripsConfig = ReportUtils.initTripsConfig();
- }
+ tripsConfig = ReportUtils.initTripsConfig();
}
public static Event updateMotionState(DeviceState deviceState, Position position, TripsConfig tripsConfig) {
@@ -51,22 +50,22 @@ public class MotionEventHandler extends BaseEventHandler {
deviceState.setMotionPosition(null);
}
- Position potentialPosition = deviceState.getMotionPosition();
- if (potentialPosition != null) {
- long potentialTime = potentialPosition.getFixTime().getTime();
- double distance = ReportUtils.calculateDistance(potentialPosition, position, false);
+ Position motionPosition = deviceState.getMotionPosition();
+ if (motionPosition != null) {
+ long motionTime = motionPosition.getFixTime().getTime();
+ double distance = ReportUtils.calculateDistance(motionPosition, position, false);
if (newMotion) {
- if (potentialTime + tripsConfig.getMinimalTripDuration() <= currentTime
+ if (motionTime + tripsConfig.getMinimalTripDuration() <= currentTime
|| distance >= tripsConfig.getMinimalTripDistance()) {
- result = new Event(Event.TYPE_DEVICE_MOVING, potentialPosition.getDeviceId(),
- potentialPosition.getId());
+ result = new Event(Event.TYPE_DEVICE_MOVING, motionPosition.getDeviceId(),
+ motionPosition.getId());
deviceState.setMotionState(true);
deviceState.setMotionPosition(null);
}
} else {
- if (potentialTime + tripsConfig.getMinimalParkingDuration() <= currentTime) {
- result = new Event(Event.TYPE_DEVICE_STOPPED, potentialPosition.getDeviceId(),
- potentialPosition.getId());
+ if (motionTime + tripsConfig.getMinimalParkingDuration() <= currentTime) {
+ result = new Event(Event.TYPE_DEVICE_STOPPED, motionPosition.getDeviceId(),
+ motionPosition.getId());
deviceState.setMotionState(false);
deviceState.setMotionPosition(null);
}