W3C home > Mailing lists > Public > public-autowebplatform@w3.org > April 2014

Re: GetHistory API RFC

From: Paul Boyes <pb@opencar.com>
Date: Thu, 10 Apr 2014 16:20:13 +0000
To: "Rees, Kevron" <kevron.m.rees@intel.com>
CC: "public-autowebplatform@w3.org" <public-autowebplatform@w3.org>
Message-ID: <CAADE31F-44BA-43B8-9D1D-F6067857A7F6@opencar.com>
Kevron,

This looks good to me.  I think it covers the basics well.  Processing and data size limits will definitely be a consideration for anyone who implements the Vehicle Information API.   I believe we should make note in the spec that it is up to the implementer of the API as to what data elements get logged.

Paul J. Boyes
--------------------------------
Mobile:   206-276-9675
Skype:  pauljboyes




On Apr 9, 2014, at 12:52 PM, Rees, Kevron <kevron.m.rees@intel.com<mailto:kevron.m.rees@intel.com>> wrote:

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 Thursday, 10 April 2014 16:20:42 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:52:52 UTC