Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Qt Automotive Suite
Under the hood after one year of hacking
Johan Thelin
Introduction
 Johan Thelin, System Architect at Luxoft
 Background: Qt Champion, Foundations of Qt
Development, QmlBook,...
What’s in the Box?
 Core components (non UI)
 Qt Application Manager
 Qt IVI
 Qt GENIVI Extras
 Tools and best practi...
What’s in the Box?
 Neptune – An Automotive Reference UI
 Center stack
 Instrument Cluster
 AppStore
 Solutions to se...
What’s left to do?
 Qt Automotive Suite provides a reference UI
 OEMs still have to provide
 Deep vehicle integration
...
Developers first!
 Our mission is to bring the Qt way to automotive
 Easy to get started
 Ease of development
 Great d...
A Look at
the Past Year
Qt Application Manager at a Glance
 Wayland compositor
 Graphics
 Input
 Owns the Apps
 Installation, update, removal...
Qt Application Manager
Timing and fidelity
 StartTimer
 Start-up timing
 Support custom checkpoints
 Can be used for t...
Qt Application Manager
• Notification Manager
• Prioritization
• Stickyness
• Actions
• Progress
• Time outs
• All still v...
Qt Application Manager
 Code base maintenance
 More usage of C++11
 nullptr
 Q_DECL_NOEXCEPT_EXPR(false)
Qt Application Manager
Neptune UI at a Glance
 Reference UI and demonstrator baseline
 System UI runs on Qt Application Manager
 A variety of ...
