SLIDE 1 Multi-zone application development Automotive Linux Summit
Kevron Rees
Fall 2013
SLIDE 2 Agenda
- Zone defined
- Automotive Use-cases that require zones
- Automotive Message Broker (AMB)
- AMB Zones API
- Filling the Use-cases
- Security Concerns
SLIDE 3
Zones Defined
Zone is a specific location inside the vehicle.
SLIDE 4
Zone Defined - ctnd
SLIDE 5
Use Cases
SLIDE 6 Use cases
- The same Seat Position Application running in each zone wants to
set Seat Position.
- Driver wants to use an Application to activate child lock for his
young child
- Driver wants to set the temperature for the front of the car in a 3+
zone vehicle.
SLIDE 7
Automotive Message Broker Zones API
SLIDE 8
Automotive Message Broker Zones API
AMB provides vehicle data to applications.
SLIDE 9 AMB Zones API
- AMB organizes data into logical DBus paths:
/{source_id}/{zone_number}/DataObject
- AMB provides a “Manager” API to discover the different
DataObjects
SLIDE 10
AMB - High level
SLIDE 11 AMB - Manager
The manager interface allows applications to:
- Find sources for a specific vehicle data object (FindObject)
- Discover zones for a given vehicle data object
(ZonesForObjectName)
- Get a vehicle data object from a specific zone (FindObjectForZone)
- List all supported vehicle data objects (List)
SLIDE 12
AMB - Manager
SLIDE 13 Zones in AMB
- 6 Zone “masks”
- and a “nozone”
SLIDE 14
Common Zone combinations
SLIDE 15
DataObject example
/{source_id}/{zone_number}/DataObject
SLIDE 16
Where are my zones?
SLIDE 17
DataObject interface
SLIDE 18
Use-cases fulfilled!
SLIDE 19 Use cases
- The same Seat Position Application running in each zone wants to
set Seat Position.
- Driver wants to activate child lock for his young child.
- Driver wants to set the temperature for the front of the car in a 3+
zone vehicle.
SLIDE 20
Use Case: The same Seat Position Application running in each zone wants to set Seat Position.
1.
Discover the current application zone {gap}.
2.
DBus API: manager.FindObjectForZone(“SeatPosition”, myZone)
3.
web api: var seatPosition = tizen.vehicle.get(“SeatPosition”, myZone)
SLIDE 21
Use Case: Driver wants to activate child lock for his young child
1.
DBus API: manager.ZonesForObjectName(“ChildLock”)
2.
App Displays the zones to Driver.
SLIDE 22
SLIDE 23 Use Case: Driver wants to activate child lock for his young child
1.
DBus API: manager.ZonesForObjectName(“ChildLock”)
2.
App Displays the zones to Driver.
3.
Driver selects a zone
4.
- bj = manager.FindObjectForZone(“ChildLock”, 10)
5.
Driver sets child lock to “true”.
SLIDE 24
Use Case: Driver wants to set the temperature for the front of the car in a 3+ zone vehicle.
SLIDE 25
Use Case: Driver wants to set the temperature for the front of the car in a 3+ zone vehicle.
1.
var zones = manager.ZonesForObject(“HVAC”)
2.
foreach(zone in zones) if(zone & Zone.Front) //set temp
SLIDE 26 Security
- We don’t want apps in certain zones to access other zones:
Example:
- Child zone to set Driver zone’s seat position
SLIDE 27
Security
Murphy policy manager
SLIDE 28
Questions
Kevron Rees email: kevron.m.rees@intel.com AMB: https://github.com/otcshare/automotive-message-broker AMB Docs: http://otcshare.github.io/automotive-message-broker/html/