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.

QActive class (derived from QAsm)

QMActive class (derived from QActive)

Publish-Subscribe

Events

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

QEvt class (see also Event Management and Time Management)

State Machines

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

QAsm class

QHsm class (derived from QAsm)

QMsm class (derived from QAsm)

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_INIT()
  • QS_initBuf()
  • QS_getByte()
  • QS_getBlock()
  • QS_onStartup()
  • QS_onCleanup()
  • QS_onFlush()
  • QS_onGetTime()

QS Filters

QS Dictionaries

QS Application-Specific Records

QS Receive-Channel (QS-RX)

  • QS_rxInitBuf()
  • QS_rxParse()
  • QS_onCommand()
  • QS_RX_PUT()

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()
  • QXK_onIdle()
  • QXK_schedLock(
  • QXK_schedUnlock()
  • QXK_onIdle()
  • QXK_current()

QXK Interrupt Management

QXThread class

  • QXThread_ctor()
  • QXThread_start()
  • QXTHREAD_POST_X()
  • Q_XTHREAD_CAST()
  • QXThread_delay()
  • QXThread_delayCancel()
  • QXThread_queueGet(

QXThread Message Queues

  • QXTHREAD_POST_X() - posting messages to blocking threads
  • QACTIVE_POST_X() - posting events to Active Objects
  • QXThread_queueGet()

QXSemaphore class

  • QXSemaphore_init()
  • QXSemaphore_wait()
  • QXSemaphore_tryWait()
  • QXSemaphore_signal()

QXMutex class

  • QXMutex_init()
  • QXMutex_lock()
  • QXMutex_tryLock()
  • QXMutex_unlock()

QMPool class


Low-Power ExampleDeprecated APIs