QP/C++ 6.9.3
QP Namespace Reference

namespace associated with the QP/C++ framework More...

Data Structures

struct  QEvt
 QEvt base class. More...
 
union  QHsmAttr
 Attribute of for the QHsm class (Hierarchical State Machine). More...
 
class  QHsm
 Hierarchical State Machine base 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  QEP
 Provides miscellaneous QEP services. More...
 
class  QEQueue
 Native QF Event Queue class. More...
 
class  QActive
 QActive active object (based on QP::QHsm implementation) More...
 
class  QMActive
 QMActive active object (based on QP::QMsm implementation) More...
 
class  QTimeEvt
 Time Event class. More...
 
class  QF
 QF services. More...
 
class  QTicker
 Ticker Active Object class. More...
 
class  QK
 QK services. More...
 
class  QMPool
 Native QF memory pool class. More...
 
struct  QPSet
 Priority Set of up to 32 elements *‍/. More...
 
struct  QSpyId
 QS ID type for applying local filtering. More...
 
class  QS
 QS logging facilities. More...
 
class  QActiveDummy
 Dummy Active Object class. More...
 
class  QV
 QV services. More...
 
class  QXK
 QXK services. More...
 
class  QXThread
 Extended (blocking) thread of the QXK preemptive kernel. More...
 
class  QXSemaphore
 Counting Semaphore of the QXK preemptive kernel. More...
 
class  QXMutex
 Priority Ceiling Mutex the QXK preemptive kernel. More...
 
struct  QFreeBlock
 Structure representing a free block in the Native QF Memory Pool. More...
 
class  QXKIdleThread
 

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 a thread-handler function. More...
 
using QEQueueCtr = std::uint8_t
 The data type to store the ring-buffer counters based on the macro QF_EQUEUE_CTR_SIZE. More...
 
using QEvtSize = std::uint8_t
 
using QTimeEvtCtr = std::uint8_t
 
using QSubscrList = QPSet
 Subscriber List. More...
 
using QSchedStatus = std::uint_fast16_t
 The scheduler lock status. More...
 
using QMPoolSize = std::uint8_t
 
using QMPoolCtr = std::uint8_t
 
using QPSetBits = std::uint8_t
 
using QSTimeCtr = std::uint8_t
 
using QSCtr = std::uint_fast16_t
 QS ring buffer counter and offset type. More...
 

Enumerations

enum  QSpyRecords : 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_MUTEX_LOCK , QS_MUTEX_UNLOCK , 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_RESERVED_71 ,
  QS_RESERVED_72 , QS_RESERVED_73 , QS_RESERVED_74 , QS_RESERVED_75 ,
  QS_RESERVED_76 , QS_RESERVED_77 , QS_RESERVED_78 , QS_RESERVED_79 ,
  QS_RESERVED_80 , QS_RESERVED_81 , QS_RESERVED_82 , QS_RESERVED_83 ,
  QS_RESERVED_84 , QS_RESERVED_85 , QS_RESERVED_86 , QS_RESERVED_87 ,
  QS_RESERVED_88 , QS_RESERVED_89 , QS_RESERVED_90 , QS_RESERVED_91 ,
  QS_RESERVED_92 , QS_RESERVED_93 , QS_RESERVED_94 , QS_RESERVED_95 ,
  QS_RESERVED_96 , QS_RESERVED_97 , QS_RESERVED_98 , QS_RESERVED_99 ,
  QS_USER
}
 Quantum Spy record types. More...
 
enum  QSpyRecordGroups : 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_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_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
}
 Quantum Spy Receive (RX) record types. More...
 
enum  : QSignal { QEP_EMPTY_SIG_ = 0U }
 
enum  QXK_Timeouts : std::uint8_t { QXK_DELAY_SIG = Q_USER_SIG , QXK_QUEUE_SIG , QXK_SEMA_SIG }
 timeout signals More...
 

Functions

std::uint_fast8_t QF_LOG2 (QPSetBits x) noexcept
 
void TEST (char const *title)
 
void QUIT_fail_ (char const *cond, char const *module, int line)
 
void onRunTests (void)
 
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...
 
static void initial_events (void)
 process all events posted during initialization *‍/ More...
 
void QS_target_info_ (std::uint8_t const isReset) noexcept
 send the Target info (object sizes, build time-stamp, QP version) More...
 
static void rxParseData_ (std::uint8_t const b) noexcept
 
static void rxHandleBadFrame_ (std::uint8_t const state) noexcept
 
static void rxReportAck_ (enum QSpyRxRecords const recId) noexcept
 
static void rxReportError_ (std::uint8_t const code) noexcept
 
