C
Qt Cluster: Rendering and Recovery from Main UI Failure
Qt Cluster demonstrates rendering of safety-critical QML elements and recovery from the main UI failure. You should use Qt Cluster with the Telltales and Event Sender examples. On the target device, you also need the Message Proxy example.
Qt Cluster is a Qt application that does not include any safety-critical UI elements. However, when you run it together with the Telltales example, Telltales demonstrates how the safety-critical UI is rendered in a separate process by Qt Safe Renderer and you can see the rendered safety-critical QML elements on the Qt Cluster's UI. You can use the Event Sender example for sending events to Telltales and Qt Cluster.
For more information, see Testing Safety-Critical Rendering and Events. This topic describes how you can use Qt Cluster together with the Telltales and Event Sender examples to test the rendering and event sending in the safety-critical UI.
Building Qt Cluster Example
You find the Qt Cluster example under the Qt Safe Renderer installation folder: <Qt installation directory>/Examples/QtSafeRenderer-<version>/saferenderer/qtcluster.
You can build the example for the host platform, QNX, INTEGRITY, and Embedded Linux.
To build and run the project, opent the project in Qt Creator's Edit mode and select Build > Run.
By default, when you select Build > Run in Qt Creator for your project, Qt Creator builds the project, deploys it to the device defined in the kit, and runs it there. However, if you have not made any changes to the project since you last built and deployed it, Qt Creator simply runs it again. For more information, see Building and Running topic in Qt Creator Manual.
Following topics provide target-specific instructions about building projects:
- Building Projects with Qt Creator (the host platform)
- Building for QNX
- Building for INTEGRITY
- How to Create Boot to Qt Image (Embedded Linux)
Example Files
Files:
- saferenderer/qtcluster/CMakeLists.txt
- saferenderer/qtcluster/circularindicator.cpp
- saferenderer/qtcluster/circularindicator.h
- saferenderer/qtcluster/clusterdatabackend.cpp
- saferenderer/qtcluster/clusterdatabackend.h
- saferenderer/qtcluster/crasher.cpp
- saferenderer/qtcluster/crasher.h
- saferenderer/qtcluster/etcprovider.cpp
- saferenderer/qtcluster/etcprovider.h
- saferenderer/qtcluster/fonts.qrc
- saferenderer/qtcluster/gauge.cpp
- saferenderer/qtcluster/gauge.h
- saferenderer/qtcluster/gaugenode.cpp
- saferenderer/qtcluster/gaugenode.h
- saferenderer/qtcluster/hybridimages.qrc
- saferenderer/qtcluster/hybridqml.qrc
- saferenderer/qtcluster/images.qrc
- saferenderer/qtcluster/iso-icons.qrc
- saferenderer/qtcluster/main.cpp
- saferenderer/qtcluster/qml/CarParking.qml
- saferenderer/qtcluster/qml/CarParkingSports.qml
- saferenderer/qtcluster/qml/ConsumptionView.qml
- saferenderer/qtcluster/qml/DashboardLoader.qml
- saferenderer/qtcluster/qml/FpsCounter.qml
- saferenderer/qtcluster/qml/MapView.qml
- saferenderer/qtcluster/qml/MediaPlayerView.qml
- saferenderer/qtcluster/qml/TurnIndicator.qml
- saferenderer/qtcluster/qml/ValueSource.qml
- saferenderer/qtcluster/qml/VehicleInfoNote.qml
- saferenderer/qtcluster/qml/VideoView.qml
- saferenderer/qtcluster/qml/dash_hybrid/BottomPanel.ui.qml
- saferenderer/qtcluster/qml/dash_hybrid/CarInfoField.qml
- saferenderer/qtcluster/qml/dash_hybrid/CenterView.qml
- saferenderer/qtcluster/qml/dash_hybrid/CenterViewCalendar.qml
- saferenderer/qtcluster/qml/dash_hybrid/CenterViewCarInfo.qml
- saferenderer/qtcluster/qml/dash_hybrid/CenterViewContacts.qml
- saferenderer/qtcluster/qml/dash_hybrid/CenterViewMusic.qml
- saferenderer/qtcluster/qml/dash_hybrid/Dashboard.qml
- saferenderer/qtcluster/qml/dash_hybrid/DashboardBackground.qml
- saferenderer/qtcluster/qml/dash_hybrid/DashboardBackgroundForm.ui.qml
- saferenderer/qtcluster/qml/dash_hybrid/DashboardForm.ui.qml
- saferenderer/qtcluster/qml/dash_hybrid/DashboardFrame.qml
- saferenderer/qtcluster/qml/dash_hybrid/DashboardView.qml
- saferenderer/qtcluster/qml/dash_hybrid/Gadget.qml
- saferenderer/qtcluster/qml/dash_hybrid/TurnLeft.qml
- saferenderer/qtcluster/qml/dash_hybrid/TurnRight.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/BatteryMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/ConsumptionMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/FpsMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/FuelMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/LargeMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/SmallMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/SpeedoMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/TachoMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/TemperatureMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/TurboMeter.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/BatteryMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/ConsumptionMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/FuelMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/SpeedoMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/TachoMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/TemperatureMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_hybrid/gauges/designer/TurboMeterSpecifics.qml
- saferenderer/qtcluster/qml/dash_sports/CameraLoader.qml
- saferenderer/qtcluster/qml/dash_sports/CenterStack.qml
- saferenderer/qtcluster/qml/dash_sports/Dashboard.qml
- saferenderer/qtcluster/qml/dash_sports/DashboardFrame.qml
- saferenderer/qtcluster/qml/dash_sports/DashboardSportForm.ui.qml
- saferenderer/qtcluster/qml/dash_sports/DashboardView.qml
- saferenderer/qtcluster/qml/dash_sports/Gauge.qml
- saferenderer/qtcluster/qml/dash_sports/RPMFlipable.qml
- saferenderer/qtcluster/qml/dash_sports/RPMGauge.qml
- saferenderer/qtcluster/qml/dash_sports/RPMGauge_painter.qml
- saferenderer/qtcluster/qml/dash_sports/RPMGauge_vertex.qml
- saferenderer/qtcluster/qml/dash_sports/SpeedoMeter.qml
- saferenderer/qtcluster/qml/dash_sports/SpeedoMeterLoader.qml
- saferenderer/qtcluster/qml/dash_sports/SpeedoMeter_painter.qml
- saferenderer/qtcluster/qml/dash_sports/SpeedoMeter_vertex.qml
- saferenderer/qtcluster/qml/dash_sports/TurnLeft.qml
- saferenderer/qtcluster/qml/dash_sports/TurnRight.qml
- saferenderer/qtcluster/qml/dash_sports/designer/RPMFlipableSpecifics.qml
- saferenderer/qtcluster/qml/dash_sports/designer/SpeedoMeterLoaderSpecifics.qml
- saferenderer/qtcluster/qml/functions.js
- saferenderer/qtcluster/qtcluster.pro
- saferenderer/qtcluster/qtcluster.qrc
- saferenderer/qtcluster/qtiviclusterdata.cpp
- saferenderer/qtcluster/qtiviclusterdata.h
- saferenderer/qtcluster/sportsimages.qrc
- saferenderer/qtcluster/sportsqml.qrc
Images:
- saferenderer/qtcluster/images/BottomPanel.png
- saferenderer/qtcluster/images/Built_with_Qt.png
- saferenderer/qtcluster/images/CarForParkSensors.png
- saferenderer/qtcluster/images/CarInfoIcon.png
- saferenderer/qtcluster/images/CentreMask.png
- saferenderer/qtcluster/images/Cluster8Gauges.png
- saferenderer/qtcluster/images/DashboardFrameSport-mask.png
- saferenderer/qtcluster/images/DashboardMask.png
- saferenderer/qtcluster/images/GaugeSpeedometer_CentreRingA.png
- saferenderer/qtcluster/images/GaugeSpeedometer_CentreRingB.png
- saferenderer/qtcluster/images/GaugeSpeedometer_OuterRingA.png
- saferenderer/qtcluster/images/GaugeSpeedometer_OuterRingB.png
- saferenderer/qtcluster/images/GaugeSpeedometer_Ticks1.png
- saferenderer/qtcluster/images/GaugeSpeedometer_Ticks2.png
- saferenderer/qtcluster/images/GaugeSpeedometer_TrailMask.png
- saferenderer/qtcluster/images/Gauge_RPM.png
- saferenderer/qtcluster/images/Gauge_Speed.png
- saferenderer/qtcluster/images/Icon_TurnLeft_OFF.png
- saferenderer/qtcluster/images/Icon_TurnLeft_OFF_small.png
- saferenderer/qtcluster/images/Icon_TurnLeft_ON.png
- saferenderer/qtcluster/images/Icon_TurnLeft_ON_small.png
- saferenderer/qtcluster/images/Icon_TurnRight_OFF.png
- saferenderer/qtcluster/images/Icon_TurnRight_OFF_small.png
- saferenderer/qtcluster/images/Icon_TurnRight_ON.png
- saferenderer/qtcluster/images/Icon_TurnRight_ON_small.png
- saferenderer/qtcluster/images/InfoNoteBackground.png
- saferenderer/qtcluster/images/MapLocation.png
- saferenderer/qtcluster/images/MapLocationSport.png
- saferenderer/qtcluster/images/MusicPlayer_CircleRemaining.png
- saferenderer/qtcluster/images/MusicPlayer_Cover.png
- saferenderer/qtcluster/images/ParkingSensorOff.png
- saferenderer/qtcluster/images/RearCameraOverlay.png
- saferenderer/qtcluster/images/RearCameraOverlaySport.png
- saferenderer/qtcluster/images/RearCameraStill.jpg
- saferenderer/qtcluster/images/SportCarFloorShadow.png
- saferenderer/qtcluster/images/SportCarForParkSensors.png
- saferenderer/qtcluster/images/calendar.png
- saferenderer/qtcluster/images/center.png
- saferenderer/qtcluster/images/contacts.png
- saferenderer/qtcluster/images/cover.png
- saferenderer/qtcluster/images/gaugeCenterBig.png
- saferenderer/qtcluster/images/gaugeCenterSmall.png
- saferenderer/qtcluster/images/gaugeNeedleBig.png
- saferenderer/qtcluster/images/gaugeNeedleSmall.png
- saferenderer/qtcluster/images/greenglow.png
- saferenderer/qtcluster/images/heatNeedle.png
- saferenderer/qtcluster/images/jane.png
- saferenderer/qtcluster/images/john.png
- saferenderer/qtcluster/images/knob.png
- saferenderer/qtcluster/images/left.png
- saferenderer/qtcluster/images/mainShape.png
- saferenderer/qtcluster/images/redglow.png
- saferenderer/qtcluster/images/right.png
- saferenderer/qtcluster/images/temperature.png
Available under certain Qt licenses.
Find out more.