QP/C++  7.1.1
Real-Time Embedded Framework
Loading...
Searching...
No Matches
QP Namespace Reference

QP/C++ framework. More...

Namespaces

namespace  QF
 hierarchical event processor and active object framework
 
namespace  QK
 preemptive, non-blocking kernel
 
namespace  QS
 "QP/Spy" software tracing (target-resident components)
 
namespace  QV
 cooperative, non-preemptive kernel
 
namespace  QXK
 preemptive, dual-mode (non-blocking / blocking) kernel
 

Classes

class  QActive
 QP::QActive active object class (based on the QP::QHsm-style implementation strategy) More...
 
class  QActiveDummy
 Dummy Active Object class for testing (inherits QP::QActive) More...
 
class  QEQueue
 Native QF Event Queue class. More...
 
class  QEvt
 Event class. More...
 
struct  QFreeBlock
 Structure representing a free block in the Native QF Memory Pool. More...
 
class  QHsm
 Hierarchical State Machine abstract base class (ABC) More...
 
union  QHsmAttr
 Attribute of for the QP::QHsm class (Hierarchical State Machine) More...
 
class  QHsmDummy
 Dummy HSM class for testing (inherits QP::QHsm) More...
 
class  QMActive
 QMActive active object (based on QP::QMsm implementation) More...
 
class  QMPool
 Native QF memory pool class. More...
 
class  QMsm
 QM State Machine implementation strategy. More...
 
struct  QMState
 State object for the QP::QMsm class (QM State Machine). More...
 
struct  QMTranActTable
 Transition-Action Table for the QP::QMsm State Machine. More...
 
class  QPSet
 Priority Set of up to QF_MAX_ACTIVE elements. More...
 
struct  QSpyId
 QS ID type for applying local filtering. More...
 
class  QTicker
 "Ticker" Active Object class (inherits QP::QActive) More...
 
class  QTimeEvt
 Time Event class (inherits QP:QEvt) More...
 
class  QXMutex
 Blocking, Priority-Ceiling Mutex the QXK preemptive kernel. More...
 
class  QXSemaphore
 Counting Semaphore of the QXK preemptive kernel. More...
 
class  QXThread
 Extended (blocking) thread of the QXK preemptive kernel. More...
 

Typedefs

using QSignal = std::uint16_t
 QSignal represents the signal of an event. More...
 
using QState = std::uint_fast8_t
 Type returned from state-handler functions. More...
 
using QStateHandler = QState(*)(void *const me, QEvt const *const e)
 Pointer to state-handler function. More...
 
using QActionHandler = QState(*)(void *const me)
 Pointer to an action-handler function. More...
 
using QXThreadHandler = void(*)(QXThread *const me)
 Pointer to an extended thread-handler function. More...
 
using QEQueueCtr = std::uint16_t
 
using QPSetBits = std::uint32_t
 bitmask for the internal representation of QPSet elements More...
 
using QTimeEvtCtr = std::uint32_t
 Data type to store the block-size defined based on the macro QF_TIMEEVT_CTR_SIZE. More...
 
using QPrioSpec = std::uint_fast16_t
 Priority specification for Active Objects in QP. More...
 
using QSchedStatus = std::uint_fast16_t
 The scheduler lock status used in some real-time kernels. More...
 
using QSubscrList = QPSet
 Subscriber List (for publish-subscribe) More...
 
using QMPoolSize = std::uint16_t
 The data type to store the block-size based on the macro QF_MPOOL_SIZ_SIZE. More...
 
using QMPoolCtr = std::uint16_t
 The data type to store the block-counter based on the macro QF_MPOOL_CTR_SIZE. More...
 
using QSTimeCtr = std::uint32_t
 QS time stamp type, which determines the dynamic range of QS time stamps. More...
 
using QSCtr = std::uint_fast16_t
 QS function pointer type (for serializing function pointers) More...
 