static void rxReportDone_ (enum QSpyRxRecords const recId) noexcept
 
static void rxPoke_ (void) noexcept
 
static void initial_events (void)
 process all events posted during initialization More...
 

Variables

constexpr char_t const versionStr [] {QP_VERSION_STR}
 the current QP version number string based on QP_VERSION_STR More...
 
constexpr enum_t Q_USER_SIG {4}
 Offset or the user signals. More...
 
std::uint_fast16_t const QF_NO_MARGIN = 0xFFFFU
 special value of margin that causes asserting failure in case event allocation or event posting fails More...
 
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 QUTEST_ON_POST {124U}
 
std::uint8_t volatile QF_intNest
 
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...
 
static constexpr std::uint_fast16_t QXTHREAD_NO_TIMEOUT = 0U
 no-timeout sepcification when blocking on queues or semaphores More...
 
static QEvt const QEP_reservedEvt_ [4]
 
QF_EPOOL_TYPE_ QF_pool_ [QF_MAX_EPOOL]
 allocate event pools More...
 
std::uint_fast8_t QF_maxPool_
 
QSubscrListQF_subscrList_
 the subscriber list array More...
 
enum_t QF_maxPubSignal_
 the maximum published signal 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::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...
 
QPSet QV_readySet_
 
static QXKIdleThread l_idleThread
 

Detailed Description

namespace associated with the QP/C++ framework

Description
This header file must be included in all QF ports that use native QF event queue for active objects. Also, this file needs to be included in the QP/C++ library when the application uses QP::QMActive::defer() / QP::QMActive::recall(). Finally, this file is also needed when the "raw" thread-safe queues are used for communication between active objects and non-framework entities, such as ISRs, device drivers, or legacy code.

Data Structure Documentation

◆ QP::QHsmAttr

union QP::QHsmAttr

Attribute of for the QHsm class (Hierarchical State Machine).

Description
This union represents possible values stored in the 'state' and 'temp' attributes of the QHsm and QMsm classes.

Definition at line 238 of file qep.hpp.

Collaboration diagram for QHsmAttr:
Collaboration graph
Data Fields
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

State object for the QP::QMsm class (QM State Machine).

Description
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 584 of file qep.hpp.

Collaboration diagram for QMState:
Collaboration graph
Data Fields
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

Transition-Action Table for the QP::QMsm State Machine.

Definition at line 593 of file qep.hpp.

Collaboration diagram for QMTranActTable:
Collaboration graph
Data Fields
QMState const * target
QActionHandler const act[1]

◆ QP::QFreeBlock

struct QP::QFreeBlock

Structure representing a free block in the Native QF Memory Pool.

See also
QP::QMPool

Definition at line 122 of file qf_pkg.hpp.

Collaboration diagram for QFreeBlock:
Collaboration graph
Data Fields
QFreeBlock *volatile m_next link to the next free block

Typedef Documentation

◆ QSignal

QSignal represents the signal of an event.

Description
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 146 of file qep.hpp.

◆ QState

Type returned from state-handler functions.

Definition at line 223 of file qep.hpp.

◆ QStateHandler

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

Pointer to state-handler function.

Definition at line 226 of file qep.hpp.

◆ QActionHandler

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

Pointer to an action-handler function.

Definition at line 229 of file qep.hpp.

◆ QXThreadHandler

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

Pointer to a thread-handler function.

Definition at line 232 of file qep.hpp.

◆ QEQueueCtr

The data type to store the ring-buffer counters based on the macro QF_EQUEUE_CTR_SIZE.

Description
The dynamic range of this data type determines the maximum length of the ring buffer managed by the native QF event queue.

Definition at line 72 of file qequeue.hpp.

◆ QEvtSize

Definition at line 83 of file qf.hpp.

◆ QTimeEvtCtr

Definition at line 99 of file qf.hpp.

◆ QSubscrList

using QSubscrList = QPSet

Subscriber List.

Description
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 priority of an active object.

Definition at line 488 of file qf.hpp.

◆ QSchedStatus

The scheduler lock status.

Definition at line 119 of file qk.hpp.

◆ QMPoolSize

Definition at line 56 of file qmpool.hpp.

◆ QMPoolCtr

Definition at line 71 of file qmpool.hpp.

◆ QPSetBits

Definition at line 52 of file qpset.hpp.

◆ QSTimeCtr

Definition at line 281 of file qs.hpp.

◆ QSCtr

QS ring buffer counter and offset type.

Definition at line 292 of file qs.hpp.

Enumeration Type Documentation

◆ QSpyRecords

Quantum Spy record types.

Description
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

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 

QP::QF::tickX() 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 an evt to QEQueue failed

