|
void | QActive_psInit (QSubscrList *const subscrSto, enum_t const maxSignal) |
| Publish event to all subscribers of a given signal e->sig
|
|
void | QActive_ctor (QActive *const me, QStateHandler const initial) |
| QActive constructor (abstract base class)
|
|
void | QActive_stop (QActive *const me) |
| Stops execution of an active object and removes it from the framework's supervision.
|
|
void | QActive_subscribe (QActive const *const me, enum_t const sig) |
| Subscribes for delivery of signal sig to the active object.
|
|
void | QActive_unsubscribe (QActive const *const me, enum_t const sig) |
| Unsubscribes from the delivery of signal sig to the active object.
|
|
void | QActive_unsubscribeAll (QActive const *const me) |
| Unsubscribes from the delivery of all signals to the active object.
|
|
bool | QActive_defer (QActive const *const me, struct QEQueue *const eq, QEvt const *const e) |
| Defer an event to a given separate event queue.
|
|
bool | QActive_recall (QActive *const me, struct QEQueue *const eq) |
| Recall a deferred event from a given event queue.
|
|
uint_fast16_t | QActive_flushDeferred (QActive const *const me, struct QEQueue *const eq, uint_fast16_t const num) |
| Flush the specified number of events from the deferred queue eq
|
|
void | QAsm_ctor (QAsm *const me) |
| Constructor of the QAsm base class.
|
|
QState | QHsm_top (QHsm const *const me, QEvt const *const e) |
|
uint8_t | prio |
| QF-priority [1..QF_MAX_ACTIVE] of this AO.
|
|
uint8_t | pthre |
| Preemption-threshold [1..QF_MAX_ACTIVE] of this AO.
|
|
QACTIVE_THREAD_TYPE | thread |
| Port-dependent representation of the thread of the active object.
|
|
QACTIVE_OS_OBJ_TYPE | osObject |
| Port-dependent per-thread object.
|
|
QACTIVE_EQUEUE_TYPE | eQueue |
| Port-dependent event-queue type (often QEQueue)
|
|
uint8_t | prio_dis |
|
uint8_t | pthre_dis |
|
struct QAsmVtable const * | vptr |
| Virtual pointer inherited by all QAsm subclasses (see also Object Orientation)
|
|
union QAsmAttr | state |
| Current state (pointer to the current state-handler function)
|
|
union QAsmAttr | temp |
| Temporary storage for target/act-table etc.
|
|
"Ticker" Active Object class
- Details
- QTicker is a QActive subclass specialized to process QF system clock tick at a specified tick rate. Placing system clock tick processing in an active object allows you to remove the non-deterministic QTIMEEVT_TICK_X() processing from the interrupt level and move it into the thread-level, where you can prioritize it as low as you wish.
- Backward Traceability
-
- Usage
- The following example illustrates use of QTicker active objects.
- Attention
- The QTicker active objects must be started without any queue buffer and without any stack (see QActive_start() calls in the code below).
extern QActive *
const the_Ticker0;
extern QActive *
const the Ticker1;
void SysTick_Handler(void) {
. . .
. . .
}
void Timer0A_IRQHandler(void) {
. . .
. . .
}
main () {
. . .
1U,
0, 0, 0, 0, 0);
2U,
0, 0, 0, 0, 0);
. . .
}
#define QTICKER_TRIG(ticker_, sender_)
Asynchronously trigger the QTicker AO to perform tick processing.
Active object class (based on the QHsm implementation strategy)
void QActive_start(QActive *const me, QPrioSpec const prioSpec, QEvtPtr *const qSto, uint_fast16_t const qLen, void *const stkSto, uint_fast16_t const stkSize, void const *const par)
Starts execution of an active object and registers the object with the framework.
"Ticker" Active Object class
void QTicker_ctor(QTicker *const me, uint_fast8_t const tickRate)
Constructor of the QTicker Active Object class.
Definition at line 1043 of file qp.h.