ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT.
USING THE WEBINOS PLATFORM INSIDE THE AUTOMOTIVE DOMAIN.
BMW Group Research and Technology / BMW AG / TU Munich, November 2012
ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT. USING - - PowerPoint PPT Presentation
BMW Group Research and Technology / BMW AG / TU Munich, November 2012 ENABLING RICH WEB APPLICATIONS FOR IN-VEHICLE INFOTAINMENT. USING THE WEBINOS PLATFORM INSIDE THE AUTOMOTIVE DOMAIN. AGENDA. + =? Our Approach Motivation
USING THE WEBINOS PLATFORM INSIDE THE AUTOMOTIVE DOMAIN.
BMW Group Research and Technology / BMW AG / TU Munich, November 2012
Motivation
Why Web & Autmotive?
Background
What Is webinos?
Our Approach
Vehicle Data for Web Apps
Live Demo
webinos Automotive Apps
Lessons learned
Take Home Message
Page 2 Vehicle data access in webinos, BMW Group Research and Technology, November 2012
Open Questions
The Road Ahead of Us
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 3
2008 2012
2 headunits 3G 3GS 4 4S 5 5 generations
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 4
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 5
based application platform
European Commision
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 6
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 7
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 8
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 9
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 10
(addEventListener)
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 11
vehicle.get('tripcomputer', ¡tcHandler); ¡//one-‑time ¡request ¡ vehicle.addEventListener('tripcomputer', ¡tcHandler); ¡//monitor ¡tripcomputer ¡ ¡ function ¡tcHandler(data){ ¡ ¡console.log('Average ¡consumption': ¡+ ¡data.averageConsumption); ¡ ¡console.log('Average ¡speed': ¡+ ¡data.averageSpeed); ¡ ¡console.log('Average ¡trip ¡speed': ¡+ ¡data.tripSpeed); ¡ ¡// ¡... ¡ } ¡
Tripcomputer Data Parking Sensor Data
Position [string]
averageSpeed [Short] averageConsumption [Short] Mileage [Short] tripDistance [Short] Range [Short]
Vehicle Data Objects
Left [Short] Midleft [Short] Midright [Short] Right [Short] OutterRight [Short]
Gear Data
Gear [Short]
Light Data Engine Oil Data
Level [string]
get addEventListener removeEventListener
lightId [string] Active [boolean]
Wiper Data
Position [string]
Window Data
driver [Short] behindDriver [Short] passenger [Short] behindPassenger [Short]
Door Data
driver [Short] behindDriver [Short] passenger [Short] behindPassenger [Short]
Tire Pressure
frontRight [Short] frontLeft [Short] rearRight [Short] rearLeft [Short]
Climate Data
zone [String] desiredTemperature [Short] acStatus [boolean] ventLevel [Short] ventMode [boolean]
Seat Data
position [String] settings [SeatSetting[]]
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 12
Brand= BMW Model= ActiveHybrid 7 Year=2012 Fuel=Gas Hybrid= mild Steeringwheel= left Transmission= automatic
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 13
(findDestination)
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 14
Request guidance
function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡
¡
Find a destination
var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }
¡
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 15
Request guidance
function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡
¡
Find a destination
var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }
¡
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 16
Request guidance
function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡
¡
Find a destination
var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }
¡
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 17
Request guidance
function ¡navigateTo(destination){ ¡ ¡w ¡ebinos.navigation.requestGuidance( ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ } ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡}, ¡ ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡
¡
Find a destination
var ¡destinations ¡=new ¡Array(); ¡ webinos.navigation.findDestination("BMW ¡ Welt", ¡destinationCB, ¡errorCB); ¡ function ¡destinationCB(pois){ ¡ if(destinations.length ¡> ¡0){ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ else{ ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ }
¡
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 18
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 19
Personal Zone Proxy (Node.js) Personal Zone Hub (Node.js) Personal Zone Proxy (Node.js)
Smartphone Tablet PC Home Media globally accesible: pzh.webinos.org
Vehicle Data Provider Personal Zone Proxy Application Runtime Kernel Hardware
MOST Driver
webinos.js (API Proxy) Message Handler
MOST
Vehicle Access Manager
API Manager
CAN Driver CAN
Web App Web App …
Vehicle Navigation Device Orientation Geolocation
… …
WebSocket Connection
IVI-System
JSON-RPC 2.0
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 20
Basic infrastructure Demonstrator box
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 21
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 22
Browser-based trip computer for In-car head units
= HTML5 app
Seamless trip planing on desktop, smartphone, and IVI-System
within a personal zone.
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 23
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 24
Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 25