package quarks.test.svt.apps;

import static quarks.analytics.math3.stat.Statistic.MAX;
import static quarks.analytics.math3.stat.Statistic.MEAN;
import static quarks.analytics.math3.stat.Statistic.MIN;
import static quarks.analytics.math3.stat.Statistic.STDDEV;

import java.util.concurrent.atomic.AtomicReference;

import org.apache.commons.math3.util.Pair;

import com.google.gson.JsonObject;

import quarks.connectors.iot.QoS;
import quarks.samples.apps.JsonTuples;
import quarks.samples.apps.Range;
import quarks.samples.apps.sensorAnalytics.SensorAnalyticsApplication;
import quarks.samples.utils.sensor.PeriodicRandomSensor;
import quarks.topology.TStream;
import quarks.topology.Topology;
import quarks.topology.plumbing.PlumbingStreams;

public class ObdAnalyticsApplication{

    private final FleetManagementAnalyticsClientApplication app;
    private final Topology t;
    private final String sensorId = "obd";

    public ObdAnalyticsApplication(Topology t, FleetManagementAnalyticsClientApplication app) {
        this.t = t;
        this.app = app;
    }
    
    /**
     * Add the GPS sensor's analytics to the topology.
     */
    public void addAnalytics() {

    }
}

@@ -1,8 +1,579 @@
+/**%0A * GPS analytics%0A * %3Cp%3E%0A * Source is a stream of GPS sensor data %7B@link GpsSensor%7D%0A * %3Cp%3E%0A * Here's an outline of the topology%0A * %3Cul%3E%0A * %3Cli%3ELog GPS coordinates by publishing to IotF. The data may be used by a%0A * server application to display the vehicle on a map.%3C/li%3E%0A * %3Cli%3EFilter to detect speeds above a threshold and publish alert IotF%3C/li%3E%0A * %3Cli%3EFilter for GPS coordinates that are outside of a defined Geofence%0A * boundary%3C/li%3E%0A * %3Cli%3EWindowing to detect hard driving: hard braking or hard acceleration and%0A * publish alert to IotF%3C/li%3E%0A * %3C/ul%3E%0A * %3Cp%3E%0A */%0A
 package 
@@ -1196,16 +1196,67 @@
 Sensor;%0A
+import quarks.test.svt.utils.sensor.gps.GpsSensor;%0A
 import q

Add Apache license header to ObdAnalyticsApplication.java