The Interaction Design Viewpoint provides an analysis of interactions within QP/C++ Framework elements. This design viewpoint frames the following concerns:
SDS_QA_START : QA Application startup sequence |
---|
Model Kinds
[0] int main(int argc, char *argv[]) {
[1] QP::QF::init(); // initialize the QF Active Object framework
[2] BSP::init(); // initialize the Board Support Package
[3] // initialize publish-subscribe...
static QP::QSubscrList subscrSto[APP::MAX_PUB_SIG];
QP::QActive::psInit(subscrSto, Q_DIM(subscrSto));
[4] // initialize event pools...
static QF_MPOOL_EL(APP::SmallEvt) smlPoolSto[10];
static QF_MPOOL_EL(MediumEvt) medPoolSto[5];
. . .
[5] // start Active Objects...
APP::AO_activeA->start(
2U, // @QPX priority of the AO
aoA_QueueSto, // event queue storage
Q_DIM(aoA_QueueSto), // queue length [events]
nullptr, 0U, // no stack storage
nullptr); // no initialization param
static QEvt const *aoB_QueueSto[3];
APP::AO_activeB->start(
5U, // @QPX priority of the AO
aoB_QueueSto, // event queue storage
Q_DIM(aoB_QueueSto), // queue length [events]
nullptr, 0U, // no stack storage
nullptr); // no initialization param
. . .
[6] // transfer control to QF framework to run the Active Objects
return QP::QF::run();
}
static void psInit(QSubscrList *const subscrSto, enum_t const maxSignal) noexcept Definition qf_ps.cpp:75 void poolInit(void *const poolSto, std::uint_fast32_t const poolSize, std::uint_fast16_t const evtSize) noexcept Definition qf_dyn.cpp:64 |
Description
|
Backward Traceability
|
Forward Traceability |
SDS_QP_POST : QP event posting sequence |
---|
Model Kinds |
Scenario: Event posting from ISR to Active Object
|
Scenario: Event posting from low-priority to high-priority Active Object
|
Backward Traceability
|
Forward Traceability |
SDS_QP_PUB : QP event publishing sequence |
---|
Model Kinds |
Scenario: Event publishing with scheduler locking
|
Scenario: Event publishing WITHOUT scheduler locking
|
Backward Traceability
|
Forward Traceability |