using QSpyFunPtr = void(*)()
 function pointer type for fun_dict_pre_() More...
 

Enumerations

enum  QSpyPre : std::int8_t {
  QS_EMPTY , QS_QEP_STATE_ENTRY , QS_QEP_STATE_EXIT , QS_QEP_STATE_INIT ,
  QS_QEP_INIT_TRAN , QS_QEP_INTERN_TRAN , QS_QEP_TRAN , QS_QEP_IGNORED ,
  QS_QEP_DISPATCH , QS_QEP_UNHANDLED , QS_QF_ACTIVE_DEFER , QS_QF_ACTIVE_RECALL ,
  QS_QF_ACTIVE_SUBSCRIBE , QS_QF_ACTIVE_UNSUBSCRIBE , QS_QF_ACTIVE_POST , QS_QF_ACTIVE_POST_LIFO ,
  QS_QF_ACTIVE_GET , QS_QF_ACTIVE_GET_LAST , QS_QF_ACTIVE_RECALL_ATTEMPT , QS_QF_EQUEUE_POST ,
  QS_QF_EQUEUE_POST_LIFO , QS_QF_EQUEUE_GET , QS_QF_EQUEUE_GET_LAST , QS_QF_NEW_ATTEMPT ,
  QS_QF_MPOOL_GET , QS_QF_MPOOL_PUT , QS_QF_PUBLISH , QS_QF_NEW_REF ,
  QS_QF_NEW , QS_QF_GC_ATTEMPT , QS_QF_GC , QS_QF_TICK ,
  QS_QF_TIMEEVT_ARM , QS_QF_TIMEEVT_AUTO_DISARM , QS_QF_TIMEEVT_DISARM_ATTEMPT , QS_QF_TIMEEVT_DISARM ,
  QS_QF_TIMEEVT_REARM , QS_QF_TIMEEVT_POST , QS_QF_DELETE_REF , QS_QF_CRIT_ENTRY ,
  QS_QF_CRIT_EXIT , QS_QF_ISR_ENTRY , QS_QF_ISR_EXIT , QS_QF_INT_DISABLE ,
  QS_QF_INT_ENABLE , QS_QF_ACTIVE_POST_ATTEMPT , QS_QF_EQUEUE_POST_ATTEMPT , QS_QF_MPOOL_GET_ATTEMPT ,
  QS_SCHED_PREEMPT , QS_SCHED_RESTORE , QS_SCHED_LOCK , QS_SCHED_UNLOCK ,
  QS_SCHED_NEXT , QS_SCHED_IDLE , QS_SCHED_RESUME , QS_QEP_TRAN_HIST ,
  QS_QEP_TRAN_EP , QS_QEP_TRAN_XP , QS_TEST_PAUSED , QS_TEST_PROBE_GET ,
  QS_SIG_DICT , QS_OBJ_DICT , QS_FUN_DICT , QS_USR_DICT ,
  QS_TARGET_INFO , QS_TARGET_DONE , QS_RX_STATUS , QS_QUERY_DATA ,
  QS_PEEK_DATA , QS_ASSERT_FAIL , QS_QF_RUN , QS_SEM_TAKE ,
  QS_SEM_BLOCK , QS_SEM_SIGNAL , QS_SEM_BLOCK_ATTEMPT , QS_MTX_LOCK ,
  QS_MTX_BLOCK , QS_MTX_UNLOCK , QS_MTX_LOCK_ATTEMPT , QS_MTX_BLOCK_ATTEMPT ,
  QS_MTX_UNLOCK_ATTEMPT , QS_PRE_MAX
}
 QS pre-defined record types (TX channel) More...
 
