Js in Automotive - JS.everywhere(2013)

19
JS in Automotive JS.everywhere(2013) - Treasure Island, SF Alexandre Morgaut

Transcript of Js in Automotive - JS.everywhere(2013)

Page 1: Js in Automotive - JS.everywhere(2013)

JS in AutomotiveJS.everywhere(2013) - Treasure Island, SFAlexandre Morgaut

Page 2: Js in Automotive - JS.everywhere(2013)

PresentationAlexandre Morgaut

W3C AC member

Wakanda Team

Community manager

Web Architect

JS, REST, NoSQL

W3C “jseverywhere“ community group

@amorgaut

Page 3: Js in Automotive - JS.everywhere(2013)

W3C Business Group

http://www.w3.org/community/autowebplatform/

Page 4: Js in Automotive - JS.everywhere(2013)

MembersIntelQNXVerisignOperaNokiaBlackberryVodaphoneSharp

PorscheHyundaiVolkswagenFord*Continental Automotive*KKDILG Electronics...

Page 5: Js in Automotive - JS.everywhere(2013)

QNX Architecture

Page 6: Js in Automotive - JS.everywhere(2013)

Why HTML5 for Auto

Build on something bigger than automotiveEcosystem – developers, tools, companiesStandards – no vendor lock-inFlexibility – fluid deployment and architecturesBranding – brand same app on different cars with CSSLifespan – will be supported for long timeTime to market – easy to use and leveragePowerful – rich application environmentCross-platform – deploy apps on phones and car

Page 7: Js in Automotive - JS.everywhere(2013)

Other SolutionsAndroid

Compatibility limited to Android devices

Android not yet automotive grade

MirrorLink

Responsiveness lacking today

Solves phone to car problem, nothing else

Page 8: Js in Automotive - JS.everywhere(2013)

TIZEN IVI in Jaguar LandRover

The proof of concept has been created on openly available hardware with an Intel CPU, using the Tizen open source Linux distribution as a software platform with latest HTML5 graphical user interface. Tizen was chosen as a GENIVI compliant reference.http://www.tizenexperts.com/2013/04/jaguar-land-rover-kerjasama-dengan-xchanging-dan-arynga-untuk-update-software-tizen-ivi/

http://tizentalk.com/2013/05/tizen-ivi-proof-of-concept-on-the-land-rover/

Page 9: Js in Automotive - JS.everywhere(2013)

JavaScript API

Page 10: Js in Automotive - JS.everywhere(2013)

Considered W3C APIsWeb Sockets

App Cache

Web Storage

Geolocation

Device Orientation

Web Audio

Media Capture

Proximity Sensor

Telephony API

...

http://www.w3.org/community/autowebplatform/wiki/Main_Page/CollectionOfApis

Page 12: Js in Automotive - JS.everywhere(2013)

Genevi/LGE code example

// Define constants for transmissionGearTypevar TRANSMISSIONGEARTYPE_AUTO = 1;var TRANSMISSIONGEARTYPE_MANUAL = 2;// Get a transmission gear type from VehicleInfoEventvehicle.get("vehicleinfo_transmissiongeartype", handleVehicleData, handleError)

function handleVehicleData(data) { if (data.transmissionGearType == TRANSMISSIONGEARTYPE_AUTO) { console.log("Automatic transmission equipped"); } else if (data.transmissionGearType == TRANSMISSIONGEARTYPE_MANUAL) { console.log("Manual transmission equipped"); }}

Page 13: Js in Automotive - JS.everywhere(2013)

Tizen code example

navigator.vehicle.get("HVAC", onsuccess, onerror); function onsuccess(value) { var hvacsettings = value; value.AirflowDirection = value.AIRFLOWDIRECTION_FRONT | value.AIRFLOWDIRECTION_DEFROSTER; navigator.vehicle.set("HVAC", value, onsetsuccess, onerror);}function onerror(e) { window.console.error(e.message);}function onsetsuccess() { window.console.log("success!");}

Page 14: Js in Automotive - JS.everywhere(2013)

QNX code example

//define a callback functionfunction myCallback(audioMixerItems) { //iterate through the changed items for (var i = 0; i < audioMixerItems.length; i++) { console.log( //a car.audiomixer.AudioMixerSetting value "audio mixer item setting = " + audioMixerItems[i].setting + '\n' + //a car.Zone value "audio mixer item zone = " + audioMixerItems[i].zone + '\n' + //a numeric value "audio mixer item value = " + audioMixerItems[i].value + '\n\n' ); }}

var watchId = car.audiomixer.watchAudioMixer(myCallback);

Page 15: Js in Automotive - JS.everywhere(2013)

Webinos code example

 // checking if driver door is openend. vehicleService is the vehicle service, // discovered through the webinos Discovery API,  // that has been selected by the user   vehicleService.vehicle.addEventListener("doors", doorHandler); function doorHandler(doors){  if(doors.driver){        document.getElementById("info").innerHTML = 'Please close driver door';  }   }  

Page 16: Js in Automotive - JS.everywhere(2013)
Page 17: Js in Automotive - JS.everywhere(2013)
Page 18: Js in Automotive - JS.everywhere(2013)