diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/BasePipelineFactory.java | 9 | ||||
-rw-r--r-- | src/org/traccar/reports/Summary.java | 8 | ||||
-rw-r--r-- | src/org/traccar/reports/model/SummaryReport.java | 11 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java index 2b5028f33..ed7aa0a69 100644 --- a/src/org/traccar/BasePipelineFactory.java +++ b/src/org/traccar/BasePipelineFactory.java @@ -31,6 +31,7 @@ import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.handler.timeout.IdleStateHandler; import org.traccar.events.CommandResultEventHandler; import org.traccar.events.GeofenceEventHandler; +import org.traccar.events.IgnitionEventHandler; import org.traccar.events.MotionEventHandler; import org.traccar.events.OverspeedEventHandler; import org.traccar.events.AlertEventHandler; @@ -55,6 +56,7 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { private MotionEventHandler motionEventHandler; private GeofenceEventHandler geofenceEventHandler; private AlertEventHandler alertEventHandler; + private IgnitionEventHandler ignitionEventHandler; private static final class OpenChannelHandler extends SimpleChannelHandler { @@ -156,6 +158,9 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { if (Context.getConfig().getBoolean("event.alertHandler")) { alertEventHandler = new AlertEventHandler(); } + if (Context.getConfig().getBoolean("event.ignitionHandler")) { + ignitionEventHandler = new IgnitionEventHandler(); + } } protected abstract void addSpecificHandlers(ChannelPipeline pipeline); @@ -225,6 +230,10 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { pipeline.addLast("AlertEventHandler", alertEventHandler); } + if (alertEventHandler != null) { + pipeline.addLast("IgnitionEventHandler", ignitionEventHandler); + } + pipeline.addLast("mainHandler", new MainEventHandler()); return pipeline; } diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java index e0da1c87e..2c777b9bb 100644 --- a/src/org/traccar/reports/Summary.java +++ b/src/org/traccar/reports/Summary.java @@ -33,6 +33,14 @@ public final class Summary { if (previousPosition != null) { result.addDistance(DistanceCalculator.distance(previousPosition.getLatitude(), previousPosition.getLongitude(), position.getLatitude(), position.getLongitude())); + if (position.getAttributes().get(Position.KEY_IGNITION) != null + && Boolean.parseBoolean(position.getAttributes().get(Position.KEY_IGNITION).toString()) + && previousPosition.getAttributes().get(Position.KEY_IGNITION) != null + && Boolean.parseBoolean(previousPosition.getAttributes() + .get(Position.KEY_IGNITION).toString())) { + result.addMotorHours(position.getFixTime().getTime() + - previousPosition.getFixTime().getTime()); + } } previousPosition = position; speedSum += position.getSpeed(); diff --git a/src/org/traccar/reports/model/SummaryReport.java b/src/org/traccar/reports/model/SummaryReport.java index e42727eaf..01006558f 100644 --- a/src/org/traccar/reports/model/SummaryReport.java +++ b/src/org/traccar/reports/model/SummaryReport.java @@ -47,4 +47,15 @@ public class SummaryReport { this.maxSpeed = maxSpeed; } } + + private long motorHours; + public long getMotorHours() { + return motorHours; + } + public void setMotorHours(long motorHours) { + this.motorHours = motorHours; + } + public void addMotorHours(long motorHours) { + this.motorHours += motorHours; + } } |