35
In the Driver’s Seat Use Cases of Qt in Automotive Dr Tuukka Ahoniemi Product Manager [email protected]

In the Driver’s Seat - d21tv0wm5mksdn.cloudfront.net · Infotainment QML Bring Your Own ... • Same kind of agility for embedded / automotive development than ... Using Qt’sbuilding

Embed Size (px)

Citation preview

In the Driver’s Seat

Use Cases of Qt in Automotive

Dr Tuukka AhoniemiProduct Manager

[email protected]

Contents

• Requirements for Automotive Systems

• Transition of Automotive Software

• Power of Ecosystem

• Qt GUI Offering• Qt Quick and HTML5

• Qt Automotive APIs

• Why Qt Makes a Lot of Sense in Automotive?

The Automotive Industry is Changing

Software Will Take Over the Form Factor

© 20154

Wild West of Automotive Systems

• The automotive systems are mostly based on specialized hardware and proprietary software• OEM solutions

• Tier 1 Platform solutions

• Open source solutions

• Apple, Google platforms

• Alliances and consortiums, like GENIVI and AGL• Still far from standardized platforms

© 20155

Requirements for IVI Systems

• Flexibility and Scalability• Customization for different makes and models, and for setups

• Different HW

• Plugins

• Global presence: internationalization/localization

• Fluent performance• Multitasking

• Fast boot-up, pre-loading

© 20156

Multi-Screen Challenge

A Platform is Only as Good as the Content for the Platform

© 2015 The Qt Company

Building your Automotive Ecosystem

Biggest value for the consumers and for

the car brand comes with innovative

automotive applications and services

which developed and controlled by OEM.

Applications extend functionality

infotainment system not only inside but

also outside of the car.

Qt’s Application Framework provides fast and safe basis for

the OEM’s applications and services.

© 2015 The Qt Company

Target All Your Platforms with One Technology

My

Software

Solution

Desktop:Windows, Linux, Mac,

Solaris, Enterprise UNIX

Embedded:Embedded Linux, Embedded Android,

Windows Embedded, QNX,

VxWorks, INTEGRITY

Mobile:Android, iOS, Windows Phone,

WindowsRT, BlackBerry 10, Sailfish

Qt’s cross-platform SW framework runs all

major Operating Systems with native

speed. Investing one technology instead of

many brings huge cost savings.

Automotiveelectronics andcontrol systems

Qt SerialBus API

Automotive bus(CAN)

IVI System

Instrument ClusterQML

QML

APIBuilt-in

applications

2nd / 3rd partysoftware services

PassengeriPhone / iPad

QML

PassengerAndroid device

QML

BackseatInfotainment

QML

Bring Your Own Device(BYOD)

Solving the Multi-Screen Challenge

HUD

QML

Transition of Industry

From Black Box Systems into White Box

© 201513

Requirements for More Transparency

• Build Systems

• Contribution model

• Sharing Code• Style

• Comments

• Language

Power of Ecosystem

The Qt Ecosystem

• 20 years of experience and knowledge of• Build systems

• Porting Qt to various platforms (OS and HW)

• Open Source contribution model (Qt Project)

• CI (Continuous Integration) systems

• Documentation, tutorials, examples

• Companies, partners

• Around million developers• People writing content

© 201516

Customer Case: Porting Example

• Qt for Renesas R-Car• Customer had legacy build system

• Once build system was fixed, getting Qt on top of that was easy

• Small backend implementation for eglfs

• Uses general KMS API

• Runs on Intel platforms -> desktop development, rapid workflow

• Then, porting to NVidia Jetson TK-1/ Jetson Pro• Same KMS API than Renesas

• Different buffer mechanism

• Took only 1 week to adopt Qt stack

© 201517

Why Qt Solved the Problem?

• Qt gives you a wide HW support out-of-box and very flexible and easy ways of customizing the stack into other HW• Flexibility is built-in to Qt

• This is very unique in the Automotive world• Often OEMs have hundreds of people working for a proprietary stack, where

as with Qt, a handful of people can handle that

19

Create Modern Automotive GUIs with Qt

• Qt Quick – Declarative UI, C++ backend• Designer/Developer workflow

• Full touch-based experience

• Existing UI controls, easy customization

• Smooth and easy animations

• 3D effects

• Integration of 3D graphics

• Localization

© 201520

Rapid Workflow with Qt Quick

Developer

Declarative UI Design

Stunningly Fluent Modern User Interfaces, written with QML. Ideal for rapid UI prototyping.

Imperative Logic

Power of Cross-Platform Native Qt/C++

Qt Quick

Core

Processes, Threads,IPC, Containers,I/O, Strings,Etc.

Network

HTTPFTPSSL

Sql

SQL&OracleDatabases

XM

L

Blu

eto

oth

Po

siti

on

ing

NFC

Se

ria

l Po

rt

Designer

+ Direct Hardware Access

© 2015 The Qt Company

Qt Instrument Cluster Demo

© 201522

Example Case: Modernizing Workflow with Qt Quick

• A large automotive OEM• Designers used iPads

• 6 weeks from design to running on car

• Changed the workflow to Qt Quick based• Immediately see the change in real environment

