41Q_DEFINE_THIS_MODULE(
"qf_time")
53 std::uint_fast8_t
const tickRate) noexcept
73 std::uint32_t
const nTicks,
74 std::uint32_t
const interval)
noexcept
80#if (QF_TIMEEVT_CTR_SIZE == 1U)
82#elif (QF_TIMEEVT_CTR_SIZE == 2U)
89 std::uint_fast8_t
const qsId =
143 std::uint_fast8_t
const qsId =
static_cast<QActive *
>(
m_act)->m_prio;
147 bool wasArmed =
false;
184#if (QF_TIMEEVT_CTR_SIZE == 1U)
186#elif (QF_TIMEEVT_CTR_SIZE == 2U)
195 && (
m_act !=
nullptr)
199 std::uint_fast8_t
const qsId =
static_cast<QActive *
>(
m_act)->m_prio;
205 bool wasArmed =
false;
259 std::uint_fast8_t
const tickRate,
260 void const *
const sender)
noexcept
312 else if (ctr == 1U) {
314 prev = te->
expire_(prev, act, tickRate);
318 QXThread::timeout_(act);
325 act->POST(te, sender);
331 act->POST(te, sender);
351 bool inactive =
false;
381 std::uint_fast8_t
const tickRate)
noexcept
Active object class (based on the QHsm implementation strategy)
QSignal sig
Signal of the event (see Event Signal)
std::uint8_t volatile refCtr_
Event reference counter.
constexpr QEvt(QSignal const s) noexcept
Event constexpr constructor applicable to immutable and mutable event instances.
static void tick(std::uint_fast8_t const tickRate, void const *const sender) noexcept
static QTimeEvt timeEvtHead_[QF_MAX_TICK_RATE]
QTimeEvt(QActive *const act, QSignal const sig, std::uint_fast8_t const tickRate=0U) noexcept
The "extended" constructor to initialize a Time Event.
static bool noActive(std::uint_fast8_t const tickRate) noexcept
void * m_act
Active object that receives the time events.
QTimeEvt *volatile m_next
Link to the next time event in the list.
QActive * toActive() noexcept
void armX(std::uint32_t const nTicks, std::uint32_t const interval=0U) noexcept
bool rearm(std::uint32_t const nTicks) noexcept
QTimeEvtCtr volatile m_ctr
Down-counter of the time event.
QTimeEvt * expire_(QTimeEvt *const prev_link, QActive const *const act, std::uint_fast8_t const tickRate) noexcept
QTimeEvtCtr m_interval
Interval for periodic time event (zero for one-shot time event)
bool wasDisarmed() noexcept
constexpr enum_t Q_USER_SIG
std::uint32_t QTimeEvtCtr
Data type to store the block-size defined based on the macro QF_TIMEEVT_CTR_SIZE.
constexpr std::uint8_t QTE_FLAG_WAS_DISARMED
std::uint16_t QSignal
The signal of event QP::QEvt.
constexpr std::uint8_t QTE_FLAG_IS_LINKED
#define Q_UNUSED_PAR(par_)
Helper macro to clearly mark unused parameters of functions.
#define QF_MAX_TICK_RATE
Maximum # clock tick rates in the system (0..15)
Internal (package scope) QP/C++ interface.
QS/C++ dummy public interface.
#define QS_2U8_PRE(data1_, data2_)
#define QS_BEGIN_PRE(rec_, qsId_)
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
General-purpose assertion with user-specified ID number (in critical section)
#define Q_REQUIRE_INCRIT(id_, expr_)
Assertion for checking a precondition (in critical section)