QP/C Framework platform-independent public interface. More...
Go to the source code of this file.
Classes | |
| class | QEvtPtr |
| Event class. More... | |
| struct | QMState |
| State object for the QMsm class (QM State Machine). More... | |
| struct | QMTranActTable |
| Transition-Action Table for the QMsm State Machine. More... | |
| union | QAsmAttr |
| Attribute of for the QAsm class (Abstract State Machine). More... | |
| class | QAsm |
| Abstract State Machine class (state machine interface). More... | |
| struct | QAsmVtable |
| Virtual table for the QAsm class. More... | |
| class | QHsm |
| Hierarchical State Machine class (QHsm-style state machine implementation strategy). More... | |
| class | QMsm |
| Hierarchical State Machine class (QMsm-style state machine implementation strategy). More... | |
| class | QPSet |
| Set of Active Objects of up to QF_MAX_ACTIVE elements. More... | |
| struct | QSubscrList |
| Subscriber List (for publish-subscribe). More... | |
| class | QActive |
| Active object class (based on the QHsm implementation strategy). More... | |
| class | QMActive |
| Active object class (based on QMsm implementation strategy). More... | |
| class | QTimeEvt |
| Time Event class. More... | |
| class | QTicker |
| "Ticker" Active Object class More... | |
Macros | |
| #define | QP_VERSION_STR "8.1.3" |
| Version string complying with Software Versioning specification. | |
| #define | QP_VERSION 813U |
| Version number for internal use (must correspond to QP_VERSION_STR). | |
| #define | QP_RELEASE 0x64D7FC82U |
| Encrypted current QP version and release date for internal use. | |
| #define | Q_UNUSED_PAR(par_) |
| Helper macro to mark unused parameters of functions. | |
| #define | Q_DIM(array_) |
| Helper macro to calculate static dimension of a 1-dim array. | |
| #define | Q_UINT2PTR_CAST(type_, uint_) |
| Perform cast from unsigned integer uint_ to pointer of type type_. | |
| #define | QEVT_INITIALIZER(sig_) |
| Initializer for QEvt instances (base class). | |
| #define | QEVT_DYNAMIC ((uint8_t)0) |
| Dummy parameter for dynamic event initialization (see QEvt::QEvt_init()). | |
| #define | Q_EVT_CAST(class_) |
| Perform downcast of an event onto a subclass of QEvt class_. | |
| #define | Q_USER_SIG ((enum_t)4) |
| Offset for the user signals (QP/C Application). | |
| #define | Q_STATE_CAST(handler_) |
| Perform cast to QStateHandler. | |
| #define | Q_ACTION_CAST(action_) |
| Perform cast to QActionHandler. | |
| #define | Q_ACTION_NULL ((QActionHandler)0) |
| Macro to provide strictly-typed zero-action to terminate action lists in the transition-action-tables. | |
| #define | Q_RET_SUPER ((QState)0U) |
| #define | Q_RET_UNHANDLED ((QState)1U) |
| #define | Q_RET_HANDLED ((QState)2U) |
| #define | Q_RET_TRAN ((QState)3U) |
| #define | Q_RET_TRAN_HIST ((QState)4U) |
| #define | Q_RET_IGNORED ((QState)5U) |
| #define | Q_RET_ENTRY ((QState)6U) |
| #define | Q_RET_EXIT ((QState)7U) |
| #define | Q_RET_TRAN_INIT ((QState)8U) |
| #define | Q_EMPTY_SIG ((QSignal)0U) |
| Reserved signal sent to state handler to execute the default case. | |
| #define | Q_ENTRY_SIG ((QSignal)1U) |
| Reserved signal sent to state handler to execute the entry case. | |
| #define | Q_EXIT_SIG ((QSignal)2U) |
| Reserved signal sent to state handler to execute the exit case. | |
| #define | Q_INIT_SIG ((QSignal)3U) |
| Reserved signal sent to state handler to execute the initial transition. | |
| #define | QASM_INIT(me_, par_, qsId_) |
| Virtual call to the top-most initial transition in a state machine. | |
| #define | QASM_DISPATCH(me_, e_, qsId_) |
| Virtual call to dispatch an event to a state machine. | |
| #define | QASM_IS_IN(me_, stateHndl_) |
| Virtual call to check whether a state machine is in a given state. | |
| #define | QASM_GET_STATE_HANDLER(me_) |
| Virtual call to obtain the current state-handler of a state machine. | |
| #define | Q_ASM_UPCAST(ptr_) |
| Perform upcasting from a subclass of QAsm to the base class QAsm. | |
| #define | Q_HSM_UPCAST(ptr_) |
| Perform upcasting from a subclass of QHsm to the base class QHsm. | |
| #define | Q_TRAN(target_) |
| Take transition to the specified target_ state. | |
| #define | Q_TRAN_HIST(hist_) |
| Take transition to the specified history of a given state. Applicable only to HSMs. | |
| #define | Q_SUPER(super_) |
| Designates the superstate of a given state. Applicable only to QHsm subclasses. | |
| #define | Q_HANDLED() |
| Indicate that an action has been "handled." Applies to entry/exit actions and internal transitions. | |
| #define | Q_UNHANDLED() |
| Indicate that an internal transition has been "unhandled" due to a guard condition. | |
| #define | Q_MSM_UPCAST(ptr_) |
| Perform upcasting from a subclass of QMsm to the base class QMsm. | |
| #define | QM_ENTRY(state_) |
| Macro to call in a QM action-handler when it executes an entry action. Applicable only to QMsm subclasses. | |
| #define | QM_EXIT(state_) |
| Macro to call in a QM action-handler when it executes an exit action. Applicable only to QMsm subclasses. | |
| #define | QM_TRAN(tatbl_) |
| Macro to call in a QM state-handler when it executes a regular transition. Applicable only to QMsm subclasses. | |
| #define | QM_TRAN_INIT(tatbl_) |
| Macro to call in a QM state-handler when it executes an initial transition. Applicable only to QMsm subclasses. | |
| #define | QM_TRAN_HIST(history_, tatbl_) |
| Macro to call in a QM state-handler when it executes a transition to history. Applicable only to QMsm subclasses. | |
| #define | QM_HANDLED() |
| Macro to call in a QM state-handler when it handled an event. Applicable only to QMsm subclasses. | |
| #define | QM_UNHANDLED() |
| Indicate that an internal transition has been "unhandled" due to a guard condition. Applicable only to QMsm subclasses. | |
| #define | QM_SUPER() |
| Macro to call in a QM state-handler when it designates the superstate to handle an event. Applicable only to ::QMSMs. | |
| #define | QM_STATE_NULL ((QMState *)0) |
| #define | Q_ACTIVE_UPCAST(ptr_) |
| Perform upcasting from a subclass of QActive to the base class QActive. | |
| #define | QF_NO_MARGIN ((uint_fast16_t)0xFFFFU) |
| Special value of margin that causes asserting failure in case event allocation or event posting fails. | |
| #define | Q_NEW(evtT_, sig_, ...) |
| Allocate a mutable (dynamic) event. | |
| #define | Q_NEW_X(evtT_, margin_, sig_, ...) |
| Non-asserting allocate a mutable (dynamic) event. | |
| #define | Q_NEW_REF(evtRef_, evtT_) |
| Create a new reference of the current event e. | |
| #define | Q_DELETE_REF(evtRef_) |
| Delete the event reference. | |
| #define | QACTIVE_POST(me_, e_, sender_) |
| Invoke the direct event posting facility QActive_post_(). | |
| #define | QACTIVE_POST_X(me_, e_, margin_, sender_) |
| Invoke the direct event posting facility QActive_post_() without delivery guarantee. | |
| #define | QACTIVE_PUBLISH(e_, sender_) |
| Publish an event to all subscriber Active Objects. | |
| #define | QTIMEEVT_TICK_X(tickRate_, sender_) |
| Invoke the system clock tick processing QTimeEvt_tick_(). | |
| #define | QTICKER_TRIG(ticker_, sender_) |
| Asynchronously trigger the QTicker AO to perform tick processing. | |
| #define | QACTIVE_POST_LIFO(me_, e_) |
| Post an event to an active object using the Last-In-First-Out (LIFO) policy. | |
| #define | QTIMEEVT_TICK(sender_) |
| Invoke the system clock tick processing for tick rate 0. | |
Typedefs | |
| typedef int | int_t |
| Alias for assertion-ID numbers in QP assertions and return from QF_run(). | |
| typedef int | enum_t |
| typedef uint16_t | QSignal |
| The signal of event QEvt. | |
| typedef QEvt const * | QEvtPtr |
| Pointer to const event instances passed around in QP/C Framework. | |
| typedef uint_fast8_t | QState |
| Type returned from state-handler functions. | |
| typedef QState(* | QStateHandler) (void *const me, QEvt const *const e) |
| Pointer to a state-handler function. | |
| typedef QState(* | QActionHandler) (void *const me) |
| Pointer to an action-handler function. | |
| typedef void(* | QXThreadHandler) (struct QXThread *const me) |
| Pointer to an extended-thread handler function. | |
| typedef uint16_t | QPrioSpec |
| Priority specification for Active Objects in QP. | |
| typedef uint32_t | QTimeEvtCtr |
| Data type to store the block-size defined based on the macro QF_TIMEEVT_CTR_SIZE. | |
| typedef uint32_t | QPSetBits |
| Bitmask for the internal representation of QPSet elements. | |
Functions | |
| uint_fast8_t | QF_LOG2 (QPSetBits const bitmask) |
| Log-base-2 calculation when hardware acceleration is NOT provided (QF_LOG2 not defined). | |
| static QPrioSpec | Q_PRIO (uint8_t const prio, uint8_t const pthre) |
Variables | |
| char const | QP_versionStr [24] |
QP/C Framework platform-independent public interface.
Forward Traceability
Definition in file qp.h.
| #define QP_VERSION_STR "8.1.3" |
Version string complying with Software Versioning specification.
Details
QP_VERSION_STR is a zero-terminated version string in the form MAJOR.MINOR.PATCH compliant with Software Versioning specification.
Examples
Backward Traceability
Forward Traceability
| #define QP_VERSION 813U |
Version number for internal use (must correspond to QP_VERSION_STR).
Details
QP_VERSION is an unsigned integer constant of the form MAJOR|MINOR|PATCH corresponding to QP_VERSION_STR, with digits merged together. For example QP_VERSION_STR == "7.3.5-rc.1" results in QP_VERSION == 735.
Backward Traceability
| #define QP_RELEASE 0x64D7FC82U |
Encrypted current QP version and release date for internal use.
Details
QP_RELEASE contains information about QP_VERSION (e.g., 735) and release date (e.g., 2023-06-30).
| #define Q_UNUSED_PAR | ( | par_ | ) |
Helper macro to mark unused parameters of functions.
| par_ | the unused parameter |
Usage
Forward Traceability
| #define Q_DIM | ( | array_ | ) |
Helper macro to calculate static dimension of a 1-dim array.
| array_ | 1-dimensional array |
Usage
Forward Traceability
| #define Q_UINT2PTR_CAST | ( | type_, | |
| uint_ ) |
Perform cast from unsigned integer uint_ to pointer of type type_.
Details
This macro encapsulates the cast to (type_ *), which QP ports or applications might use to access embedded hardware registers. This macro also helps to encapsulate the MISRA deviations listed in the "Forward Traceability" section.
| type_ | the pointer type to cast the integer onto |
| uint_ | the integer value |
Usage
Forward Traceability
| #define QEVT_INITIALIZER | ( | sig_ | ) |
Initializer for QEvt instances (base class).
Details
This macro initializes all attributes of the QEvt base class (including the Duplicate Inverse Storage (DIS) in the SafeQP/C edition). The event is initialized as a static event (NOT coming from any event pool). QP/C Framework will not try to recycle such event instances. Usage
Forward Traceability
| #define QEVT_DYNAMIC ((uint8_t)0) |
Dummy parameter for dynamic event initialization (see QEvt::QEvt_init()).
Forward Traceability
| #define Q_EVT_CAST | ( | class_ | ) |
Perform downcast of an event onto a subclass of QEvt class_.
Details
This macro encapsulates the downcast of QEvt pointers. This macro also helps to localize MISRA deviation listed in the "Forward Traceability" section below.
| class_ | a subclass of QEvt |
Forward Traceability
| #define Q_USER_SIG ((enum_t)4) |
Offset for the user signals (QP/C Application).
Usage
The following example illustrates the use of Q_USER_SIG:
Forward Traceability
| #define Q_STATE_CAST | ( | handler_ | ) |
Perform cast to QStateHandler.
Details
This macro encapsulates the cast of a specific state handler function pointer to QStateHandler. This macro also helps to localize MISRA deviations listed in the "Forward Traceability" section below.
| [in] | handler_ | specific state-handler function to be cast to the generic QStateHandler |
Usage
Forward Traceability
| #define Q_ACTION_CAST | ( | action_ | ) |
Perform cast to QActionHandler.
Details
This macro encapsulates the cast of a specific action handler function pointer to QActionHandler. This macro also helps to localize MISRA deviations listed in the "Forward Traceability" section below.
| [in] | action_ | specific action-handler function to be cast to the generic QActionHandler |
Usage
Forward Traceability
| #define Q_ACTION_NULL ((QActionHandler)0) |
| #define Q_EMPTY_SIG ((QSignal)0U) |
| #define Q_ENTRY_SIG ((QSignal)1U) |
| #define Q_EXIT_SIG ((QSignal)2U) |
| #define Q_INIT_SIG ((QSignal)3U) |
| #define QASM_INIT | ( | me_, | |
| par_, | |||
| qsId_ ) |
Virtual call to the top-most initial transition in a state machine.
Details
Details
Take the top-most initial transition in a state machine. This virtual call invokes the operation QAsmVtable::init. It applies to subclasses of QAsm, such as: QHsm and QMsm. Subclasses of QActive, and QMActive should not make this virtual call directly because it is executed in the QActive::QActive_start() operation.
| [in,out] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | par_ | pointer the optional initialization parameter |
| [in] | qsId_ | QS local filter ID (used only when Q_SPY is defined) |
Usage
The following example illustrates how to initialize a state machine and dispatch events to it:
Forward Traceability
| #define QASM_DISPATCH | ( | me_, | |
| e_, | |||
| qsId_ ) |
Virtual call to dispatch an event to a state machine.
Details
Processes one event at a time in Run-to-Completion fashion. This virtual call invokes the operation QAsmVtable::dispatch. It applies to subclasses of QAsm, such as: QHsm, QMsm, QActive, and QMActive.
| [in,out] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | e_ | constant pointer the QEvt or a class derived from QEvt (see SAS_QP_OOA) |
| [in] | qsId_ | QS local filter ID (used only when Q_SPY is defined) |
Usage
The following example illustrates how to initialize an SM and dispatch events to it:
Forward Traceability
| #define QASM_IS_IN | ( | me_, | |
| stateHndl_ ) |
Virtual call to check whether a state machine is in a given state.
Details
This virtual call invokes the operation QAsmVtable::isIn. It applies to subclasses of QAsm, such as: QHsm, QMsm, QActive, and QMActive.
| [in] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | stateHndl_ | state handler (QStateHandler type) |
Usage
The following example illustrates how to check whether SM is in a given state:
Forward Traceability
| #define QASM_GET_STATE_HANDLER | ( | me_ | ) |
Virtual call to obtain the current state-handler of a state machine.
Details
This virtual call applies to all subclasses of QAsm, such as: QHsm, QMsm, QActive, and QMActive.
| [in] | me_ | current instance pointer (see SAS_QP_OOA) |
Usage
The following example illustrates how to obtain the current state handler of an Active Object:
Forward Traceability
| #define Q_ASM_UPCAST | ( | ptr_ | ) |
Perform upcasting from a subclass of QAsm to the base class QAsm.
| [in,out] | ptr_ | pointer to subclass of QAsm |
Forward Traceability
| #define Q_HSM_UPCAST | ( | ptr_ | ) |
Perform upcasting from a subclass of QHsm to the base class QHsm.
| [in,out] | ptr_ | pointer to subclass of QHsm |
Forward Traceability
| #define Q_TRAN | ( | target_ | ) |
Take transition to the specified target_ state.
| [in] | target_ | target state (state handler) |
Forward Traceability
| #define Q_TRAN_HIST | ( | hist_ | ) |
Take transition to the specified history of a given state. Applicable only to HSMs.
| [in] | hist_ | recorded state history (state handler stored in a variable) |
Usage
Forward Traceability
| #define Q_SUPER | ( | super_ | ) |
Designates the superstate of a given state. Applicable only to QHsm subclasses.
| [in] | super_ | superstate handler for a given state (might be QHsm_top()) |
Usage
Forward Traceability
| #define Q_HANDLED | ( | ) |
Indicate that an action has been "handled." Applies to entry/exit actions and internal transitions.
Example
Forward Traceability
| #define Q_UNHANDLED | ( | ) |
Indicate that an internal transition has been "unhandled" due to a guard condition.
Details
This macro must be called when a state-handler attempts to handle an event but a guard condition evaluates to 'false' and there is no other explicit way of handling the event. Applicable only to QHsm subclasses.
Forward Traceability
| #define Q_MSM_UPCAST | ( | ptr_ | ) |
Perform upcasting from a subclass of QMsm to the base class QMsm.
| [in,out] | ptr_ | pointer to subclass of QMsm |
Forward Traceability
| #define QM_ENTRY | ( | state_ | ) |
Macro to call in a QM action-handler when it executes an entry action. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_EXIT | ( | state_ | ) |
Macro to call in a QM action-handler when it executes an exit action. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_TRAN | ( | tatbl_ | ) |
Macro to call in a QM state-handler when it executes a regular transition. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_TRAN_INIT | ( | tatbl_ | ) |
Macro to call in a QM state-handler when it executes an initial transition. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_TRAN_HIST | ( | history_, | |
| tatbl_ ) |
Macro to call in a QM state-handler when it executes a transition to history. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_HANDLED | ( | ) |
Macro to call in a QM state-handler when it handled an event. Applicable only to QMsm subclasses.
Forward Traceability
| #define QM_UNHANDLED | ( | ) |
Indicate that an internal transition has been "unhandled" due to a guard condition. Applicable only to QMsm subclasses.
Details
This macro must be called when a state-handler attempts to handle an event but a guard condition evaluates to 'false' and there is no other explicit way of handling the event.
Forward Traceability
| #define QM_SUPER | ( | ) |
Macro to call in a QM state-handler when it designates the superstate to handle an event. Applicable only to ::QMSMs.
Forward Traceability
| #define Q_ACTIVE_UPCAST | ( | ptr_ | ) |
Perform upcasting from a subclass of QActive to the base class QActive.
| [in,out] | ptr_ | pointer to subclass of QActive |
Forward Traceability
| #define QF_NO_MARGIN ((uint_fast16_t)0xFFFFU) |
| #define Q_NEW | ( | evtT_, | |
| sig_, | |||
| ... ) |
Allocate a mutable (dynamic) event.
Details
This macro allocates a mutable (dynamic) event and internally asserts that the allocation is successful. This means that the caller does not need to check the returned event pointer for validity because it is guaranteed to be not NULL.
The macro calls the internal QF function QF_newX_() with argument margin == QF_NO_MARGIN, which causes an assertion failure when the event cannot be successfully allocated.
| [in] | evtT_ | event type (class name) of the event to allocate |
| [in] | sig_ | signal to assign to the newly allocated event |
Usage
The following example illustrates non-variadic version of Q_NEW() (when QEVT_PAR_INIT is NOT defined):
The following example illustrates variadic version of Q_NEW() and the RAII principle (Resource Acquisition Is Initialization) (when QEVT_PAR_INIT IS defined) :
Backward Traceability
Forward Traceability
| #define Q_NEW_X | ( | evtT_, | |
| margin_, | |||
| sig_, | |||
| ... ) |
Non-asserting allocate a mutable (dynamic) event.
Details
This macro allocates a mutable (dynamic) event, but only if the corresponding event pool has at least a margin of free events left. If the event pool has an insufficient number of events left, the macro returns NULL. The caller of this macro is responsible for checking the returned event pointer for NULL.
| [in] | evtT_ | event type (class name) of the event to allocate |
| [in] | margin_ | number of events that must remain available in the given pool after this allocation. The special value QF_NO_MARGIN causes asserting failure in case event allocation fails. |
| [in] | sig_ | signal to assign to the newly allocated event |
Usage
The following example illustrates non-variadic version of Q_NEW_X() (when QEVT_PAR_INIT is NOT defined):
The following example illustrates variadic version of Q_NEW_X() and the RAII principle (Resource Acquisition Is Initialization) (when QEVT_PAR_INIT IS defined) :
Backward Traceability
Forward Traceability
| #define Q_NEW_REF | ( | evtRef_, | |
| evtT_ ) |
Create a new reference of the current event e.
Details
The current event processed by an active object is available only for the duration of the run-to-completion (RTC) step. After that step, the current event is no longer available and the framework might recycle (garbage-collect) the event. The macro Q_NEW_REF() explicitly creates a new reference to the current event that can be stored and used beyond the current RTC step, until the reference is explicitly recycled utilizing the macro Q_DELETE_REF().
| [in,out] | evtRef_ | event reference to create |
| [in] | evtT_ | event type (class name) of the event reference |
Usage
The example defer in the directory examples/win32/defer illustrates the use of Q_NEW_REF()
Backward Traceability
Forward Traceability
| #define Q_DELETE_REF | ( | evtRef_ | ) |
Delete the event reference.
Details
Every event reference created with the macro Q_NEW_REF() needs to be eventually deleted utilizing the macro Q_DELETE_REF() to avoid leaking the event.
| [in,out] | evtRef_ | event reference to delete |
Usage
The example defer in the directory examples/win32/defer illustrates the use of Q_DELETE_REF()
Backward Traceability
Forward Traceability
| #define QACTIVE_POST | ( | me_, | |
| e_, | |||
| sender_ ) |
Invoke the direct event posting facility QActive_post_().
Details
This macro asserts if the queue overflows and cannot accept the event.
| [in,out] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | e_ | pointer to the event to post |
| [in] | sender_ | pointer to the sender object. |
Forward Traceability
| #define QACTIVE_POST_X | ( | me_, | |
| e_, | |||
| margin_, | |||
| sender_ ) |
Invoke the direct event posting facility QActive_post_() without delivery guarantee.
Details
This macro does not assert if the queue overflows and cannot accept the event with the specified margin of free slots remaining.
| [in,out] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | e_ | pointer to the event to post |
| [in] | margin_ | the minimum free slots in the queue, which must still be available after posting the event. The special value QF_NO_MARGIN causes asserting failure in case event posting fails. |
| [in] | sender_ | pointer to the sender object. |
Usage
Forward Traceability
| #define QACTIVE_PUBLISH | ( | e_, | |
| sender_ ) |
Publish an event to all subscriber Active Objects.
Details
If Q_SPY is defined, this macro calls QActive_publish_() with the sender_ parameter to identify the publisher of the event. Otherwise, sender_ is not used.
| [in] | e_ | pointer to the posted event |
| [in] | sender_ | pointer to the sender object (actually used only when Q_SPY is defined) |
Forward Traceability
| #define QTIMEEVT_TICK_X | ( | tickRate_, | |
| sender_ ) |
Invoke the system clock tick processing QTimeEvt_tick_().
Details
This macro is the recommended way of invoking clock tick processing, because it provides the vital information for software tracing and avoids any overhead when the tracing is disabled.
| [in] | tickRate_ | clock tick rate to be serviced through this call |
| [in] | sender_ | pointer to the sender object. This parameter is only used when QS software tracing is enabled (macro Q_SPY is defined) |
Forward Traceability
| #define QTICKER_TRIG | ( | ticker_, | |
| sender_ ) |
Asynchronously trigger the QTicker AO to perform tick processing.
Details
This macro is the recommended way to trigger clock tick processing, because it provides the vital information for software tracing and avoids any overhead when the tracing is disabled.
| [in] | ticker_ | pointer to the QTicker active object |
| [in] | sender_ | pointer to the sender object. This parameter is only used when QS software tracing is enabled (macro Q_SPY is defined) |
Forward Traceability
| #define QACTIVE_POST_LIFO | ( | me_, | |
| e_ ) |
Post an event to an active object using the Last-In-First-Out (LIFO) policy.
| [in,out] | me_ | current instance pointer (see SAS_QP_OOA) |
| [in] | e_ | pointer to the event to post |
| #define QTIMEEVT_TICK | ( | sender_ | ) |
Invoke the system clock tick processing for tick rate 0.
Forward Traceability
| typedef int int_t |
| typedef uint16_t QSignal |
The signal of event QEvt.
Details
The event signal in UML is the specification of an asynchronous stimulus that triggers reactions, and as such is an essential part of an event. The event signal conveys the type of the occurrence (what happened?) However, an event can also contain additional quantitative information about the occurrence in the form of event parameters. The event signal has to unambiguously identify the event-type, which includes the precise types of all event parameters (see also Relationship between event signals and events).
Backward Traceability
| typedef uint_fast8_t QState |
| typedef QState(* QActionHandler) (void *const me) |
| typedef void(* QXThreadHandler) (struct QXThread *const me) |
| typedef uint16_t QPrioSpec |
Priority specification for Active Objects in QP.
Details
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/C 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.
QPrioSpec allows an application developer to assign two priorities to a given AO (see also Q_PRIO()):
In the QP native preemptive kernels, like QK, the "preemption-threshold" priority is used to implement the "preemption-threshold scheduling" (PTS). 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 priority than the "preemption-threshold" of the original thread.

Forward Traceability
| typedef uint32_t QTimeEvtCtr |
Data type to store the block-size defined based on the macro QF_TIMEEVT_CTR_SIZE.
Details
The dynamic range of this data type determines the maximum block size that the pool can manage.
Forward Traceability
| typedef uint32_t QPSetBits |
| uint_fast8_t QF_LOG2 | ( | QPSetBits const | bitmask | ) |
|
inlinestatic |