QtWS15 Revolutionizing Automotive with Qt

21
Revolutionizing Automotive with Qt Johan Thelin, System Architect at Pelagicore

Transcript of QtWS15 Revolutionizing Automotive with Qt

Revolutionizing Automotive with QtJohan Thelin, System Architect at Pelagicore

10/5/20153 10/5/20153

Pelagicore?

We put stunning user experiences on the road.

Experience change.

10/5/20154

In-Vehicle Infotainment

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/201518

Neptune

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

10/5/201521

Qt Automotive Suite

www.pelagicore.com

[email protected]

Thank you!