Not a member yet? Register now and get started.

lock and key

Sign in to your account.

Account Login

Forgot your password?

webinos Demo Series #1: The Vehicle API – pushing borders of Web applications

08 Feb Posted by in Demos | 11 comments

This video uses advanced Non-linear video technology powered by BitTubes and allows you to browse through the video content. Move with your mouse over the highlighted images and text in the video and click on them in order to interact with the content and get further information about the demo.


The vehicle can be a valuable provider of data. This data source can enable us to build a complete new breed of distributed Web applications and take the Web to a new level. Despite all the new possibilities, we have to take the specific challenges of software development in the automotive domain into account.

The vehicle is not your smart phone.

Today’s cars feature up to 80 electronic control units (ECUs), which are interconnected using different bus technologies for the respective tasks inside a vehicle. For the drive train and body FlexRay, CAN, OSEK or LIN are used and for entertainment components the MOST bus system is employed.

The following diagram illustrates the different bus systems inside the vehicle. In the end, all busses are connected to each other using a central gateway. At the central gateway messages which are used car-wide are converted and routed into another bus.

If we want to provide access to the vehicle, we have to interface directly with the different busses, which raises security risks. Depending on the integration level we have to obey certain norms and laws (cf., IEC 61508, Automotive Security Levels (ASIL)). In short, we have to make sure, that our infotainment applications in webinos do not interfere with safety critical functions inside the vehicle. Due to these safety demands, webinos, while featuring a lot of interesting functions, also has to prevent access to safety-critical data inside the car.

A good entry point for webinos into the vehicle system is the in-car headunit. The headunit hosts the navigation system as well as portable media integration and connects to the CD-Player, built-in GSM modem, the rear-seat entertainment system or the user’s cell phone. So, it is to some extend sandboxed from the highly safety-critical systems inside the vehicle like airbag ECUs or an active breaking system. But there are still soft-real time messages used in the headunit. For instance, the data from the parking distance sensors are routed into the headunit to illustrate the distance to sensed objects on the central display. To ensure that a webinos application does not interfere with other vehicle components, we control access to vehicle busses via the webinos API and provide safe read access to vehicle data. To this end the webinos API is – at least for now – limited to data available in the headunit, which is able to ensure the required safety properties.

The Vehicle API is aligned with W3C efforts

In the first release of the webinos platform the Vehicle API has a strong focus on providing read access to vehicle data and methods for interacting with the on-board navigation system.

The vehicle API is designed to be in line with current W3C specifications and is based on an event model. What might strike you is that the vehicle API does not provide the current speed, lateral and longitudinal acceleration. This is due to the availability of this information in W3C’s Geolocation and the Device Orientation API.

The Vehicle API provides read access to the following:

  • Static vehicle data (make, model, fuel type, transmission type)
  • Distance sensor data
  • Trip computer data (average speed, consumption, mileage, range)
  • Climate data (air conditioning and vents)
  • Control data (wipers and  lights status)
  • Gear data
  • Navigation data (destination reached, guidance cancelled)

Last but not least you can set the destination of the on-board navigation system or query it for points-of-interest, as shown in the following example:

var destinations =new Array();

destination.push({name:”BMW AG”, address : {street:”Petuelring”, streetNumber: “130″, postalCode: “80788″, city: “MÜNCHEN”, country: “DE”}});

destination.push({name:”BMW Forschung und Technik”, address:{street: “Hanauer Strasse”, streetNumber: “46″, postalCode: “80992″, city: “MÜNCHEN”, country: “DE”}});

webinos.vehicle.requestGuidance(succesCB, null, destinations);

webinos.vehicle.addEventListener(webinos.vehicle.NavigationEvent.DESTINATION_REACHED, handleDestinations, false);

function handleDestinations(event){

      if (event.address.street == destination[0].address.street) {

            console.log(“Reached the HQ”);

      } else if (event.address.street == destination[1].address.street) {

            console.log(“Reached the research center”);



Sneak Preview of our Vehicle API

During the webinos review meeting in November 2011, we presented an early prototype of the webinos Vehicle API to reviewers from the European Commission for the first time. For the review we created a little web application called ‘park distance control (PDC)’. The app combines different vehicle properties provided by the webinos API to display the distance to sensed objects near the automobile while parking it. Here is the video of the demo held during the review meeting:


Besides the webinos Vehicle API our ‘PDC App’ uses HTML, JavaScript and CSS. In order to display the distance between the car and sensed objects we are using canvas elements.

Before a parking maneuver the application is running in the background and is listening to changes of the gear.

When the gear is put in ‘R’, the application is put in the foreground and listeners for parking sensors in the front and the rear are registered.

Depending on the measured distance to obstacles sensed by the sensors, the listeners update the canvas elements accordingly.

The application is put in the background again, when the gear is put in N, P or above 2. If one of these events occurs, the listeners on the park sensors are removed.

Now, it’s up to you to take the Vehicle API for a spin and built cool new apps in conjunction with the other new webinos API and let us know, which features you like and what additional features you would like to see in upcoming releases.

Download the Demo flyer here

Simon Isenberg - BMW


Simon Isenberg is a research assistant at BMW Forschung & Technik and is preparing a doctorate at Technische Universität München. He has received an university degree in Business Information Technology from Regensburg University of Applied Sciences in 2010. From 2004 until 2010 he was a member of BMW Group’s Trainee Promotion Program which combines a fully accredited vocational training as a Management Assistant in Informatics (2006) with a university degree in Business Information Technology and internships at BMW Group offices in Munich and Palo Alto. His research focuses on the integration of Web technology into in-car infotainment systems.

Webinos interests


Representing: BMW Forschung & Technik

...Click to read less

Switch to our mobile site