Qt/QML Applications For Connected
Automotive Solutions
1/29/2018
© KPIT Technologies Limited
Copy Right Guidelines
© 2018 KPIT Technologies Limited, Pune, India. All Rights Reserved.
KPIT Technologies Limited believes the information in this document is accurate as of its publication
date; such information is subject to change without notice. KPIT Technologies Limited acknowledges
the proprietary rights of other companies to the trademarks, product names and such other
intellectual property rights mentioned in this document. Except as expressly permitted, neither this
documentation nor any part of it may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means, electronic, mechanical, printing, photocopying, recording or otherwise,
without the prior permission of KPIT Technologies Limited and/ or any named intellectual property
rights holders under this document.
1/29/20182
Automotive &
Transportation
Energy &
Resources
Consumer &
Industrial
Goods
High Tech Life Sciences Utilities
KPIT provides IT consulting and product
engineering to deliver transformational services and
products that improve the world we live in
© KPIT Technologies Limited1/29/20184
Global Footprint
© KPIT Technologies Limited1/29/20186
Headquartered in Pune (India)
Incorporated in 1990
Publicly traded company in India
Development Centers located in India, US,
Germany, China, and Brazil
31 offices across 16 countries
60 Patents filed
FY2017 revenues $494 Million
12,000+ Employees Globally
Corporate Quick Facts
© KPIT Technologies Limited
Outline
• Qt/QML for Automotive Needs
• Qt Automotive Suite
• Local/Automotive Connectivity
• IOT Platform Connectivity
• Reference Demo
• Cross Compiling Apps for targets
1/29/20188
By
Rajesh Sola,
Education Specialist-ECoDe
KPIT Technologies Limited.
© KPIT Technologies Limited
Qt/QML for Automotive Needs
• HMI Design for digital cockpit
– Infotainment Systems
– Instrumentation Clusters
– Head-up Displays(HUD)
• Connectivity Stack & APIs
• Middleware Support
• Qt for Mobile Apps
1/29/20189
Ref:- www1.qt.io/qt-automotive-suite/
Ref:- www1.qt.io/qt-automotive-suite/
© KPIT Technologies Limited
Qt Automotive Suite
• Customized Qt framework for automotive solutions
• Built on top of Qt for Device Creation, GENIVI Compliant
• Multiple screens on single SOC
• Unified tool for the entire digital cockpit
• Certified Functional Safety
• GammaRay for introspection of apps
• Qt Application Manager
• QmlLive for live reloading of UI
• Ease of deployment
• Qt Virtual Keyboard, Web Browser
• Reference Implementation – Neptune UI
• Wayland Compositor for multi screen
1/29/201810
Ref:-doc.qt.io/NeptuneUI/index.html
Ref:-doc.qt.io/NeptuneUI/index.html
© KPIT Technologies Limited1/29/201811
Automotive Connectivity
© KPIT Technologies Limited
CANBus
• Supported by QtSerialBus module, from Qt 5.8
QT += serialbus
• Plugins for supported Backends e.g. SocketCAN plugin
• CAN Bus API (C++ Classes)
– QCanBus
– QCanBusDevice
– QCanBusDevice::Filter
– QCanBusDeviceInfo
– QCanBusFrame
• API Support for
– Frame Types & Error Handling
– FD frames
– Extended frame formats (plugin support?)
– Bitrate Configuration
1/29/201812
Ref:-github.com/linux-can/can-logos
© KPIT Technologies Limited
• Bluetooth Classic (from v5.2)
• Bluetooth Low Energy (Bluetooth Smart/BT 4.x)
– APIs for Central Role (Fro, v5.4)
– APIs for Peripheral Role (from v5.7)
• Bluez Backend on Linux
• BLE Elements
– Services, Characteristics,
– Advertising, Scanning
• BLE Protocols & Profiles
– ATT Protocol
– GATT Profile
1/29/201813
Bluetooth Low Energy
Ref:- doc.qt.io/qt-5/qtbluetooth-le-overview.html
BLE for Smart
Automotives!!
• Key Fobs
• Wireless Sensors
• Diagnostics
• Parking Assistance
• Fleet Management
• Personalization
• Smart Phone
Services
© KPIT Technologies Limited
Location & Positioning
• Positioning APIs
– Using GeoClue Backend
– OpenWeatherMap API integration
• Location APIs
– Maps and Navigation
– Places
– Geo Services, Plugins
eg:- Flickr, OpenStreetMap
• Rich QML Types
• Telematics
1/29/201814
Ref:-doc.qt.io/qt-5/qtlocation-places-map-example.html,
doc.qt.io/qt-5/qtpositioning-weatherinfo-example.html
© KPIT Technologies Limited
Sensors
• Sensor APIs
– C++ Classes
• QSensor
• QSensorReading
• QSensorFilter
– QML Types
• Sensor Backend
– QSensorBackend
– QSensorManager
– QSensorPluginInterface
• Built-in sensors supported on
– Android, iOS, SailFish and WinRT
• Can implement custom sensors and
backend for any Qt enabled device
1/29/201815
Qt Apps on RaspberryPi for IMU
Sensors, IEW 2017
(IoTShow.in,EFYCONF)
Ref:-doc.qt.io/qt-5/qtsensors-cpp.html
© KPIT Technologies Limited1/29/201816
IOT Platform Connectivity
© KPIT Technologies Limited
MQTT APIs
• qmqtt by Erlang MQTT Broker (https://github.com/emqtt/qmqtt)
• Types - QMQTT::Client, QMQTT::Message
• QMQTT::Client properties for connect options
• QMQTT::Client Signals
– connected, disconnected
– subscribed, unsubscribed
– published
– received
• QMQTT::Client Slots/Methods
– conenctToHost, disconnectFromHost
– publish
– subscribe, unsubscribe
• Support for MQTT over SSL, WebSockets
1/29/201817
© KPIT Technologies Limited
HTTP REST APIs
• Built-in Network Classes from Qt SDK
– QUrl for URL formation/parsing
– QUrlQuery for QueryString operations
– QNetworkAccessManager (HTTP/HTTPS)
– QNetworkRequest (GET, POST, PUT, DELETE)
– QNetworkReply
• Authentication Support
– Basic Authentication (Headers/URL)
– OAuth 1.0/2.0
1/29/201818
Qt Programming for HTTP REST Clients, Open Source For You, May 2017
opensourceforu.com/2017/06/qt-programming-http-rest-clients/
© KPIT Technologies Limited
JSON APIs
• APIs
– QJsonDocument
• QJsonDocument::fromVariant //encoding from QVariantMap
• QJsonDocument::fromJson //for parsing
• Conversions to ByteArray, JSON Object
– QJsonObject
• Retrieve values based on key
• Iterators for STL style navigation
– QJsonValue
• Conversions with other types, JSON Object, JSON Array
– QJsonArray
• Iterators for STL style navigation
1/29/201819
© KPIT Technologies Limited1/29/201820
Reference Demo
© KPIT Technologies Limited
Demo :: IOT Platform Connectivity - ThingsBoard
1/29/201821
ThingsBoard
Dashboard
(Mobile/Web)
HVAC
Application
Time SeriesTelemetry
© KPIT Technologies Limited
Cross Compiling Qt Apps
• Qt For Device Creation
• Boot to Qt
• Qt Platform Abstraction(QPA)
• Building Target SDK
• Device Specifications
• Qt Creator Support
• On Device Debugging
1/29/201822
Ref:- www1.qt.io/prebuilt-software-stack
raspberrypi.org
© KPIT Technologies Limited
References
• https://www.qt.io/qt-in-automotive/
• https://www.qt.io/qt-in-iot/
• https://www1.qt.io/qt-automotive-suite
• https://doc.qt.io/QtAutomotiveSuite/
• https://www.qt.io/qt-for-device-creation/
• https://doc.qt.io/qt-5/qtcanbus-backends.html
• http://doc.qt.io/qt-5/qtlocation-index.html
• http://doc.qt.io/qt-5/qtpositioning-index.html
• https://doc.qt.io/qt-5/qtsensors-index.html
• http://doc.qt.io/qt-5/topics-network-connectivity.html
• http://doc.qt.io/qt-5/json.html
1/29/201823
Ref:- www1.qt.io/qt-automotive-suite/
Technologies for a better world
Thank you
Top Related