Neptune UI
• Most visible change is the WindowOverview page
WindowOverview Page
GridView {
model: ListModel {}
delegate: Item {
ShaderEffectSource {
anchors.fill: parent
anchors.marg...
WindowOverview Page
delegate: Item {
MouseArea {
anchors.fill: parent
onClicked: {
ApplicationManager.startApplication(App...
Taking it to the Next Level
• We are doing a face-lift of Neptune...
• ...both graphical and code wise
• New look and feel...
Qt IVI at a Glance
 Qt abstraction layer on top of the platform
services
 IPC agnostic, platform agnostic
 Dynamically ...
Qt IVI – Code Generator with QFace
• Reference implementations of Media and VehicleFunctions
• Integration of QFace
• Code...
File(s)Generator(s)
Qt IVI - QFace
IDL Model Generator(s) Source file(s)
QFace
Qt IVI - QFace
• IDL supports
• Interfaces
• Data types, structs, enums, etc
• Annotations – meta-data for the generators
...
QML Live
• Live reloader with server/client architecture
• Very quick turn-around time for developers and designers
• Many...
More...
• Qt
• GammaRay
• Qt GENIVI Extras module
Where are we heading?
 Updated Neptune UI
 Redesigned
 Qt Quick Controls 2
 Qt3D for vehicle visualizations
 Integrat...
Where to get it?
qt.io pelux.iogenivi.org
Thank you for your attention!
jthelin@luxoft.com
Upcoming SlideShare
Loading in …5
×

of

Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 1 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 2 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 3 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 4 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 5 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 6 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 7 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 8 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 9 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 10 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 11 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 12 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 13 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 14 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 15 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 16 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 17 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 18 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 19 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 20 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 21 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 22 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 23 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 24 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 25 Qt Automotive Suite - under the hood // Qt World Summit 2017 Slide 26
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

2 Likes

Share

Download to read offline

Qt Automotive Suite - under the hood // Qt World Summit 2017

Download to read offline

Qt Automotive Suite - under the hood after one year of hacking. From the Qt World Summit 2017, Berlin, Germany.

Qt Automotive Suite was released a year ago and development is making progress. This talk be focused on technical details of new features in the Qt Application Manager, the new plugin for Qt Creator, additions to Qt IVI, changes in Neptune UI, and even things we are not going to do and why. We will discuss how those features map to the needs we observe in ongoing projects and in the future ones.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Qt Automotive Suite - under the hood // Qt World Summit 2017

  1. 1. Qt Automotive Suite Under the hood after one year of hacking Johan Thelin
  2. 2. Introduction  Johan Thelin, System Architect at Luxoft  Background: Qt Champion, Foundations of Qt Development, QmlBook, Pelagicore, Nokia Qt Development Frameworks qmlbook.org
  3. 3. What’s in the Box?  Core components (non UI)  Qt Application Manager  Qt IVI  Qt GENIVI Extras  Tools and best practices  QmlLive  GammaRay  Integrations of QtAM in QtCreator
  4. 4. What’s in the Box?  Neptune – An Automotive Reference UI  Center stack  Instrument Cluster  AppStore  Solutions to selected key issues in IVI  Notifications prioritization  Application life-cycle  Security for deployment and execution
  5. 5. What’s left to do?  Qt Automotive Suite provides a reference UI  OEMs still have to provide  Deep vehicle integration  OEM specific features and extensions  End-user available application distribution
  6. 6. Developers first!  Our mission is to bring the Qt way to automotive  Easy to get started  Ease of development  Great documentation  All the tools you need at your fingertips
  7. 7. A Look at the Past Year
  8. 8. Qt Application Manager at a Glance  Wayland compositor  Graphics  Input  Owns the Apps  Installation, update, removal  Start, pause, stop  Run-time for the System UI
  9. 9. Qt Application Manager Timing and fidelity  StartTimer  Start-up timing  Support custom checkpoints  Can be used for the System UI and Apps  ProcessMonitor  Frame rate  Memory usage  CPU load  SystemMonitor  Frame rate  Memory rate  CPU load  # of CPUs  Amount of memory
  10. 10. Qt Application Manager • Notification Manager • Prioritization • Stickyness • Actions • Progress • Time outs • All still via org.freedesktop.Notifications
  11. 11. Qt Application Manager  Code base maintenance  More usage of C++11  nullptr  Q_DECL_NOEXCEPT_EXPR(false)
  12. 12. Qt Application Manager
  13. 13. Neptune UI at a Glance  Reference UI and demonstrator baseline  System UI runs on Qt Application Manager  A variety of Apps  Settings  Navigation  Media  Browser  and so on
  14. 14. Neptune UI • Most visible change is the WindowOverview page
  15. 15. WindowOverview Page GridView { model: ListModel {} delegate: Item { ShaderEffectSource { anchors.fill: parent anchors.margins: gridView.padding sourceItem: model.item } } Connections { target: ApplicationManagerInterface onApplicationSurfaceReady: { ... gridView.model.append({ "item" : item }) } onApplicationSurfaceLost: { for (var i = 0; i < gridView.model.count; ++i) { if (gridView.model.get(i).item === item) gridView.model.remove(i); } } }
  16. 16. WindowOverview Page delegate: Item { MouseArea { anchors.fill: parent onClicked: { ApplicationManager.startApplication(ApplicationManagerInterface.appIdFromWindow(model.item)) root.close() // Hide all other windows, otherwise the will be in the stack and switching doesn't work for (var i = 0; i < gridView.model.count; ++i) { var window = gridView.model.get(i).item if (window !== model.item) WindowManager.setWindowProperty(window, "visibility", false) } } } Tool { onClicked: ApplicationManager.stopApplication(ApplicationManagerInterface.appIdFromWindow(model.item)) } }
  17. 17. Taking it to the Next Level • We are doing a face-lift of Neptune... • ...both graphical and code wise • New look and feel – still under development • Qt Quick Controls 2 • Updated layout strategy
  18. 18. Qt IVI at a Glance  Qt abstraction layer on top of the platform services  IPC agnostic, platform agnostic  Dynamically loaded backends  Dynamic bindings all the way  Can interchange backends  Allows for service discovery
  19. 19. Qt IVI – Code Generator with QFace • Reference implementations of Media and VehicleFunctions • Integration of QFace • Code generator based on Qt aware IDL • Jinja based code generators – very simply to extend • Fully integrated in your qmake / cmake workflow • Handwritten APIs for static APIs, e.g. media, tuner, bluetooth • Generated APIs for volatile APIs, e.g. vehicle signals
  20. 20. File(s)Generator(s) Qt IVI - QFace IDL Model Generator(s) Source file(s) QFace
  21. 21. Qt IVI - QFace • IDL supports • Interfaces • Data types, structs, enums, etc • Annotations – meta-data for the generators • Jinja based generators • Used for Python web frameworks • Lets you traverse the model • Very easy to write custom generators System Module Import Interface Property Operation Event Enum Flag Struct Property
  22. 22. QML Live • Live reloader with server/client architecture • Very quick turn-around time for developers and designers • Many contributions from Jolla • Extraction of core to lib • Many bugs squashed • Lost dependencies on widgets
  23. 23. More... • Qt • GammaRay • Qt GENIVI Extras module
  24. 24. Where are we heading?  Updated Neptune UI  Redesigned  Qt Quick Controls 2  Qt3D for vehicle visualizations  Integration of Squish  A new Instrument Cluster  Qt IVI  More APIs  Refactoring VehicleSettings to use QFace  Enhanched Emulator support  More how-to documentation
  25. 25. Where to get it? qt.io pelux.iogenivi.org
  26. 26. Thank you for your attention! jthelin@luxoft.com
  • EvaBrucherseifer

    Oct. 17, 2017
  • AlexDiebald

    Oct. 13, 2017

Qt Automotive Suite - under the hood after one year of hacking. From the Qt World Summit 2017, Berlin, Germany. Qt Automotive Suite was released a year ago and development is making progress. This talk be focused on technical details of new features in the Qt Application Manager, the new plugin for Qt Creator, additions to Qt IVI, changes in Neptune UI, and even things we are not going to do and why. We will discuss how those features map to the needs we observe in ongoing projects and in the future ones.

Views

Total views

1,087

On Slideshare

0

From embeds

0

Number of embeds

278

Actions

Downloads

10

Shares

0

Comments

0

Likes

2

×