Reference Manual For QP/C++ 8.1.5
Loading...
Searching...
No Matches
QP/C++ API Summary

About This DocumentDeprecated APIs

Compile-Time Configuration

QP/C++ Framework supports compile-time configuration through the following mechanisms:

Active Objects

QP/C++ Framework supports Active Objects through the following base classes.

QP::QActive class (derived from QP::QAsm)

QP::QMActive class (derived from QP::QActive)

Publish-Subscribe

Events

QP/C++ Framework supports events, through the following bases classes:

QP::QEvt class (see also Event Management and Time Management) QP::QEvt class

  • QP::QEvt::QEvt(QSignal const) - constexpr constructor for immutable events
  • Q_EVT_CAST() - event down-casting

State Machines

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

QP::QAsm class

QP::QHsm class (derived from QP::QAsm)

QP::QMsm class (derived from QP::QAsm)

Mutable Event Management

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

Time Management

QP::QTimeEvt class (derived from QP::QEvt)

::QTicker active object (derived from ::QTimeEvt)

Event Queues (raw thread-safe)

QP::QEQueue class

Software Tracing

QS is a software tracing system that enables developers to monitor live event-driven QP/C++ 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/C++ 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_BEGIN_ID()
  • QS_END()
  • QS_U8() / QS_I8()
  • QS_U16() / QS_I16()
  • QS_U32() / QS_I32()
  • QS_ENUM()
  • QS_STR()
  • QS_MEM()
  • QP::QS_USER enumeration

QS Receive-Channel (QS-RX)

QV (Non-preemptive Kernel)

QV is a simple non-preemptive kernel, which 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

  • QXK_ISR_ENTRY()
  • QXK_ISR_EXIT()

QP::QXThread class

QXThread Message Queues

QP::QXSemaphore class

QP::QXMutex class

QP::QMPool class

About This DocumentDeprecated APIs