|
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 an efficient active object specialized to process QF system clock tick at a specified tick rate [0..QF_MAX_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.
- Usage
The following example illustrates use of QTicker active objects:
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 QACTIVE_START(me_, prioSpec_, qSto_, qLen_, stkSto_, stkSize_, par_)
Start an Active Object.
#define QTICKER_TRIG(ticker_, sender_)
Asynchronously trigger the QTicker AO to perform tick processing.
Active object class (based on the QHsm implementation strategy)
"Ticker" Active Object class
Definition at line 1046 of file qp.h.