QP/C  7.3.1
Real-Time Embedded Framework
No Matches
API Reference

Low-Power ExampleDeprecated APIs

State Machines

The QP Framework supports event-driven, hierarchical state machines through the following bases classes:

QEvt class (see also Event Management)

QAsm class

QHsm class (derived from QAsm)

QMsm class (derived from QAsm)

Active Objects

The QP Framework supports Active Objects through the following base classes.

QActive class (derived from QAsm)


QMActive class (derived from QActive)

Mutable Event Management

QMPool class (memory pool, also used for mutable events)

Time Management

QTimeEvt class (derived from QEvt)

QTicker active object (derived from QTimeEvt)

Event Queues (raw thread-safe)

QEQueue class

Software Tracing

QS is a software tracing system that enables developers to monitor live event-driven QP applications with minimal target system resources and without stopping or significantly slowing down the code. QS is an ideal tool for testing, troubleshooting, and optimizing QP applications. QS can even be used to support acceptance testing in product manufacturing.

QS-Transmit (QS-TX)

QS Filters

QS Dictionaries

QS Application-Specific Records

QS Receive-Channel (QS-RX)

QV (Cooperative Kernel)

QV is a simple cooperative kernel (previously called "Vanilla" kernel). This kernel executes active objects one at a time, with priority-based scheduling performed before processing of each event. Due to naturally short duration of event processing in state machines, the simple QV kernel is often adequate for many real-time systems.

Kernel Initialization and Control

QK (Preemptive RTC Kernel)

QK is a lightweight preemptive, priority-based, run-to-completion (RTC) kernel designed specifically for executing event-driven active objects.

Kernel Initialization and Control

QK Interrupt Management

QXK (Dual-Mode Kernel)

QXK is a lightweight, preemptive, priority-based, dual-mode (run-to-completion/blocking) kernel that executes active objects like the QK kernel, but can also execute traditional blocking threads (extended threads). In this respect, QXK behaves exactly as a conventional RTOS (Real-Time Operating System). QXK has been designed specifically for mixing event-driven active objects with traditional blocking code, such as commercial middleware (TCP/IP stacks, UDP stacks, embedded file systems, etc.) or legacy software.

Kernel Initialization and Control

QXK Interrupt Management

QXThread class

QXThread Message Queues

QXSemaphore class

QXMutex class

Low-Power ExampleDeprecated APIs