QtWS15 Revolutionizing Automotive with Qt
-
Upload
johan-thelin -
Category
Technology
-
view
1.241 -
download
2
Transcript of QtWS15 Revolutionizing Automotive with Qt
10/5/20155
Open Source Stacks
• There are two major open source efforts in the IVI space– GENIVI– AGL (Automotive Grade Linux)
• GENIVI defines a standard automotive platform– Identifying existing components– Developing components to fill the gaps
• Both project build demonstrator platforms
10/5/20156
• There is a difference between building a screen into a car and bringing a screen into the car
• Safety requirements
• Driver disruptions
• Driver workload management
• Driven by liability and legal requirements
Legal Challenges
10/5/20157 10/5/20157
Automotive Challenges
• Sudden loss of power
• Boot time requirements
• Aborted shutdown requirements
• FLASH wear
• Latency requirements
• Expected life of product
• Length of projects
• Size of projects
• Complex supplier relationships
• Purchasing processes
• …
10/5/20158
The PELUX Stack
Base Operating System
CPU Adaptations ECU Adaptations
plx.
Resource
Access
Manager
GENIVI Services S S S S
plx.
Application
Manager
plx.SoftwareContainer
QtIVI
ApplicationSystem UI
Application Application Application
10/5/20159
Apps in Cars
• Remember MirrorLink?
• Who owns the data?
• Native applications – We see a large demand for this– Possible to add functions during the vehicle life-time– Matches the customer expectations
• Side effects– Partitioning the UI in exchangeable parts– Smaller updates
10/5/201510 10/5/201510
plx.ApplicationManagerQt Compositing using Wayland
• Modern, multi-process architecture
• Application Lifecycle Management
• Security model to protect integrity
• Hardware accelerated compositing using Wayland
• OpenGL and HTML applications can be seamlessly composited
• Elevates Qt from being a UI and application framework to being a fully-fledged automotive UI software platform
Application
Input Management
Notification infrastructure
Assembled views
10/5/201511
Wayland window compositor• Wayland protocol compliant
• Token based display authorization for registered apps
• Implement in QML with full Qt animation support
Security and Lifecycle Management• Application isolation via Linux Containers
• Package installation, updates and removal using self
contained bundles
App launcher• Central point for starting and stopping internal and 3rd
party apps
• Managing out-of-memory situations
• Quick launch for all Qt based apps
User input management• Central virtual keyboard component
• Transparently used by all apps
• Integrated with Wayland compositor
plx.ApplicationManager
10/5/201512
Architecture
sandboxedunprivilegedrootunprivileged
Application Manager
Installation
Helper
(root)
Runtime / Sandbox
setup
(root)
Runtime native Native App
Runtime HTML HTML App
Runtime QML QML App
10/5/201513
Qt IVI – Extensible Platform APIs
• Qt IVI provides an integration pattern for creating Qt APIs with flexible backends
• It consists of three main components– Core, provides discovery mechanism and base classes– Feature, provides APIs to apps– Backend, implements feature APIs
• A typical deployment consists of multiple features and backends
Core
Feature
Backend
App
10/5/201514
Feature Scope
• Provide a reference API based on the W3C Automotive APIs
• Qtified APIs– QML import modules per feature area– Properties, signals and slots– Item models
• Brings key concepts– Zones– Optional features
• It is extensible – add you own APIs!
ClimateControl {
id: climateControl
autoDiscovery: true
}
SpinBox {
value: climateControl.Zones.frontLeft.steeringWheelHeater
onValueChanged: {
climateControl.Zones.frontLeft.steeringWheelHeater = value
}
}
ListView {
model: climateControl.model
}
10/5/201515
One Feature, Multiple Backends
• Multiple backends– Testing– Early development– Different targets
• Shared contents per Feature– App-facing API– Documentation– Blackbox tests
Feature
Simulator
App
TargetStub
10/5/201516 10/5/201516
Application SDKSoftware development kit
• Qt Creator based – supports Windows/OSX/Linux
• Integrated with your System UI and UI Components
• QmlLive – enables quick round-trip to target hardware
• QtEmulator – enables evaluation on desktop against simulated service APIs
• Reference UI – provides a starting point
10/5/201517 10/5/201517
QmlLive
• Live reloader – simply save an see the changes
• Client / server – run it on your target
• Open source – grab it and improve it!
https://github.com/Pelagicore/qmllive
• Enables rapid UI prototyping
• Quickest turn around times around!
10/5/201519
The PELUX Stack
Base Operating System
CPU Adaptations ECU Adaptations
plx.
Resource
Access
Manager
GENIVI Services S S S S
plx.
Application
Manager
plx.SoftwareContainer
QtIVI
ApplicationSystem UI
Application Application Application
10/5/201520
Building the Qt Automotive Suite
QtIVI
plx.
Application
ManagerNeptune Application Application
Base Operating System
CPU Adaptations ECU Adaptations
GENIVI Services S S S