Integrating Qt Safe Renderer

    In order to successfully use Qt Safe Renderer and integrate it into your system, you must have the following knowledge about Qt and related tools:

    • Experience of C++ and object-oriented software development
    • Knowledge of functionality and requirements in safety-critical systems
    • Experience of developing software for the target device We recommend you to introduce yourself to the Qt and the Qt tools. If you are our commercial customer and have questions concerning Qt, you can contact our . Qt Consulting Services can also help with the issues that are out of the scope of the standard support.

    The core parts of Qt Safe Renderer contain the code inside the namespace. The implementation of the safety-critical requirements covers only the core parts of Qt Safe Renderer. The related classes are listed in Qt Safe Renderer C++ Classes.

    The Qt Safe Renderer core functionality never changes but some parts of Qt Safe Renderer are system specific. For example, a system bus can be system-specific and a system event handler needs to be tailored accordingly. Also, graphics system depends on the used target device hardware.

    If you need to adapt Qt Safe Renderer for a system that is not supported by the Qt Safe Renderer reference implementation, the following components may be adapted per system:

    • Graphical rendering output. For more information, see and SafeRenderer::AbstractWindow.
    • Qt Safe Renderer preallocates the required memory on a system startup. However, allocation of output targets, such as hardware layers, must be done via system-specific interfaces. Qt Safe Renderer provides a reference implementation for the features that are listed above. If it is not suitable for your system and you need to modify or add new implementation, you must carefully check if the requirements defined in ISO 26262-6 chapter 7.4. are still met.

    Note: The Qt Safe Renderer architecture and design documentation describe the communication interface. These documents are part of the Qt Safe Renderer installation.

    The ISO 26262 standard does not require MISRA C++ rules to be followed. However, as it is a likely case that the Qt Safe Renderer derived project follows MISRA C++ rules, also Qt Safe Renderer follows MISRA C++ Guidelines for critical systems.

    If you integrate Qt Safe Renderer into a project that follows the MISRA C++ rules, you must ensure that main.cpp in the safety-critical partition is MISRA C++ compatible. All exceptions that are thrown from the constructor functions of and SafeRenderer::QSafeLayoutFileReader and must be caught individually in the safe part of the code and a decision must be made how to handle them. After the QSR runtime initialization phase, possible runtime exceptions are documented in the SafeRenderer::StateManager.

    There is the reference implementation for process watcher in Qt Safe Renderer Examples.

    In Qt Safe Renderer 1.1, Qt Safe Layout Tool only supports layout files that have been generated with Qt Safe Renderer 1.1.

    Qt Safe Renderer C++ Classes