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... | |
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_ |
QSubscrList * | QF_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 |
namespace associated with the QP/C++ framework
union QP::QHsmAttr |
Attribute of for the QHsm class (Hierarchical State Machine).
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 |
struct QP::QMState |
State object for the QP::QMsm class (QM State Machine).
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 |
struct QP::QMTranActTable |
Data Fields | ||
---|---|---|
QMState const * | target | |
QActionHandler const | act[1] |
struct QP::QFreeBlock |
Structure representing a free block in the Native QF Memory Pool.
Definition at line 122 of file qf_pkg.hpp.
Data Fields | ||
---|---|---|
QFreeBlock *volatile | m_next | link to the next free block |
using QSignal = std::uint16_t |
QSignal represents the signal of an event.
using QState = std::uint_fast8_t |
using QStateHandler = QState (*)(void * const me, QEvt const * const e) |
using QActionHandler = QState (*)(void * const me) |
using QXThreadHandler = void (*)(QXThread * const me) |
using QEQueueCtr = std::uint8_t |
The data type to store the ring-buffer counters based on the macro QF_EQUEUE_CTR_SIZE.
Definition at line 72 of file qequeue.hpp.
using QEvtSize = std::uint8_t |
using QTimeEvtCtr = std::uint8_t |
using QSubscrList = QPSet |
typedef std::uint_fast16_t QSchedStatus |
using QMPoolSize = std::uint8_t |
Definition at line 56 of file qmpool.hpp.
using QMPoolCtr = std::uint8_t |
Definition at line 71 of file qmpool.hpp.
using QPSetBits = std::uint8_t |
using QSTimeCtr = std::uint8_t |
using QSCtr = std::uint_fast16_t |
enum QSpyRecords : std::int8_t |
Quantum Spy record types.
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 |
enum QSpyRecordGroups : std::int16_t |
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 | |
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. |
enum QSpyUserOffsets : std::int16_t |
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 |
enum QSpyIdOffsets : std::int16_t |
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 |
enum QSpyIdGroups : std::int16_t |
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. |
enum QSpyRxRecords : std::uint8_t |
Quantum Spy Receive (RX) record types.
anonymous enum : QSignal |
Enumerator | |
---|---|
QEP_EMPTY_SIG_ | empty signal for internal use only |
Definition at line 83 of file qep_hsm.cpp.
enum QXK_Timeouts : std::uint8_t |
timeout signals
Enumerator | |
---|---|
QXK_DELAY_SIG | |
QXK_QUEUE_SIG | |
QXK_SEMA_SIG |
Definition at line 45 of file qxk_pkg.hpp.
|
noexcept |
void QP::TEST | ( | char const * | title | ) |
void QP::QUIT_fail_ | ( | char const * | cond, |
char const * | module, | ||
int | line | ||
) |
void QP::onRunTests | ( | void | ) |
|
inlinenoexcept |
return the Pool-ID of an event e
Definition at line 140 of file qf_pkg.hpp.
|
inlinenoexcept |
return the Reference Conter of an event e
Definition at line 145 of file qf_pkg.hpp.
|
inlinenoexcept |
increment the refCtr_ of an event e
Definition at line 150 of file qf_pkg.hpp.
|
inlinenoexcept |
decrement the refCtr_ of an event e
Definition at line 155 of file qf_pkg.hpp.
|
static |
|
noexcept |
|
staticnoexcept |
|
staticnoexcept |
|
staticnoexcept |
|
staticnoexcept |
|
staticnoexcept |
|
static |
|
constexpr |
|
constexpr |
std::uint_fast16_t const QF_NO_MARGIN = 0xFFFFU |
|
constexpr |
Constant representing End-Of-Data condition returned from the QP::QS::getByte() function.
|
constexpr |
std::uint8_t volatile QF_intNest |
Definition at line 54 of file qutest.cpp.
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.
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.
|
staticconstexpr |
no-timeout sepcification when blocking on queues or semaphores
Definition at line 45 of file qxthread.hpp.
|
static |
Definition at line 94 of file qep_hsm.cpp.
QF_EPOOL_TYPE_ QF_pool_ |
allocate event pools
Definition at line 54 of file qf_dyn.cpp.
std::uint_fast8_t QF_maxPool_ |
Definition at line 55 of file qf_dyn.cpp.
QSubscrList * QF_subscrList_ |
|
constexpr |
Definition at line 132 of file qf_pkg.hpp.
|
constexpr |
Definition at line 133 of file qf_pkg.hpp.
|
constexpr |
Definition at line 134 of file qf_pkg.hpp.
|
constexpr |
Frame character of the QS output protocol.
Definition at line 255 of file qs_pkg.hpp.
|
constexpr |
Escape character of the QS output protocol.
Definition at line 258 of file qs_pkg.hpp.
|
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.
|
constexpr |
Escape character of the QS output protocol.
Definition at line 267 of file qs_pkg.hpp.
QPSet QV_readySet_ |
|
static |