diff options
Diffstat (limited to 'src/org/traccar/events/MaintenanceEventHandler.java')
-rw-r--r-- | src/org/traccar/events/MaintenanceEventHandler.java | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/org/traccar/events/MaintenanceEventHandler.java b/src/org/traccar/events/MaintenanceEventHandler.java index 466e0b617..9e0da97f5 100644 --- a/src/org/traccar/events/MaintenanceEventHandler.java +++ b/src/org/traccar/events/MaintenanceEventHandler.java @@ -38,30 +38,27 @@ public class MaintenanceEventHandler extends BaseEventHandler { } double maintenanceInterval = Context.getDeviceManager() - .lookupServerDouble(device.getId(), ATTRIBUTE_MAINTENANCE_INTERVAL, 0); + .lookupAttributeDouble(device.getId(), ATTRIBUTE_MAINTENANCE_INTERVAL, 0, false); if (maintenanceInterval == 0) { return null; } double maintenanceStart = Context.getDeviceManager() - .lookupServerDouble(device.getId(), ATTRIBUTE_MAINTENANCE_START, 0); + .lookupAttributeDouble(device.getId(), ATTRIBUTE_MAINTENANCE_START, 0, false); Collection<Event> events = new ArrayList<>(); double oldTotalDistance = 0.0; double newTotalDistance = 0.0; Position lastPosition = Context.getIdentityManager().getLastPosition(position.getDeviceId()); - if (lastPosition != null && lastPosition.getAttributes().containsKey(Position.KEY_TOTAL_DISTANCE)) { - oldTotalDistance = ((Number) lastPosition.getAttributes().get(Position.KEY_TOTAL_DISTANCE)).doubleValue(); - } - - if (position.getAttributes().containsKey(Position.KEY_TOTAL_DISTANCE)) { - newTotalDistance = ((Number) position.getAttributes().get(Position.KEY_TOTAL_DISTANCE)).doubleValue(); + if (lastPosition != null) { + oldTotalDistance = lastPosition.getDouble(Position.KEY_TOTAL_DISTANCE); } + newTotalDistance = position.getDouble(Position.KEY_TOTAL_DISTANCE); oldTotalDistance -= maintenanceStart; newTotalDistance -= maintenanceStart; if ((long) (oldTotalDistance / maintenanceInterval) < (long) (newTotalDistance / maintenanceInterval)) { - events.add(new Event(Event.TYPE_MAINTENANCE_NEEDED, position.getDeviceId(), position.getId())); + events.add(new Event(Event.TYPE_MAINTENANCE, position.getDeviceId(), position.getId())); } return events; |