GetHistory API RFC

The purpose of GetHistory is to allow application to get stored
information from the system without having to perform logging
themselves.  Having the system provide data logging avoids the problem
of having multiple applications logging the same data.

Being able to retrieve logged data allows for some interesting
features.  There are a number of projects that log and do neat things
with vehicle data[1].

This API will come with the assumption that the system will determine
what data is stored, how often and how far back in time data will be
available.

This API may have one flaw however in that it may be processor
intensive to do huge queries and pass that data to web applications.
If we want to avoid that, we may want change the API with that in
mind.

It is also possible we can offer this API as an appendix to our
vehicle data specification.

[1] - http://icculus.org/obdgpslogger/

interface HistoryItem {
  readonly attribute any value;
  readonly attribute DOMTimeStamp timeStamp;
}

callback GetHistoryCallback = void callback(HistoryItem[] items);

partial interface VehicleInterface {
  Promise getHistory(Date begin, Date end, optional Zone zone);
  readonly attribute boolean isLogged;
  readonly attribute Date from;
  readonly attribute Date to;
  readonly attribute short rate; // µHz
}

//check if there is data being logged for vehicleSpeed:
if(vehicle.vehicleSpeed.isLogged)
{
   /// get all vehicleSpeed from the beginning of time
   vehicle.vehicleSpeed.getHistory(new Date(0), new Date).then(
function ( data ) {
    console.log(data.length);
  });

  /// get all vehicleSpeed since it was first logged:

  vehicle.vehicleSpeed.getHistory(vehicle.vehicleSpeed.from,
vehicle.vehicleSpeed.to).then( function ( data ) {
    console.log(data.length);
  });
}

-Kevron

Received on Wednesday, 9 April 2014 19:52:50 UTC