Generated Source Files marked as "external" duplicates the QP version check
Real-Time Event Frameworks based on active objects & state machines
Brought to you by:
quantum-leaps
Steps to recreate error:
Note that there should be only one check. There is a check every time you re-generate the source file from QM. The code block below shows the result of re-generating the source file two more times.
// Check for the minimum required QP version
#if (QP_VERSION < 630U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
#error qpcpp version 6.3.0 or higher required
#endif
// Check for the minimum required QP version
#if (QP_VERSION < 630U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
#error qpcpp version 6.3.0 or higher required
#endif
// Check for the minimum required QP version
#if (QP_VERSION < 630U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
#error qpcpp version 6.3.0 or higher required
#endif
//$define${AOs::MyAO} ########################################################
//${AOs::MyAO} ...............................................................
//${AOs::MyAO::MyAO} .........................................................
MyAO::MyAO()
: QActive(Q_STATE_CAST(&MyAO::initial))
{
// body
}
//${AOs::MyAO::SM} ...........................................................
QP::QState MyAO::initial(MyAO * const me, QP::QEvt const * const e) {
//${AOs::MyAO::SM::initial}
return Q_TRAN(&state1);
}
//${AOs::MyAO::SM::state1} ...................................................
QP::QState MyAO::state1(MyAO * const me, QP::QEvt const * const e) {
QP::QState status_;
switch (e->sig) {
default: {
status_ = Q_SUPER(&top);
break;
}
}
return status_;
}
//$enddef${AOs::MyAO} ########################################################
// define other elements...
Anonymous
Thanks for reporting.
The version-check must be generated within a protected section, which is first deleted and re-generated.
This bug has been accepted into the next QM release.
--MMS
Fixed in QM 4.5.0.
--MMS