qtws15 revolutionizing automotive with qt

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

Upload: johan-thelin

Post on 13-Feb-2017

1.240 views

Category:

Technology


2 download

TRANSCRIPT

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!