This topic lists the frequently asked questions concerning Qt Safe Renderer:
Qt Safe Renderer is designed to be stable in all conditions. However, if it should crash, the main UI functionality is not disturbed as the main UI does not depend on Qt Safe Renderer. You can have a watchdog that monitors Qt Safe Renderer and if needed, restarts it. The watchdog can assume that if the Qt Safe Renderer process is up and running, it renders the safety-critical content properly.
Yes, Qt Safe Renderer continues to render the safety-critical UI elements even if an error occurs in the main UI.
Certification of the whole Qt for functional safety is not economically feasible. The Qt framework includes too large amount of code, and features making Qt powerful and efficient framework are considered risky for safety-critical systems. For example, Qt uses advanced C++ features and allocates memory dynamically.
Qt Safe Renderer validates the bitmap checksum information before it renders the bitmap.
Qt Safe Renderer is able to render 128 bitmaps included in a layout file.
You need to use a source image which resolution is equal to the maximum planned size. This way, you avoid up-scaling effects on the image sharpness.
The Qt Safe Renderer tooling can do downscaling for the image, so the source image with 200x200 size looks good when using it in 200x200 or 100x100 size. But the source image with 100x100 size does not look so good when using it in 200x200 size.
From Qt Safe Renderer 1.2 onwards, QML states are preferred solution for use cases where you need to change size, color, opacity, or position of safety-critical UI elements. Earlier you would have created separate layouts and changed them via the QSafeEventChangeLayout event.
For more information, see Using States Instead of Layouts.
The Qt Safe Renderer installation includes the unit tests and their documentation. You find the tests under <Qt installation directory>/Src/QtSafeRenderer-<version>/tests. The unit tests are documented in <Qt installation directory>Docs/QtSafeRenderer-<version>/qtsaferenderer/qtsr-unit-tests.html.
The Qt Safe Renderer installation includes some undocumented test assets that are used when the internal functionality of Qt Safe Renderer is tested. You can adapt these scripts and tests for your own use:
- <Qt installation directory>/Src/QtSafeRenderer-<version>/tests/manual/capacitytests
- <Qt installation directory>/Src/QtSafeRenderer-<version>/tests/manual/startuptime
- <Qt installation directory>/Src/QtSafeRenderer-<version>/tests/manual/testharness
- <Qt installation directory>/Src/QtSafeRenderer-<version>/tests/auto/benchmark
The Qt benchmark tests include tests for the drawing algorithms (color and global alpha). The tests use different types of framebuffer image formats for compressed and uncompressed bitmaps.
Qt Safe Renderer can be adapted to receive and handle events from the touch event controller. You should note that before you can handle touch events safely, the touch event controller must be certified. So, even if Qt Safe Renderer does not have a Safe Button QML type, you can use it as a part of system that supports safe touch functionality.
If you accidentally delete the layout data folder that contains the .srb and .srl files for your project, you can regenerate the layout data by running the qmake tool and building the project. For more information, see Generating Safe Layout Data.
Yes, from Qt 3D Studio point of view Safe elements can be used just like any other 2D content created with Qt Design tools. Please refer to Qt 3D Studio documentation for details.
Yes, Qt Design Studio can be used to design a UI that contains safe QML types. Please refer to Qt Design Studio for details. Especially, the following links may be useful:
- Previewing describes how you use the live preview feature in a host system and in a target system.
- Converting UI Projects to Applications describes how you convert your Qt Design Studio project to a Qt Creator project.
Yes, double-buffering is enabled in the OpenWFD adaptation. It can be enabled by changing the
SafeRenderer::Constraints::FRAME_BUFFERS value to 2. The reference implementation for the OpenWFD is available in the src/adaptation/graphics/qnxsnapdragon folder.
Available under certain Qt licenses.
Find out more.