|
void | init (void const *const e, std::uint_fast8_t const qsId) override |
|
void | init (std::uint_fast8_t const qsId) override |
|
void | dispatch (QEvt const *const e, std::uint_fast8_t const qsId) override |
|
bool | isIn (QStateHandler const state) noexcept override |
|
QStateHandler | getStateHandler () noexcept override |
|
bool | isInState (QMState const *const st) const noexcept |
|
QMState const * | childStateObj (QMState const *const parent) const noexcept |
|
QStateHandler | childState (QStateHandler const parent) noexcept |
|
void | setAttr (std::uint32_t attr1, void const *attr2=nullptr) |
|
void | start (QPrioSpec const prioSpec, QEvt const **const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize, void const *const par) |
|
void | start (QPrioSpec const prioSpec, QEvt const **const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize) |
|
void | stop () |
|
void | register_ () noexcept |
|
void | unregister_ () noexcept |
|
bool | post_ (QEvt const *const e, std::uint_fast16_t const margin, void const *const sender) noexcept |
|
void | postLIFO (QEvt const *const e) noexcept |
|
QEvt const * | get_ () noexcept |
|
void | subscribe (enum_t const sig) const noexcept |
|
void | unsubscribe (enum_t const sig) const noexcept |
|
void | unsubscribeAll () const noexcept |
|
bool | defer (QEQueue *const eq, QEvt const *const e) const noexcept |
|
bool | recall (QEQueue *const eq) noexcept |
|
std::uint_fast16_t | flushDeferred (QEQueue *const eq, std::uint_fast16_t const num=0xFFFFU) const noexcept |
|
std::uint_fast8_t | getPrio () const noexcept |
|
void | setPrio (QPrioSpec const prio) noexcept |
|
std::uint_fast8_t | getPThre () const noexcept |
|
QACTIVE_EQUEUE_TYPE const & | getEQueue () const noexcept |
|
QACTIVE_OS_OBJ_TYPE const & | getOsObject () const noexcept |
|
QACTIVE_THREAD_TYPE const & | getThread () const noexcept |
|
void | setThread (QACTIVE_THREAD_TYPE const &thr) |
|
virtual bool | postFromISR (QEvt const *const e, std::uint_fast16_t const margin, void *par, void const *const sender) noexcept |
|
QStateHandler | state () const noexcept |
|
QMState const * | stateObj () const noexcept |
|
|
enum | QStateRet : QState {
Q_RET_SUPER
, Q_RET_SUPER_SUB
, Q_RET_UNHANDLED
, Q_RET_HANDLED
,
Q_RET_IGNORED
, Q_RET_ENTRY
, Q_RET_EXIT
, Q_RET_NULL
,
Q_RET_TRAN
, Q_RET_TRAN_INIT
, Q_RET_TRAN_EP
, Q_RET_TRAN_HIST
,
Q_RET_TRAN_XP
} |
|
enum | ReservedSig : QSignal { Q_EMPTY_SIG
, Q_ENTRY_SIG
, Q_EXIT_SIG
, Q_INIT_SIG
} |
| Reserved signals by the QP-framework. More...
|
|
static std::uint_fast16_t | getQueueMin (std::uint_fast8_t const prio) noexcept |
|
static void | psInit (QSubscrList *const subscrSto, enum_t const maxSignal) noexcept |
|
static void | publish_ (QEvt const *const e, void const *const sender, std::uint_fast8_t const qsId) noexcept |
|
static void | evtLoop_ (QActive *act) |
|
static void | publishFromISR (QEvt const *e, void *par, void const *sender) noexcept |
|
static QState | top (void *const me, QEvt const *const e) noexcept |
|
std::uint8_t | m_prio_dis |
|
std::uint8_t | m_pthre_dis |
|
static QActive * | registry_ [QF_MAX_ACTIVE+1U] |
|
static QSubscrList * | subscrList_ |
|
static enum_t | maxPubSignal_ |
|
std::uint8_t | m_prio |
|
std::uint8_t | m_pthre |
|
QACTIVE_THREAD_TYPE | m_thread |
|
QACTIVE_OS_OBJ_TYPE | m_osObject |
|
QACTIVE_EQUEUE_TYPE | m_eQueue |
|
QAsmAttr | m_state |
|
QAsmAttr | m_temp |
|
Active object class (based on QMsm implementation strategy)
- Description
- QMActive represents an active object that uses the QP::QMsm style state machine implementation strategy. This strategy requires the use of the QM modeling tool to generate state machine code automatically, but the code is faster than in the QP::QHsm style implementation strategy and needs less run-time support (smaller event-processor).
- Note
- QMActive is not intended to be instantiated directly, but rather serves as the base class for derivation of active objects in the application.
- Traceability
-
- Usage
- The following example illustrates how to derive an active object from QP::QMActive. Please note the call to the QMActive constructor in the Philo subclass' constructor.
private:
public:
Philo::Philo()
m_timeEvt(this, TIMEOUT_SIG, 0U)
{}
protected:
. . .
};
Active object class (based on QMsm implementation strategy)
#define Q_STATE_CAST(handler_)
#define QM_STATE_DECL(state_)
#define QM_ACTION_DECL(action_)
Definition at line 910 of file qp.hpp.