• Same kind of agility for embedded / automotive development than on desktop/mobile• Rapid workflow

• Modern software development

© 201523

Qt and HTML5

• Qt and HTML5 are not mutually exclusive

• Qt provides a powerful HTML5 engine, Qt WebEngine• Convenient port of the Chromium

• Cross-platform

• Fully integrated into the Qt graphics stack

• Everything else around the engine -> the whole Qt framework!

© 201524

Experiences with HTML5 from Customer Cases

• HTML5 is not designed for GUI creation• Inconveniences

• Performance problems

• HTML5 is very good for some use cases and needed for certain dynamic cross-platform functionality• Qt wants to provide the best platform for HTML5 as well

• We strongly recommend a wise hybrid development strategy• Qt Quick for the GUI controls and graphics, for best native performance

• HTML5 for the rest

• Mix and match freely

© 201525

Experiences with HTML5 from Customer Cases

• Start testing in real hardware as early as possible• Developing Qt or HTML5 on desktop is nice but might give an unrealistic view

of performance or possible features

• Integration introduces problems that are too late to be fixed properly

• Upgrade and select Qt WebEngine as the engine, and do it from the start• Even the old Qt WebKit will introduce performance issues on real usage

• Qt tooling for Embedded gives rapid development workflow for embedded• Rapid design-develop-deploy-test cycles on real hardware

• Wiser development strategy

• Shorter time-to-market

Contents of the Qt Automotive Suite Offering

© 201527

Quick Look to Qt Automotive APIs

• Qt Speech• Speech recognition (PocketSphinx, Nuance VoCon)

• Qt SerialBus• CAN Bus

• Other Buses, for various industries, FlexRay (planned)

• Qt Virtual Keyboard

• SCXML

• Qt Quick Controls• ISO Automotive icons

• Qt Automotive API (planned)• W3C Automotive API implementation

© 201528

CAN Bus

• Qt SerialBus will provide a CAN Bus API• Technology preview with Qt 5.6

• Different CAN Bus backends supported:

Vendor Backend Brief description

CAN over Linux sockets SocketCAN CAN bus backend using Linux sockets and open source drivers.

PEAK-System PeakCAN CAN bus backend using the PCAN adapters.

MHS Elektronik TinyCAN CAN bus backend using the Tiny-CAN adapters.

© 2014 Digia

Qt Virtual Keyboard

• A complete virtual keyboard solution

• Solid C++ backend and versatile Qt Quick UI

• Fully customizable graphics and styling

• Extendable input methods and word prediction engines

• Support for different keyboard layouts

• Good language support, also from left-to-right

• Handwriting recognition

• Supports also 5-way or 2-way navigation

• Existing: Qt State Machine Framework

• Existing for many years in Qt Core

• Bug fixes, performance improvements

• Improved compatibility with SCXML standard

• New: Qt SCXML Compiler and Runtime

• New module developed by The Qt Company, not yet released

• SCXML parser and runtime

• SCXML Compiler: similar to Qt Quick Compiler, produces C++ binary of the state machine

• Coming: State Chart Editor Plugin for Qt Creator

• Edit State Charts directly within Qt Creator

• Textual editing

• Visual drag & drop editor

© 2015 The Qt Company

Qt State Chart Offering

Qt State Machine FW

SCXML Compiler & Runtime

SCXMLextension

SCXML Editor

Summary

© 2015 The Qt Company

High Value from Cross-platform Solution

Application Processor

Vehicle bus(es)

Instrument Display Secondary DisplayCenter Console

Display

Operating System

Instrument Cluster App

Secondary Information Display

App

Center Console App(s)

HMI, UI & Application Framework

Car Middleware

OS

HWApplication Processor

Qt solution allows to change OS and HW which provides additional value and safety for future needs.

© 2015 The Qt Company

Return of Investment

Building future proof foundation for the solution and using value added

development and testing assets will ensure the best return on investment.

Qt Core Networking

Sensors

Speech

recognition

layer

Application

framework

Hand writing

interface

layer

Screen

composition

Cloud

OTA

Qt

co

mp

onen

ts

Qt

au

tom

otive

too

ls &

co

mp

one

nts

State

machineTest

framework

Car bus

interface layer

Mapping

interface

PositioningUI controls

3D

Audio

handling

Advanced

debugging

Sandboxing

Web Engine

Multimedia

Advanced

profiling

© 2015 The Qt Company

Total Costs of Ownership

Using Qt’s building blocks, Qt automotive packages and Enterprise tooling solution

cost less than traditional development models with other technologies.

Functionalityand features

development costs

Traditional

development

Testing costs

Costs

Expandability costsQt

Automotive

Suite

Functionality and features done with

Qt framework

Qt testing framework

Expandability costs with Qt

Maintenance costs

Maintenance costs

Qt Enterprise framework

provides numerous cost saving

elements.

Modern, fast, up to date Web

Browser Engine is included,

Availability off source codes

decrease maintenance costs

Qt’s plug-in architecture makes

solution expandability really

easy.

Qt’s test sets and framework

increases testing efficiency

Qt’s functionality and Enterprise

feature sets speed up the

development.

Web Browser Engine

www.qt.io

Thank You!