PTR Execution Framework Documentation

# Introduction

This library implements an eXecution Framework (XF) to drive finite state machines. Using this framework, it is possible to drive multiple state machines in a concurrent manner (pseudo-parallel) without having an operating system.

The XF defines an interface which gives the ability to reimplement parts of the XF to make changes to an other target/platform.

# XF Component Diagram

The XF is split into two parts. One part is the XF core containing classes which never change across platforms. The other part is the XF port containing classes adjusted for a specific platform:

Component Class Diagram

The XF core together with a port forms a complete XF which can be integrated into a software project.

# XF Class Diagram

Following class diagram shows the basic relations between the most important classes in the PTR XF. It shall give you a basic understanding about the relations between these classes:

XF Class Diagram

# Starting Point

A good point to jump into the definitions of the classes is the `XF` class. Other classes of interest are `interface::XFTimeoutManager`, `interface::XFDispatcher` and `interface::XFBehavior`.

# Links to related Documentation

- Test Bench Documentation - Trace Documentation

# Simplified XF Releases

## Simplified XF Version: 1.1.0 (2022-09)

- sth: Removed some no more neeted attributes and parameters from classes
- sth: Added support for MSVC compiler
- sth: Updated Qt port to support Qt library v6.x
- sth: Added for Qt port a TRACE_ENABLE_TIMESTAMP define to output traces with a timestamp

## Simplified XF Version: 1.0.0 (2021-07)

- sth: Removed from 'Full XF' the OS support and created with that the 'Simplified XF'