Outline
QNX CAR as an HTML5 proving ground HTML5 market trends in automotive The direction this leads us Examples: old and new Status of QNX contributions
Solution: provide dual APIs, both procedural and REST, whenever practical
Synchronous calls are convenient, but not performance optimal Problem: JavaScript single-threaded and synchronous calls stall everything for precious milliseconds Solution: be 100% asynchronous and use callbacks exclusively
Solution: use JSON to request a subset of values in getters, JSON with multiple values in setters
Must design for expansion Problem: every OEM will want additions or modifications Solution: provide enumeration whenever possible so callers dont need to hardcode
Overall picture
HTML5 activity still very high Three main categories of usage Using it for built-in HMI Using it for app container environment Using it for mobile->car integration
10
If work cannot support the broader mobile developer community, will not matter for automotive
11
12
3.
13
14
15
16
Comply with any Cordova APIs that are already in existence today such as audioplayer
Develop Cordova-compliant APIs that are scalable Architect the APIs to support a superset of automotive system configurations For example, the HVAC API allows for variable number of climate control zones in vehicles, not just driver and passenger side Develop APIs that support the shift to mobile Support applications running locally in the car, and remotely on a mobile phone
17
HVAC example
get
Name settings
HVAC Attributes
airCirculation_setting airConditioning_enabled fan_setting_l
Data Type
Boolean Boolean Number Number Number Number Number Number Number Number Boolean Boolean
set
Name args
NOTE: the list of settings is not fixed and depends on the specific system configuration
19
{ airCirculation_setting: true,
airConditioning_enabled: false, fan_speed_l: 2, [...] } qnx.hvac.set(fan_setting_l: 3, fan_setting_r: 1, [...] )
// circulate air
// left fan speed value
20
21
22
23
24
25
get
Name
sensors
Type
Array
Description
A list of sensors to get [optional]; if omitted, all sensors are returned
brakeFluid_level brake_abs brake_abs_fl brake_abs_fr brake_abs_rl brake_abs_rr brake_wear_fl brake_wear_fr brake_wear_rl brake_wear_rr engineCoolant_level
engineOil_level engineOil_pressure engine_rpm fuel_level light_head_fl light_head_fr light_tail_rl light_tail_rr speed tire_pressure_fl tire_pressure_fr
tire_pressure_rl tire_pressure_rr tire_wear_fl tire_wear_fr tire_wear_rl tire_wear_rr transmission_clutchWear transmissionFluid_level transmission_gear transmission_temperature washerFluid_level
27
Returns:
{ speed: 0, tire_pressure_fl: 31, tire_pressure_fr: 31 [...] }
28
29
30
31
32
33
2012 QNX Software Systems Limited. QNX, QNX CAR, NEUTRINO, MOMENTICS, AVIAGE and other product names are or may be registered trademarks and/or trademarks of QNX Software Systems Limited (QSSL) or its licensors in Canada, the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of QSSL as of the date of this presentation. Because QSS must respond to changing market conditions, it should not be interpreted to be a commitment on the part of QSSL, and QSSL cannot guarantee the accuracy of any information provided after the date of this presentation. QSSL MAKES NO WARRANTIES, REPRESENTATIONS OR CONDITIONS EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.