QP/C++  8.0.0
Real-Time Embedded Framework
Loading...
Searching...
No Matches
API Reference

Low-Power ExampleDeprecated 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) - 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 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 (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

  • QF_run()
  • QP::QXK::onIdle()
  • QP::QXK::schedLock()
  • QP::QXK::schedUnlock()
  • QP::QXK::current()

QXK Interrupt Management

QXThread class

  • QP::QXThread class
  • QP::QXThread::QXThread()
  • QP::QXThread::start()
  • QP::QXThread::delay()
  • QP::QXThread::delayCancel()
  • QP::QXThread::queueGet()

QXThread Message Queues

  • QXThread:: POST()
  • QXThread:: POST_X()
  • QP::QXThread::queueGet() - waiting (blocking) on message queue

QXSemaphore class

  • QP::QXSemaphore class (Semaphore Control Block)
  • QP::QXSemaphore::init()
  • QP::QXSemaphore::wait()
  • QP::QXSemaphore::tryWait()
  • QP::QXSemaphore::signal()

QXMutex class

  • QP::QXMutex class (Mutex Control Block)
  • QP::QXMutex::init()
  • QP::QXMutex::lock()
  • QP::QXMutex::tryLock()
  • QP::QXMutex::unlock()

QMPool class


Low-Power ExampleDeprecated APIs