enum  QSpyGroups : std::int16_t {
  QS_ALL_RECORDS = static_cast<std::uint8_t>(0xF0U) , QS_SM_RECORDS , QS_AO_RECORDS , QS_EQ_RECORDS ,
  QS_MP_RECORDS , QS_TE_RECORDS , QS_QF_RECORDS , QS_SC_RECORDS ,
  QS_SEM_RECORDS , QS_MTX_RECORDS , QS_U0_RECORDS , QS_U1_RECORDS ,
  QS_U2_RECORDS , QS_U3_RECORDS , QS_U4_RECORDS , QS_UA_RECORDS
}
 QS record groups for QS_GLB_FILTER() More...
 
enum  QSpyUserOffsets : std::int16_t {
  QS_USER = 100 , QS_USER0 = QS_USER , QS_USER1 = QS_USER0 + 5 , QS_USER2 = QS_USER1 + 5 ,
  QS_USER3 = QS_USER2 + 5 , QS_USER4 = QS_USER3 + 5
}
 QS user record group offsets for QS_GLB_FILTER() More...
 
enum  QSpyIdOffsets : std::int16_t { QS_AO_ID = 0 , QS_EP_ID = 64 , QS_EQ_ID = 80 , QS_AP_ID = 96 }
 QS ID offsets for QS_LOC_FILTER() More...
 
enum  QSpyIdGroups : std::int16_t {
  QS_ALL_IDS = 0xF0 , QS_AO_IDS = 0x80 + QS_AO_ID , QS_EP_IDS = 0x80 + QS_EP_ID , QS_EQ_IDS = 0x80 + QS_EQ_ID ,
  QS_AP_IDS = 0x80 + QS_AP_ID
}
 QS ID groups for QS_LOC_FILTER() More...
 
enum  QSpyRxRecords : std::uint8_t {
  QS_RX_INFO , QS_RX_COMMAND , QS_RX_RESET , QS_RX_TICK ,
  QS_RX_PEEK , QS_RX_POKE , QS_RX_FILL , QS_RX_TEST_SETUP ,
  QS_RX_TEST_TEARDOWN , QS_RX_TEST_PROBE , QS_RX_GLB_FILTER , QS_RX_LOC_FILTER ,
  QS_RX_AO_FILTER , QS_RX_CURR_OBJ , QS_RX_TEST_CONTINUE , QS_RX_QUERY_CURR ,
  QS_RX_EVENT
}
 QS received record types (RX channel) More...
 

Functions

std::uint8_t QF_EVT_POOL_ID_ (QEvt const *const e) noexcept
 return the Pool-ID of an event e More...
 
std::uint8_t QF_EVT_REF_CTR_ (QEvt const *const e) noexcept
 return the Reference Conter of an event e More...
 
void QF_EVT_REF_CTR_INC_ (QEvt const *const e) noexcept
 increment the refCtr_ of an event e More...
 
void QF_EVT_REF_CTR_DEC_ (QEvt const *const e) noexcept
 decrement the refCtr_ of an event e More...
 

Variables

constexpr char const versionStr [] {QP_VERSION_STR}
 the current QP version number string based on QP_VERSION_STR More...
 
constexpr enum_t Q_USER_SIG {4}
 Type returned from state-handler functions. More...
 
constexpr std::uint8_t TE_IS_LINKED = 1U << 7U
 
constexpr std::uint8_t TE_WAS_DISARMED = 1U << 6U
 
constexpr std::uint8_t TE_TICK_RATE = 0x0FU
 
constexpr std::uint16_t QS_EOD = 0xFFFFU
 Constant representing End-Of-Data condition returned from the QP::QS::getByte() function. More...
 
constexpr std::uint8_t QS_FRAME = 0x7EU
 Frame character of the QS output protocol. More...
 
constexpr std::uint8_t QS_ESC = 0x7DU
 Escape character of the QS output protocol. More...
 
constexpr std::uint8_t QS_ESC_XOR = 0x20U
 Escape modifier of the QS output protocol. More...
 
constexpr std::uint8_t QS_GOOD_CHKSUM = 0xFFU
 Escape character of the QS output protocol. More...
 
char const BUILD_DATE [12] = __DATE__
 the calendar date of the last translation of the form: "Mmm dd yyyy" More...
 