QS_QF_MPOOL_GET_ATTEMPT 

attempt to get a memory block failed

QS_MUTEX_LOCK 

a mutex was locked

QS_MUTEX_UNLOCK 

a mutex was unlocked

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_RESERVED_71 
QS_RESERVED_72 
QS_RESERVED_73 
QS_RESERVED_74 
QS_RESERVED_75 
QS_RESERVED_76 
QS_RESERVED_77 
QS_RESERVED_78 
QS_RESERVED_79 
QS_RESERVED_80 
QS_RESERVED_81 
QS_RESERVED_82 
QS_RESERVED_83 
QS_RESERVED_84 
QS_RESERVED_85 
QS_RESERVED_86 
QS_RESERVED_87 
QS_RESERVED_88 
QS_RESERVED_89 
QS_RESERVED_90 
QS_RESERVED_91 
QS_RESERVED_92 
QS_RESERVED_93 
QS_RESERVED_94 
QS_RESERVED_95 
QS_RESERVED_96 
QS_RESERVED_97 
QS_RESERVED_98 
QS_RESERVED_99 
QS_USER 

the first record available to QS users

Definition at line 62 of file qs.hpp.

◆ QSpyRecordGroups

QS record groups for QS_GLB_FILTER()

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_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 200 of file qs.hpp.

◆ QSpyUserOffsets

QS user record group offsets for QS_GLB_FILTER()

Enumerator
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 218 of file qs.hpp.

◆ QSpyIdOffsets

QS ID offsets for QS_LOC_FILTER()

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 227 of file qs.hpp.

◆ QSpyIdGroups

QS ID groups for QS_LOC_FILTER()

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 235 of file qs.hpp.

◆ QSpyRxRecords

Quantum Spy Receive (RX) record types.

Description
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 575 of file qs.hpp.

◆ anonymous enum

anonymous enum : QSignal
Enumerator
QEP_EMPTY_SIG_ 

empty signal for internal use only

Definition at line 83 of file qep_hsm.cpp.

◆ QXK_Timeouts

timeout signals

Enumerator
QXK_DELAY_SIG 
QXK_QUEUE_SIG 
QXK_SEMA_SIG 

Definition at line 45 of file qxk_pkg.hpp.

Function Documentation

◆ QF_LOG2()

std::uint_fast8_t QP::QF_LOG2 ( QPSetBits  x)
noexcept

◆ TEST()

void QP::TEST ( char const *  title)

◆ QUIT_fail_()

void QP::QUIT_fail_ ( char const *  cond,
char const *  module,
int  line 
)

◆ onRunTests()

void QP::onRunTests ( void  )

◆ QF_EVT_POOL_ID_()

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

return the Pool-ID of an event e

Definition at line 140 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_()

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

return the Reference Conter of an event e

Definition at line 145 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_INC_()

void QP::QF_EVT_REF_CTR_INC_ ( QEvt const *const  e)
inlinenoexcept

increment the refCtr_ of an event e

Definition at line 150 of file qf_pkg.hpp.

◆ QF_EVT_REF_CTR_DEC_()

void QP::QF_EVT_REF_CTR_DEC_ ( QEvt const *const  e)
inlinenoexcept

decrement the refCtr_ of an event e

Definition at line 155 of file qf_pkg.hpp.

◆ initial_events() [1/2]

static void initial_events ( void  )
static

process all events posted during initialization *‍/

Definition at line 119 of file qk.cpp.

◆ QS_target_info_()

void QS_target_info_ ( std::uint8_t const  isReset)
noexcept

send the Target info (object sizes, build time-stamp, QP version)

Definition at line 464 of file qs.cpp.

◆ rxParseData_()

static void QP::rxParseData_ ( std::uint8_t const  b)
staticnoexcept

Definition at line 415 of file qs_rx.cpp.

◆ rxHandleBadFrame_()

static void QP::rxHandleBadFrame_ ( std::uint8_t const  state)
staticnoexcept

Definition at line 1226 of file qs_rx.cpp.

◆ rxReportAck_()

static void QP::rxReportAck_ ( enum QSpyRxRecords const  recId)
staticnoexcept

Definition at line 1241 of file qs_rx.cpp.

◆ rxReportError_()

static void QP::rxReportError_ ( std::uint8_t const  code)
staticnoexcept

Definition at line 1253 of file qs_rx.cpp.

◆ rxReportDone_()

static void QP::rxReportDone_ ( enum QSpyRxRecords const  recId)
staticnoexcept

Definition at line 1265 of file qs_rx.cpp.

◆ rxPoke_()

static void QP::rxPoke_ ( void  )
staticnoexcept

