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.

var vidWidth;var vidHeight;if (screen.availWidth > 400) {vidWidth = 550;vidHeight = 346;}else {vidWidth = 240;vidHeight = 151;}var _nlvq = _nlvq || [];_nlvq.push([‘api’,’p1′]);_nlvq.push([‘uid’,’TUP4HR’]);_nlvq.push([‘width’, vidWidth]);_nlvq.push([‘height’, vidHeight]);


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