char const BUILD_TIME [9] = __TIME__
 the time of the last translation of the form: "hh:mm:ss" More...
 
constexpr std::uint_fast16_t QXTHREAD_NO_TIMEOUT {0U}
 No-timeout when blocking on semaphores, mutextes, and queues. More...
 

Detailed Description

Size (in bytes) of the QS time stamp.

Maximum number of active objects (configurable value in qf_port.hpp) Valid values: [1U..64U]; default 32U.

Maximum number of clock rates (configurable value in qf_port.hpp) Valid values: [0U..15U]; default 1U Maximum number of event pools (configurable value in qf_port.hpp) Valid values: [0U..15U]; default 3U

Note
QF_MAX_EPOOL set to zero means that dynamic events are NOT configured and should not be used in the application. Size of the QTimeEvt counter (configurable value in qf_port.hpp) Valid values: 1U, 2U, or 4U; default 4U Size of the event-size (configurable value in qf_port.hpp) Valid values: 1U, 2U, or 4U; default 2U

This macro can be defined in the QS port file (qs_port.hpp) to configure the QP::QSTimeCtr type. Valid values 1U, 2U, 4U. Default 4U.


Class Documentation

◆ QP::QFreeBlock

struct QP::QFreeBlock
See also
QP::QMPool

Definition at line 95 of file qf_pkg.hpp.

Class Members
QFreeBlock *volatile m_next link to the next free block

◆ QP::QHsmAttr

union QP::QHsmAttr

This union represents possible values stored in the 'state' and 'temp' attributes of the QP::QHsm class.

Definition at line 263 of file qep.hpp.

Class Members
QStateHandler fun pointer to a state handler function
QActionHandler act pointer to an action-handler function
QXThreadHandler thr pointer to an thread-handler function
QMState const * obj pointer to QMState object
QMTranActTable const * tatbl transition-action table

◆ QP::QMState

struct QP::QMState

This class groups together the attributes of a QP::QMsm state, such as the parent state (state nesting), the associated state handler function and the exit action handler function. These attributes are used inside the QP::QMsm::dispatch() and QP::QMsm::init() functions.

Attention
The QP::QMState class is only intended for the QM code generator and should not be used in hand-crafted code.

Definition at line 242 of file qep.hpp.

Class Members
QMState const * superstate superstate of this state
QStateHandler const stateHandler state handler function
QActionHandler const entryAction entry action handler function
QActionHandler const exitAction exit action handler function
QActionHandler const initAction init action handler function

◆ QP::QMTranActTable

struct QP::QMTranActTable

Definition at line 252 of file qep.hpp.

Class Members
QMState const * target target of the transition
QActionHandler const act[1] array of actions

Typedef Documentation

◆ QSignal

using QSignal = std::uint16_t

The relationship between an event and a signal is as follows. A signal in UML is the specification of an asynchronous stimulus that triggers reactions, and as such is an essential part of an event. (The signal conveys the type of the occurrence–what happened?) However, an event can also contain additional quantitative information about the occurrence in form of event parameters.

Definition at line 134 of file qep.hpp.

◆ QState

using QState = std::uint_fast8_t

Definition at line 212 of file qep.hpp.

◆ QStateHandler

using QStateHandler = QState (*)(void * const me, QEvt const * const e)

Definition at line 216 of file qep.hpp.

◆ QActionHandler

using QActionHandler = QState (*)(void * const me)

Definition at line 220 of file qep.hpp.

◆ QXThreadHandler

using QXThreadHandler = void (*)(QXThread * const me)

Definition at line 228 of file qep.hpp.

◆ QEQueueCtr

using QEQueueCtr = std::uint16_t

Definition at line 77 of file qequeue.hpp.

◆ QPSetBits

using QPSetBits = std::uint32_t

Definition at line 131 of file qf.hpp.

◆ QTimeEvtCtr

