81 #define QEP_EXIT_(state_, qs_id_) do { \
82 if ((*(state_))(me, &QEP_reservedEvt_[Q_EXIT_SIG]) \
83 == (QState)Q_RET_HANDLED) { \
84 QS_BEGIN_PRE_(QS_QEP_STATE_EXIT, (qs_id_)) \
86 QS_FUN_PRE_(state_); \
91 #define QEP_ENTER_(state_, qs_id_) do { \
92 if ((*(state_))(me, &QEP_reservedEvt_[Q_ENTRY_SIG]) \
93 == (QState)Q_RET_HANDLED) { \
94 QS_BEGIN_PRE_(QS_QEP_STATE_ENTRY, (qs_id_)) \
96 QS_FUN_PRE_(state_); \
104 uint_fast8_t
const qs_id);
106 #define QEP_EXIT_(state_, dummy_) \
107 ((void)(*(state_))(me, &QEP_reservedEvt_[Q_EXIT_SIG]))
109 #define QEP_ENTER_(state_, dummy_) \
110 ((void)(*(state_))(me, &QEP_reservedEvt_[Q_ENTRY_SIG]))
168 uint_fast8_t
const qs_id)
287 uint_fast8_t
const qs_id)
338 for (; t != s; t = me->
temp.
fun) {
367 for (; ip >= 0; --ip) {
467 uint_fast8_t
const qs_id)
584 ip = (int_fast8_t)(iq - 1);
633 bool inState =
false;
681 bool isFound =
false;
Customizable and memory-efficient assertions for embedded systems.
#define Q_DEFINE_THIS_MODULE(name_)
#define Q_ASSERT_ID(id_, test_)
#define Q_ENSURE_ID(id_, test_)
#define Q_REQUIRE_ID(id_, test_)
#define Q_STATE_CAST(handler_)
QState(* QStateHandler)(void *const me, QEvt const *const e)
#define Q_EVT_CAST(class_)
static QEvt const QEP_reservedEvt_[]
#define QEP_EXIT_(state_, qs_id_)
#define QEP_ENTER_(state_, qs_id_)
static QState QHsm_trig_(QHsm *const me, QStateHandler const state, QSignal sig)
char const QP_versionStr[7]
Internal (package scope) QS/C interface.
#define QS_BEGIN_PRE_(rec_, qs_id_)
#define QS_OBJ_PRE_(obj_)
#define QS_FUN_PRE_(fun_)
#define QS_SIG_PRE_(sig_)
bool QHsm_isIn(QHsm *const me, QStateHandler const state)
struct QHsmVtable const * vptr
void QHsm_ctor(QHsm *const me, QStateHandler initial)
static int_fast8_t QHsm_tran_(QHsm *const me, QStateHandler path[QHSM_MAX_NEST_DEPTH_], uint_fast8_t const qs_id)
void QHsm_init_(QHsm *const me, void const *const e, uint_fast8_t const qs_id)
QState QHsm_top(void const *const me, QEvt const *const e)
QStateHandler QHsm_getStateHandler_(QHsm *const me)
void QHsm_dispatch_(QHsm *const me, QEvt const *const e, uint_fast8_t const qs_id)
QStateHandler QHsm_childState(QHsm *const me, QStateHandler const parent)