QP/C++ 6.8.1
QP Namespace Reference
QEP | QF | QS | QV | QK | QXK

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

Data Structures

class  QActive
 QActive active object (based on QP::QHsm implementation) More...
 
class  QActiveDummy
 Dummy Active Object class. More...
 
class  QEP
 Provides miscellaneous QEP services. More...
 
class  QEQueue
 Native QF Event Queue class. More...
 
struct  QEvt
 QEvt base class. More...
 
class  QF
 QF services. More...
 
struct  QFreeBlock
 Structure representing a free block in the Native QF Memory Pool. More...
 
class  QHsm
 Hierarchical State Machine base class. More...
 
union  QHsmAttr
 Attribute of for the QHsm class (Hierarchical State Machine). More...
 
class  QK
 QK services. 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...
 
struct  QPSet
 Priority Set of up to 32 elements *‍/. More...
 
class  QS
 QS logging facilities. More...
 
class  QTicker
 Ticker Active Object class. More...
 
class  QTimeEvt
 Time Event class. More...
 
class  QV
 QV services. More...
 
class  QXK
 QXK services. More...
 
class  QXKIdleThread
 
class  QXMutex
 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 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::uint16_t
 The data type to store the block-size defined based on the macro QF_EVENT_SIZ_SIZE. More...
 
using QTimeEvtCtr = std::uint16_t
 type of the Time Event counter, which determines the dynamic range of the time delays measured in clock ticks. More...
 
using QSubscrList = QPSet
 Subscriber List. More...
 
using QSchedStatus = std::uint_fast16_t
 The scheduler lock status. 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 QPSetBits = std::uint32_t
 bitmask for the internal representation of QPSet elements More...
 
using QSTimeCtr = std::uint32_t
 The type of the QS time stamp. This type determines the dynamic. More...
 
using QSCtr = std::uint_fast16_t
 QS ring buffer counter and offset type. More...
 

Enumerations

enum  QSpyRecords : std::uint8_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_FIFO, QS_QF_ACTIVE_POST_LIFO,
  QS_QF_ACTIVE_GET, QS_QF_ACTIVE_GET_LAST, QS_QF_ACTIVE_RECALL_ATTEMPT, QS_QF_EQUEUE_POST_FIFO,
  QS_QF_EQUEUE_POST_LIFO, QS_QF_EQUEUE_GET, QS_QF_EQUEUE_GET_LAST, QS_QF_RESERVED2,
  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_RESERVED_70, 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::uint8_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_FILTER_ON() and QS_FILTER_OFF() More...
 
enum  QSpyUserRecords : std::uint8_t {
  QS_USER0 = QS_USER, QS_USER1 = static_cast<std::uint8_t>(QS_USER0 + 5U), QS_USER2 = static_cast<std::uint8_t>(QS_USER1 + 5U), QS_USER3 = static_cast<std::uint8_t>(QS_USER2 + 5U),
  QS_USER4 = static_cast<std::uint8_t>(QS_USER3 + 5U)
}
 QS user record group offsets. 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
 
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}
 
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 << 7
 
constexpr std::uint8_t TE_WAS_DISARMED = 1U << 6
 
constexpr std::uint8_t TE_TICK_RATE = 0x0FU
 
std::uint8_t volatile QF_intNest
 
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


Data Structure Documentation

◆ 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

◆ 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 564 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 573 of file qep.hpp.

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

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

The data type to store the block-size defined based on the macro QF_EVENT_SIZ_SIZE.

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

Definition at line 90 of file qf.hpp.

◆ QTimeEvtCtr

type of the Time Event counter, which determines the dynamic range of the time delays measured in clock ticks.

Description
This alias is configurable via the preprocessor switch QF_TIMEEVT_CTR_SIZE. The other possible values of this type are as follows:
std::uint8_t when (QF_TIMEEVT_CTR_SIZE == 1U), and
std::uint32_t when (QF_TIMEEVT_CTR_SIZE == 4U).

Definition at line 109 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 481 of file qf.hpp.

◆ QSchedStatus

The scheduler lock status.

Definition at line 124 of file qk.hpp.

◆ QMPoolSize

The data type to store the block-size based on the macro QF_MPOOL_SIZ_SIZE.

Description
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 63 of file qmpool.hpp.

◆ QMPoolCtr

The data type to store the block-counter based on the macro QF_MPOOL_CTR_SIZE.

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

Definition at line 78 of file qmpool.hpp.

◆ QPSetBits

bitmask for the internal representation of QPSet elements

Definition at line 57 of file qpset.hpp.

◆ QSTimeCtr

The type of the QS time stamp. This type determines the dynamic.

Definition at line 262 of file qs.hpp.

◆ QSCtr

QS ring buffer counter and offset type.

Definition at line 266 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_FILTER_OFF() macro. Other QS trace records can be disabled by means of the "global filters"
See also
QS_FILTER_ON() and QS_FILTER_OFF() macros
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_FIFO 

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_FIFO 

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_RESERVED2 
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_RESERVED_70 
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_FILTER_ON() and QS_FILTER_OFF()

Enumerator
QS_ALL_RECORDS 

all maskable 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 199 of file qs.hpp.

◆ QSpyUserRecords

QS user record group offsets.

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

◆ anonymous enum

anonymous enum : QSignal
Enumerator
QEP_EMPTY_SIG_ 

empty signal for internal use only

Definition at line 85 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

◆ 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 337 of file qs.cpp.

◆ rxParseData_()

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

Definition at line 345 of file qs_rx.cpp.

◆ rxHandleBadFrame_()

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

Definition at line 1220 of file qs_rx.cpp.

◆ rxReportAck_()

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

Definition at line 1229 of file qs_rx.cpp.

◆ rxReportError_()

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

Definition at line 1241 of file qs_rx.cpp.

◆ rxReportDone_()

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

Definition at line 1253 of file qs_rx.cpp.

◆ rxPoke_()

static void QP::rxPoke_ ( void  )
staticnoexcept

Definition at line 1266 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 590 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 619 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 270 of file qs.hpp.

◆ QUTEST_ON_POST

constexpr std::uint8_t QUTEST_ON_POST {124U}
constexpr

Definition at line 613 of file qs.hpp.

◆ BUILD_DATE

char const BUILD_DATE = __DATE__

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

Definition at line 16 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 19 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 96 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 << 7
constexpr

Definition at line 132 of file qf_pkg.hpp.

◆ TE_WAS_DISARMED

constexpr std::uint8_t TE_WAS_DISARMED = 1U << 6
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.

◆ QF_intNest

std::uint8_t volatile QF_intNest

Definition at line 54 of file qutest.cpp.

◆ QS_FRAME

constexpr std::uint8_t QS_FRAME = 0x7EU
constexpr

Frame character of the QS output protocol.

Definition at line 259 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 262 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 268 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 271 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.