using QTimeEvtCtr = std::uint32_t

The dynamic range of this data type determines the maximum block size that can be managed by the pool.

Definition at line 157 of file qf.hpp.

◆ QPrioSpec

using QPrioSpec = std::uint_fast16_t

Active Object priorities in QP are integer numbers in the range [1..QF_MAX_ACTIVE], whereas the special priority number 0 is reserved for the lowest-priority idle thread. The QP framework uses the direct priority numbering, in which higher numerical values denote higher urgency. For example, an AO with priority 32 has higher urgency than an AO with priority 23.

QP::QPrioSpec allows an application developer to assign two priorities to a given AO (see also Q_PRIO()):

  1. The "QF-priority", which resides in the least-significant byte of the QP::QPrioSpec data type. The "QF-priority" must be unique for each thread in the system and higher numerical values represent higher urgency (direct pirority numbering).
  2. The second priority, which resides in the most-significant byte of the QP::QPrioSpec data type. The second priority is specific to the underlying real-time kernel or operating system with the semantics determined by that kernel.
Note
In the QP native preemptive kernels, like QK and QXK, the second component of the QP::QPrioSpec is used as the "preemption-threshold". It determines the conditions under which a given thread can be preempted by other threads. Specifically, a given thread can be preempted only by another thread with a higher "preemption-threshold".
QF-priority and preemption-threshold relations

For backwards-compatibility, QPrioSpec data type might contain only the "QF-priority" component (and the "preemption-threshold" component left at zero). In that case, the "preemption-threshold" will be assumed to be the same as the "QF-priority". This corresponds exactly to the previous semantics of AO priority.

Note
When QP runs on top of 3rd-party kernels/RTOSes or general-purpose operating systems, sthe second priority can have different meaning, depending on the specific RTOS/GPOS used.

Definition at line 204 of file qf.hpp.

◆ QSchedStatus

using QSchedStatus = std::uint_fast16_t

Definition at line 208 of file qf.hpp.

◆ QSubscrList

using QSubscrList = QPSet

This data type represents a set of Active Objects that subscribe to a given signal. The set is represented as priority-set, where each bit corresponds to the unique QF-priority of an AO (see QP::QPrioSpec).

Definition at line 331 of file qf.hpp.

◆ QMPoolSize

using QMPoolSize = std::uint16_t

The dynamic range of this data type determines the maximum size of blocks that can be managed by the native QF event pool.

Definition at line 73 of file qmpool.hpp.

◆ QMPoolCtr

using QMPoolCtr = std::uint16_t

The dynamic range of this data type determines the maximum number of blocks that can be stored in the pool.

Definition at line 89 of file qmpool.hpp.

◆ QSTimeCtr

using QSTimeCtr = std::uint32_t

Definition at line 76 of file qs.hpp.

◆ QSCtr

using QSCtr = std::uint_fast16_t

QS ring buffer counter and offset type

Definition at line 112 of file qs.hpp.

◆ QSpyFunPtr

using QSpyFunPtr = void (*)()

Definition at line 307 of file qs.hpp.

Enumeration Type Documentation

◆ QSpyPre

enum QSpyPre : std::int8_t

This enumeration specifies the record types used in the QP components. You can specify your own record types starting from QP::QS_USER offset. Currently, the maximum of all records cannot exceed 125.

Note
The QS records labeled as "not maskable" are always enabled and cannot be turend off with the QS_GLB_FILTER() macro. Other QS trace records can be disabled by means of the "global filters"
See also
QS_GLB_FILTER() macro
Enumerator
QS_EMPTY 

QS record for cleanly starting a session.

QS_QEP_STATE_ENTRY 

a state was entered

QS_QEP_STATE_EXIT 

a state was exited

QS_QEP_STATE_INIT 

an initial transition was taken in a state

QS_QEP_INIT_TRAN 

the top-most initial transition was taken

QS_QEP_INTERN_TRAN 

an internal transition was taken

