aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/events/MotionEventHandler.java
diff options
context:
space:
mode:
authorninioe <ninioe@gmail.com>2016-07-19 09:07:23 +0300
committerninioe <ninioe@gmail.com>2016-07-19 09:07:23 +0300
commitef40f3317392068692606b484c6782b95b554cbf (patch)
tree41c48e6c87620a6444aed0ad5706a94e26b1662d /src/org/traccar/events/MotionEventHandler.java
parent04627d7473e4ea21d6ecd950cbb3fdd6fa249429 (diff)
parentd3e063cf9de8a45bed4dfe87b73aadfd8d2edeab (diff)
downloadtrackermap-server-ef40f3317392068692606b484c6782b95b554cbf.tar.gz
trackermap-server-ef40f3317392068692606b484c6782b95b554cbf.tar.bz2
trackermap-server-ef40f3317392068692606b484c6782b95b554cbf.zip
Merge remote-tracking branch 'refs/remotes/tananaev/master'
Diffstat (limited to 'src/org/traccar/events/MotionEventHandler.java')
-rw-r--r--src/org/traccar/events/MotionEventHandler.java23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/org/traccar/events/MotionEventHandler.java b/src/org/traccar/events/MotionEventHandler.java
index d10513d26..4a3d2f0f0 100644
--- a/src/org/traccar/events/MotionEventHandler.java
+++ b/src/org/traccar/events/MotionEventHandler.java
@@ -38,7 +38,7 @@ public class MotionEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getDataManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
if (device == null) {
return null;
}
@@ -53,16 +53,19 @@ public class MotionEventHandler extends BaseEventHandler {
if (motion == null) {
motion = Device.STATUS_STOPPED;
}
- if (valid && speed > SPEED_THRESHOLD && !motion.equals(Device.STATUS_MOVING)) {
- Context.getConnectionManager().updateDevice(position.getDeviceId(), Device.STATUS_MOVING, null);
- result = new ArrayList<>();
- result.add(new Event(Event.TYPE_DEVICE_MOVING, position.getDeviceId(), position.getId()));
- } else if (valid && speed < SPEED_THRESHOLD && motion.equals(Device.STATUS_MOVING)) {
- Context.getConnectionManager().updateDevice(position.getDeviceId(), Device.STATUS_STOPPED, null);
- result = new ArrayList<>();
- result.add(new Event(Event.TYPE_DEVICE_STOPPED, position.getDeviceId(), position.getId()));
- }
try {
+ if (valid && speed > SPEED_THRESHOLD && !motion.equals(Device.STATUS_MOVING)) {
+ device.setMotion(Device.STATUS_MOVING);
+ Context.getDeviceManager().updateDeviceStatus(device);
+ result = new ArrayList<>();
+ result.add(new Event(Event.TYPE_DEVICE_MOVING, position.getDeviceId(), position.getId()));
+ } else if (valid && speed < SPEED_THRESHOLD && motion.equals(Device.STATUS_MOVING)) {
+ device.setMotion(Device.STATUS_STOPPED);
+ Context.getDeviceManager().updateDeviceStatus(device);
+ result = new ArrayList<>();
+ result.add(new Event(Event.TYPE_DEVICE_STOPPED, position.getDeviceId(), position.getId()));
+ }
+
if (result != null && !result.isEmpty()) {
for (Event event : result) {
if (!Context.getDataManager().getLastEvents(position.getDeviceId(),