Definition at line 1278 of file qs_rx.cpp.

◆ initial_events() [2/2]

static void initial_events ( void  )
static

process all events posted during initialization

Definition at line 132 of file qxk.cpp.

Variable Documentation

◆ versionStr

constexpr char_t const versionStr[] {QP_VERSION_STR}
constexpr

the current QP version number string based on QP_VERSION_STR

Definition at line 133 of file qep.hpp.

◆ Q_USER_SIG

constexpr enum_t Q_USER_SIG {4}
constexpr

Offset or the user signals.

Definition at line 610 of file qep.hpp.

◆ QF_NO_MARGIN

std::uint_fast16_t const QF_NO_MARGIN = 0xFFFFU

special value of margin that causes asserting failure in case event allocation or event posting fails

Definition at line 627 of file qf.hpp.

◆ QS_EOD

constexpr std::uint16_t QS_EOD = 0xFFFFU
constexpr

Constant representing End-Of-Data condition returned from the QP::QS::getByte() function.

Definition at line 296 of file qs.hpp.

◆ QUTEST_ON_POST

constexpr std::uint8_t QUTEST_ON_POST {124U}
constexpr

Definition at line 650 of file qs.hpp.

◆ QF_intNest

std::uint8_t volatile QF_intNest

Definition at line 54 of file qutest.cpp.

◆ BUILD_DATE

char const BUILD_DATE = __DATE__

the calendar date of the last translation of the form: "Mmm dd yyyy"

Definition at line 15 of file qstamp.cpp.

◆ BUILD_TIME

char const BUILD_TIME = __TIME__

the time of the last translation of the form: "hh:mm:ss"

Definition at line 18 of file qstamp.cpp.

◆ QXTHREAD_NO_TIMEOUT

constexpr std::uint_fast16_t QXTHREAD_NO_TIMEOUT = 0U
staticconstexpr

no-timeout sepcification when blocking on queues or semaphores

Definition at line 45 of file qxthread.hpp.

◆ QEP_reservedEvt_

QEvt const QEP_reservedEvt_[4]
static
Initial value:
{
{ 0U, 0U, 0U },
{ 1U, 0U, 0U },
{ 2U, 0U, 0U },
{ 3U, 0U, 0U }
}
Description
Static, preallocated standard events that the QEP event processor sends to state handler functions of QP::QHsm and QP::QFsm subclasses to execute entry actions, exit actions, and initial transitions.

Definition at line 94 of file qep_hsm.cpp.

◆ QF_pool_

QF_EPOOL_TYPE_ QF_pool_

allocate event pools

Definition at line 54 of file qf_dyn.cpp.

◆ QF_maxPool_

std::uint_fast8_t QF_maxPool_

of initialized event pools

Definition at line 55 of file qf_dyn.cpp.

◆ QF_subscrList_

QSubscrList * QF_subscrList_

the subscriber list array

Definition at line 57 of file qf_ps.cpp.

◆ QF_maxPubSignal_

enum_t QF_maxPubSignal_

the maximum published signal

Definition at line 58 of file qf_ps.cpp.

◆ TE_IS_LINKED

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

Definition at line 132 of file qf_pkg.hpp.

◆ TE_WAS_DISARMED

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

Definition at line 133 of file qf_pkg.hpp.

◆ TE_TICK_RATE

constexpr std::uint8_t TE_TICK_RATE = 0x0FU
constexpr

Definition at line 134 of file qf_pkg.hpp.

◆ QS_FRAME

constexpr std::uint8_t QS_FRAME = 0x7EU
constexpr

Frame character of the QS output protocol.

Definition at line 255 of file qs_pkg.hpp.

◆ QS_ESC

constexpr std::uint8_t QS_ESC = 0x7DU
constexpr

Escape character of the QS output protocol.

Definition at line 258 of file qs_pkg.hpp.

◆ QS_ESC_XOR

constexpr std::uint8_t QS_ESC_XOR = 0x20U
constexpr

Escape modifier of the QS output protocol.

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

Definition at line 264 of file qs_pkg.hpp.

◆ QS_GOOD_CHKSUM

constexpr std::uint8_t QS_GOOD_CHKSUM = 0xFFU
constexpr

Escape character of the QS output protocol.

Definition at line 267 of file qs_pkg.hpp.

◆ QV_readySet_

QPSet QV_readySet_
Note
The functions implemented in this module can have a different implementation in other QF ports. The implementations included here are appropriate for the cooperative QV kernel only.

Definition at line 66 of file qv.cpp.

◆ l_idleThread

QXKIdleThread l_idleThread
static

Definition at line 72 of file qxk.cpp.