QS_QEP_TRAN 

a regular transition was taken

QS_QEP_IGNORED 

an event was ignored (silently discarded)

QS_QEP_DISPATCH 

an event was dispatched (begin of RTC step)

QS_QEP_UNHANDLED 

an event was unhandled due to a guard

QS_QF_ACTIVE_DEFER 

AO deferred an event.

QS_QF_ACTIVE_RECALL 

AO recalled an event.

QS_QF_ACTIVE_SUBSCRIBE 

an AO subscribed to an event

QS_QF_ACTIVE_UNSUBSCRIBE 

an AO unsubscribed to an event

QS_QF_ACTIVE_POST 

an event was posted (FIFO) directly to AO

QS_QF_ACTIVE_POST_LIFO 

an event was posted (LIFO) directly to AO

QS_QF_ACTIVE_GET 

AO got an event and its queue is not empty.

QS_QF_ACTIVE_GET_LAST 

AO got an event and its queue is empty.

QS_QF_ACTIVE_RECALL_ATTEMPT 

AO attempted to recall an event.

QS_QF_EQUEUE_POST 

an event was posted (FIFO) to a raw queue

QS_QF_EQUEUE_POST_LIFO 

an event was posted (LIFO) to a raw queue

QS_QF_EQUEUE_GET 

get an event and queue still not empty

QS_QF_EQUEUE_GET_LAST 

get the last event from the queue

QS_QF_NEW_ATTEMPT 

an attempt to allocate an event failed

QS_QF_MPOOL_GET 

a memory block was removed from memory pool

QS_QF_MPOOL_PUT 

a memory block was returned to memory pool

QS_QF_PUBLISH 

an event was published to active objects

QS_QF_NEW_REF 

new event reference was created

QS_QF_NEW 

new event was created

QS_QF_GC_ATTEMPT 

garbage collection attempt

QS_QF_GC 

garbage collection

QS_QF_TICK 

QTimeEvt::tick_() was called.

QS_QF_TIMEEVT_ARM 

a time event was armed

QS_QF_TIMEEVT_AUTO_DISARM 

a time event expired and was disarmed

QS_QF_TIMEEVT_DISARM_ATTEMPT 

attempt to disarm a disarmed QTimeEvt

QS_QF_TIMEEVT_DISARM 

true disarming of an armed time event

QS_QF_TIMEEVT_REARM 

rearming of a time event

QS_QF_TIMEEVT_POST 

a time event posted itself directly to an AO

QS_QF_DELETE_REF 

an event reference is about to be deleted

QS_QF_CRIT_ENTRY 

critical section was entered

QS_QF_CRIT_EXIT 

critical section was exited

QS_QF_ISR_ENTRY 

an ISR was entered

QS_QF_ISR_EXIT 

an ISR was exited

QS_QF_INT_DISABLE 

interrupts were disabled

QS_QF_INT_ENABLE 

interrupts were enabled

QS_QF_ACTIVE_POST_ATTEMPT 

attempt to post an evt to AO failed

QS_QF_EQUEUE_POST_ATTEMPT 

attempt to post evt to QEQueue failed

QS_QF_MPOOL_GET_ATTEMPT 

attempt to get a memory block failed

QS_SCHED_PREEMPT 

scheduler asynchronously preempted a task

QS_SCHED_RESTORE 

scheduler restored preempted task

QS_SCHED_LOCK 

scheduler was locked

QS_SCHED_UNLOCK 

scheduler was unlocked

QS_SCHED_NEXT 

scheduler found next task to execute

QS_SCHED_IDLE 

scheduler became idle

QS_SCHED_RESUME 

scheduler resumed previous task (not idle)

QS_QEP_TRAN_HIST 

a tran to history was taken

QS_QEP_TRAN_EP 

a tran to entry point into a submachine

QS_QEP_TRAN_XP 

a tran to exit point out of a submachine

QS_TEST_PAUSED 

test has been paused

