41Q_DEFINE_THIS_MODULE(
"qf_qact")
45void QActive_ctor(
QActive * const me,
51 QF_bzero_(me,
sizeof(*me));
56 QHsm_ctor((
QHsm *)(me), initial);
66 ,&QHsm_getStateHandler_
69 me->super.vptr = &vtable;
78 if (me->
pthre == 0U) {
88 uint8_t prev_thre = me->
pthre;
89 uint8_t next_thre = me->
pthre;
91 for (uint_fast8_t p = (uint_fast8_t)me->
prio - 1U;
100 for (uint_fast8_t p = (uint_fast8_t)me->
prio + 1U;
111 (prev_thre <= me->
pthre)
112 && (me->
pthre <= next_thre));
124 uint_fast8_t
const p = (uint_fast8_t)me->
prio;
#define Q_STATE_CAST(handler_)
Perform cast to QStateHandler.
QState(* QStateHandler)(void *const me, QEvt const *const e)
Pointer to a state-handler function.
#define QF_MAX_ACTIVE
Maximum # Active Objects in the system (1..64)
Internal (package scope) QP/C interface.
#define Q_ASSERT_INCRIT(id_, expr_)
#define Q_REQUIRE_INCRIT(id_, expr_)
Active object class (based on the QHsm implementation strategy)
void QActive_unregister_(QActive *const me)
void QActive_register_(QActive *const me)
QActive * QActive_registry_[QF_MAX_ACTIVE+1U]
Static (one per-class) array of registered active objects.
uint8_t prio
QF-priority [1..QF_MAX_ACTIVE] of this AO.
uint8_t pthre
Preemption-threshold [1..QF_MAX_ACTIVE] of this AO.
union QAsmAttr state
Current state (pointer to the current state-handler function)
Virtual table for the QAsm class.
Hierarchical State Machine class (QHsm-style state machine implementation strategy)