C

FAQ

This topic lists the frequently asked questions concerning Qt Safe Renderer:

Can Qt Safe Renderer render parameterized information?

Yes, Qt Safe Renderer can render ISO/IEC 8859-1:1998 (Latin-1) characters with dynamic SafeText when runtimeEditable is set to true.

What happens if Qt Safe Renderer crashes?

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.

Can Qt Safe Renderer render the safety-critical UI even if the main UI fails?

Yes, Qt Safe Renderer continues to render the safety-critical UI elements even if an error occurs in the main UI.

Why Qt won't be certified?

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.

How does Qt Safe Renderer ensure that the bitmaps are not broken or invalid?

Qt Safe Renderer validates the bitmap checksum information before it renders the bitmap.

How many safety-critical bitmaps can Qt Safe Renderer render inside one layout?

Qt Safe Renderer is able to render 128 bitmaps included in a layout file.

How I can ensure that the safe image looks smooth when scaling it up?

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.

When should I use states instead of layouts?

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.

What kind of tests are included in the Qt Safe Renderer installation?

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.

How does Qt Safe Renderer support safety-critical touch input?

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.

How do I generate the layout data again?

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.

Can Qt Safe Renderer be used with Qt 3D Studio?

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.

Can Qt Safe Renderer be used with Qt Design Studio?

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:

Does Qt Safe Renderer support double-buffering?

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.