QS_TEST_PROBE_GET 

reports that Test-Probe has been used

QS_SIG_DICT 

signal dictionary entry

QS_OBJ_DICT 

object dictionary entry

QS_FUN_DICT 

function dictionary entry

QS_USR_DICT 

user QS record dictionary entry

QS_TARGET_INFO 

reports the Target information

QS_TARGET_DONE 

reports completion of a user callback

QS_RX_STATUS 

reports QS data receive status

QS_QUERY_DATA 

reports the data from "current object" query

QS_PEEK_DATA 

reports the data from the PEEK query

QS_ASSERT_FAIL 

assertion failed in the code

QS_QF_RUN 

QF_run() was entered.

QS_SEM_TAKE 

a semaphore was taken by a thread

QS_SEM_BLOCK 

a semaphore blocked a thread

QS_SEM_SIGNAL 

a semaphore was signaled

QS_SEM_BLOCK_ATTEMPT 

a semaphore blocked was attempted

QS_MTX_LOCK 

a mutex was locked

QS_MTX_BLOCK 

a mutex blocked a thread

QS_MTX_UNLOCK 

a mutex was unlocked

QS_MTX_LOCK_ATTEMPT 

a mutex lock was attempted

QS_MTX_BLOCK_ATTEMPT 

a mutex blocking was attempted

QS_MTX_UNLOCK_ATTEMPT 

a mutex unlock was attempted

QS_PRE_MAX 

the number of predefined signals

Definition at line 128 of file qs.hpp.

◆ QSpyGroups

enum QSpyGroups : std::int16_t
Enumerator
QS_ALL_RECORDS 

all QS records

QS_SM_RECORDS 

State Machine QS records.

QS_AO_RECORDS 

Active Object QS records.

QS_EQ_RECORDS 

Event Queues QS records.

QS_MP_RECORDS 

Memory Pools QS records.

QS_TE_RECORDS 

Time Events QS records.

QS_QF_RECORDS 

QF QS records.

QS_SC_RECORDS 

Scheduler QS records.

QS_SEM_RECORDS 

Semaphore QS records.

QS_MTX_RECORDS 

Mutex QS records.

QS_U0_RECORDS 

User Group 100-104 records.

QS_U1_RECORDS 

User Group 105-109 records.

QS_U2_RECORDS 

User Group 110-114 records.

QS_U3_RECORDS 

User Group 115-119 records.

QS_U4_RECORDS 

User Group 120-124 records.

QS_UA_RECORDS 

All User records.

Definition at line 250 of file qs.hpp.

◆ QSpyUserOffsets

enum QSpyUserOffsets : std::int16_t
Enumerator
QS_USER 

the first record available to QS users

QS_USER0 

offset for User Group 0

QS_USER1 

offset of Group 1

QS_USER2 

offset of Group 2

QS_USER3 

offset of Group 3

QS_USER4 

offset of Group 4

Definition at line 271 of file qs.hpp.

◆ QSpyIdOffsets

enum QSpyIdOffsets : std::int16_t
Enumerator
QS_AO_ID 

offset for AO priorities

QS_EP_ID 

offset for event-pool IDs

QS_EQ_ID 

offset for event-queue IDs

QS_AP_ID 

offset for Appl-spec IDs

Definition at line 282 of file qs.hpp.

◆ QSpyIdGroups

enum QSpyIdGroups : std::int16_t
Enumerator
QS_ALL_IDS 

all QS IDs

QS_AO_IDS 

AO IDs (priorities)

QS_EP_IDS 

event-pool IDs

QS_EQ_IDS 

event-queue IDs

QS_AP_IDS 

Application-specific IDs.

Definition at line 291 of file qs.hpp.

◆ QSpyRxRecords

enum QSpyRxRecords : std::uint8_t

This enumeration specifies the record types for the QS receive channel

Enumerator
QS_RX_INFO 

query Target info (ver, config, tstamp)

