w3c web and automotive workshop tizen ivi vehicle data

15
W3C Web and Automotive Workshop Tizen IVI Vehicle Data Mikko Ylinen Intel Open Source Technology Center Nov 14th 2012

Upload: others

Post on 12-Sep-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

W3C Web and Automotive Workshop Tizen IVI Vehicle Data

Mikko Ylinen Intel Open Source Technology Center Nov 14th 2012

Page 2: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

2

Agenda

•  Position Paper Highlights

•  The API

•  Demo Setup and Architecture

Page 3: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

3

Position Paper Highlights (1/2)

•  In order to be able to provide automotive rich UI and applications, an access to IVI system provided data is needed. Ideally, this is done through standardized automotive Web APIs.

•  To date, there's no standardized Web API for IVI to access automotive data. Furthermore, different car manufacturers (or even different car models) can provide very different data items.

•  Different parties, e.g., GENIVI or Webinos, have started to specify their own specifications for automotive Web APIs.

Page 4: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

4

Position Paper Highlights (2/2)

•  Some design principles for a Vehicle Web API •  The API is lightweight and provides getting and setting data items •  The API implements an extremely minimal set of data items that are the

base set required for compliance •  The API has mechanisms for event based updates to requested data items •  The API implements a method for a Web application to query for supported

data items, so graceful functionality degradation is possible

Page 5: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

5

The API get(eventlist, successCB, errorCB)

•  Retrieve the specified data values, or all data values if blank

set(eventlist, valuelist, successCB, errorCB) •  Set the specified data values

getSupportedEventTypes(type, writeable, successCB, errorCB) •  Retrieve the list of events available on the platform

subscribe(eventlist, successCB, errorCB) •  Subscribe to update events for the specified data items

unsubscribe(eventlist, successCB, errorCB) •  Unsubscribe from update events for the specified data items

Page 6: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

6

Example code - events

function engineSpeedEvent(data) {

var newRPMs = data.value;

}

function onLoad() {

vehicle.subscribe(["speedometer", "engine_speed"]);

document.addEventListener("speedometer", function(data) {

var newSpeed = data.value;

});

document.addEventListener("engine_speed", engineSpeedEvent);

}

Page 7: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

7

Example code - set

function setDriverHeight() {

vehicle.set("driver_seat_position_headrest", 10,

function() {

console.log("Driver headrest set successfully!");

},

function(error) {

console.log("Error setting Driver headrest value: " + error.message);

}

);

}

Page 8: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

8

API FIXME

•  Create a WebIDL definition from the API

•  Improve API’s successCB and errorCB handling

•  Listen feedback, re-iterate

Page 9: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

9

Demo Description

Abstract: This demo shows how the Automotive Message Broker can be used to translate the action of a steering wheel, pedals, gear shift or any other vehicle information into data that can be displayed in a web application. Tizen includes the Automotive Message Broker which abstracts CAN messages and other low level vehicle information and exposes them to developers as a high level API.

Hardware: Logitech steering wheel (inc. pedals, gear stick), NDiS-166, 2 monitors

Page 10: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

10

Demo Pics

Page 11: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

11

Tizen IVI Web API Prototype

AMB Core

GhostCluster app

websocket sink + API

wheel source

Input layer

Automotive Message Broker

Web Applications

Middleware

Kernel

websocket connection

Joystick wheel

Page 12: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

12

Tizen IVI Web API Final Architecture

AMB Core

A Web app

WRT sink

Car BUS source

Car bus driver

Automotive Message Broker

Web Applications

Middleware

Kernel

Car bus

WebKit+ JS Core

Vehicle API Plugin

Tizen Web Runtime

Page 13: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

13

Performance View

•  Environment: from HW to AMB core

•  Wheel plug-in: 2000+ properties per second, < 5% CPU

•  OBD-II plug-in: 80-100 properties per second

Page 14: W3C Web and Automotive Workshop Tizen IVI Vehicle Data

14

the Code

•  API definition

https://github.com/otcshare/automotive-message-broker/blob/master/plugins/websocketsink/test/api.js

•  Demo Web App

https://github.com/otcshare/GhostCluster

Page 15: W3C Web and Automotive Workshop Tizen IVI Vehicle Data