enabling rich web applications for in vehicle infotainment
play

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


  1. 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.

  2. AGENDA. + =? Our Approach Motivation Background Vehicle Data for Web Apps Why Web & Autmotive? What Is webinos? Live Demo Open Questions Lessons learned webinos Automotive Apps The Road Ahead of Us Take Home Message Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 2

  3. MOTIVATION: CURRENT LANDSCAPE OF IVI SYSTEMS. - Long time-to-market for in-car infotainment applications and services - Highly fragmented landscape for In- 2 headunits Vehicle Infotainment (IVI) systems 2008 2012 5 generations - Customer demand for more personalization options on IVI systems 3G 3GS 4 4S 5 (seamless use of services across different devices) - Difficult to attract third-party developers for IVI systems Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 3

  4. MOTIVATION: UBIQUITY OF THE WEB AND THE BROWSER. - General trend towards Web- and browser-based services and applications on smartphones, tablets and desktops - Highly standardized runtime environment for application and services - Large developer base Deduction: The Browser is the preferred candidate for a runtime environment on IVI systems. Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 4

  5. BACKGROUND: WHAT IS WEBINOS? - An open , cross-device and browser- based application platform - Research project funded by the European Commision - 30 partners - Device manufactures - Automotive manufactures - Mobile network operators - Small and medium businesses - Research Institutes - Standardization bodies Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 5

  6. BACKGROUND: SAY HELLO TO WEBINOS! Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 6

  7. BACKGROUND: SAY HELLO TO WEBINOS! Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 7

  8. KEY QUESTION: HOW TO GET ACCESS TO VEHICLE DATA? Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 8

  9. OUR APIS: DESIGN APPROACH. - Use data from other standardized APIs instead of duplicating them - Asynchronous model to retrieve dynamic vehicle data - Use case driven grouping of data properties to simplify access for web apps - Minimize resource overhead for providing vehicle data Two ‘automotive’ specific APIs - Vehicle API (for retrieving vehicle specific data) - Navigation API (for interacting with navigation system) Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 9

  10. VEHICLE API: GENERAL CONCEPT. - Soley read access to vehicle data (at this time) - Distinction between static (e.g. transmission type) and dynamic (e.g. gear) vehicle data - Developer registers callback handlers for retrieving dynamic vehicle data - Dynamic data can be requested once ( get ) or can be monitored ( addEventListener ) - API is provided as part of window.webinos.vehicle object Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 10

  11. Vehicle data access in webinos, BMW Group Research and Technology, November 2012 VEHICLE API: WHICH DYNAMIC DATA IS PROVIDED? Position [string] } ¡ function ¡tcHandler(data){ ¡ ¡ vehicle.addEventListener('tripcomputer', ¡tcHandler); ¡//monitor ¡tripcomputer ¡ vehicle.get('tripcomputer', ¡tcHandler); ¡//one-­‑time ¡request ¡ Parking Sensor outLeft [Short] ¡// ¡... ¡ ¡console.log('Average ¡trip ¡speed': ¡+ ¡data.tripSpeed); ¡ ¡console.log('Average ¡speed': ¡+ ¡data.averageSpeed); ¡ ¡console.log('Average ¡consumption': ¡+ ¡data.averageConsumption); ¡ Left [Short] Data Midleft [Short] Midright [Short] Right [Short] OutterRight [Short] averageSpeed [Short] Tripcomputer averageConsumption [Short] Data Mileage [Short] tripDistance [Short] Range [Short] Data Gear Gear [Short] lightId [string] Data Light Active [boolean] Oil Data Engine Vehicle Data Objects Level [string] Wiper Data Position [string] driver [Short] Window behindDriver [Short] Data passenger [Short] behindPassenger [Short] driver [Short] behindDriver [Short] Data Door passenger [Short] behindPassenger [Short] frontRight [Short] Pressure frontLeft [Short] Tire rearRight [Short] rearLeft [Short] zone [String] desiredTemperature [Short] Climate Data acStatus [boolean] ventLevel [Short] ventMode [boolean] position [String] Data Seat settings [SeatSetting[]] get addEventListener Page 11 removeEventListener

  12. VEHICLE API: WHICH STATIC DATA IS PROVIDED? - brand (string) - model (string) - year (string) - fuel (enum) - hybrid (enum) Brand= BMW Model= ActiveHybrid 7 - steeringwheel Year=2012 Fuel=Gas Hybrid= mild - transmission Steeringwheel= left Transmission= automatic Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 12

  13. NAVIGATION API: GENERAL CONCEPT. - simple API to interact with navigation software - API is provided as part of the window.webinos.navigation object - query for Point-of-Interests within a specified area ( findDestination ) - Set the next destination of the navigtion system ( requestGuidance ) - Retrieve status of the navigation system ( getStatus ) Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 13

  14. NAVIGATION API: CODE EXAMPLE. Find a destination Request guidance var ¡destinations ¡=new ¡Array(); ¡ function ¡navigateTo(destination){ ¡ ¡ w ¡ebinos.navigation.requestGuidance( ¡ webinos.navigation.findDestination("BMW ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ Welt", ¡destinationCB, ¡errorCB); ¡ } ¡ function ¡destinationCB(pois){ ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ if(destinations.length ¡> ¡0){ ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ else{ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡}, ¡ } ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡ ¡ Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 14

  15. NAVIGATION API: CODE EXAMPLE. Find a destination Request guidance var ¡destinations ¡=new ¡Array(); ¡ function ¡navigateTo(destination){ ¡ ¡ w ¡ebinos.navigation.requestGuidance( ¡ webinos.navigation.findDestination("BMW ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ Welt", ¡destinationCB, ¡errorCB); ¡ } ¡ function ¡destinationCB(pois){ ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ if(destinations.length ¡> ¡0){ ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ else{ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡}, ¡ } ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡ ¡ Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 15

  16. NAVIGATION API: CODE EXAMPLE. Find a destination Request guidance var ¡destinations ¡=new ¡Array(); ¡ function ¡navigateTo(destination){ ¡ ¡ w ¡ebinos.navigation.requestGuidance( ¡ webinos.navigation.findDestination("BMW ¡ ¡ ¡destination,false, ¡navigationHandler); ¡ Welt", ¡destinationCB, ¡errorCB); ¡ } ¡ function ¡destinationCB(pois){ ¡ //callback ¡handler ¡for ¡guidance ¡events ¡ if(destinations.length ¡> ¡0){ ¡ var ¡navigationHandler ¡= ¡{ ¡ ¡navigateTo(destinations[0]) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡onRequest: ¡function(id, ¡poi){ ¡ else{ ¡ ¡ ¡console.log(’Guidance ¡set ¡to’ ¡+ ¡poi.name); ¡ ¡console.log("No ¡POI ¡found"); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡}, ¡ } ¡onReach: ¡function(id, ¡poi){ ¡ ¡ ¡ ¡console.log(poi.name ¡+ ¡’ ¡reached.’); ¡ ¡}, ¡ ¡onCancel: ¡function(id, ¡poi){ ¡ ¡ ¡console.log(’Guidance ¡to ¡’ ¡+ ¡poi.name ¡+ ¡’ ¡ is ¡ ¡ ¡cancelled.’); ¡ ¡} ¡ } ¡ ¡ Vehicle data access in webinos, BMW Group Research and Technology, November 2012 Page 16

Recommend


More recommend