QS_RX_COMMAND 

execute a user-defined command in the Target

QS_RX_RESET 

reset the Target

QS_RX_TICK 

call QF_tick()

QS_RX_PEEK 

peek Target memory

QS_RX_POKE 

poke Target memory

QS_RX_FILL 

fill Target memory

QS_RX_TEST_SETUP 

test setup

QS_RX_TEST_TEARDOWN 

test teardown

QS_RX_TEST_PROBE 

set a Test-Probe in the Target

QS_RX_GLB_FILTER 

set global filters in the Target

QS_RX_LOC_FILTER 

set local filters in the Target

QS_RX_AO_FILTER 

set local AO filter in the Target

QS_RX_CURR_OBJ 

set the "current-object" in the Target

QS_RX_TEST_CONTINUE 

continue a test after QS_RX_TEST_WAIT()

QS_RX_QUERY_CURR 

query the "current object" in the Target

QS_RX_EVENT 

inject an event to the Target (post/publish)

Definition at line 52 of file qs_pkg.hpp.

Function Documentation

◆ QF_EVT_POOL_ID_()

std::uint8_t QF_EVT_POOL_ID_ ( QEvt const *const  e)
inlinenoexcept

Definition at line 112 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_()

std::uint8_t QF_EVT_REF_CTR_ ( QEvt const *const  e)
inlinenoexcept

Definition at line 117 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_INC_()

void QF_EVT_REF_CTR_INC_ ( QEvt const *const  e)
inlinenoexcept

Definition at line 122 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_DEC_()

void QF_EVT_REF_CTR_DEC_ ( QEvt const *const  e)
inlinenoexcept

Definition at line 127 of file qf_pkg.hpp.

Variable Documentation

◆ versionStr

constexpr char const versionStr[] {QP_VERSION_STR}
constexpr

Definition at line 121 of file qep.hpp.

◆ Q_USER_SIG

constexpr enum_t Q_USER_SIG {4}
constexpr

Definition at line 273 of file qep.hpp.

◆ TE_IS_LINKED

constexpr std::uint8_t TE_IS_LINKED = 1U << 7U
constexpr

Definition at line 105 of file qf_pkg.hpp.

◆ TE_WAS_DISARMED

constexpr std::uint8_t TE_WAS_DISARMED = 1U << 6U
constexpr

Definition at line 106 of file qf_pkg.hpp.

◆ TE_TICK_RATE

constexpr std::uint8_t TE_TICK_RATE = 0x0FU
constexpr

Definition at line 107 of file qf_pkg.hpp.

◆ QS_EOD

constexpr std::uint16_t QS_EOD = 0xFFFFU
constexpr

Definition at line 303 of file qs.hpp.

◆ QS_FRAME

constexpr std::uint8_t QS_FRAME = 0x7EU
constexpr

Definition at line 73 of file qs_pkg.hpp.

◆ QS_ESC

constexpr std::uint8_t QS_ESC = 0x7DU
constexpr

Definition at line 76 of file qs_pkg.hpp.

◆ QS_ESC_XOR

constexpr std::uint8_t QS_ESC_XOR = 0x20U
constexpr

The escaped byte is XOR-ed with the escape modifier before it is inserted into the QS buffer.

Definition at line 83 of file qs_pkg.hpp.

◆ QS_GOOD_CHKSUM

constexpr std::uint8_t QS_GOOD_CHKSUM = 0xFFU
constexpr

Definition at line 86 of file qs_pkg.hpp.

◆ BUILD_DATE

char const BUILD_DATE = __DATE__

Definition at line 52 of file qstamp.cpp.

◆ BUILD_TIME

char const BUILD_TIME = __TIME__

Definition at line 55 of file qstamp.cpp.

◆ QXTHREAD_NO_TIMEOUT

constexpr std::uint_fast16_t QXTHREAD_NO_TIMEOUT {0U}
constexpr

Definition at line 73 of file qxk.hpp.