Skip to content

can a state Q_TRAN to SPUER? like Blinky_on back to Blinky_idle in fllowing code #21

@hehao9051

Description

@hehao9051

/........................................................................../
QState Blinky_idle(Blinky * const me, QEvt const * const e) {
QState status;
switch (e->sig) {
case Q_ENTRY_SIG: {
BSP_ledOff();
status = Q_HANDLED();
break;
}
case KEY_POWER_SIG: {
status = Q_TRAN(&Blinky_off);
break;
}
default: {
status = Q_SUPER(&QHsm_top);
break;
}
}
return status;
}
/........................................................................../
QState Blinky_off(Blinky * const me, QEvt const * const e) {
QState status;
switch (e->sig) {
case Q_ENTRY_SIG: {
BSP_ledOff();
status = Q_HANDLED();
break;
}
case KEY_POWER_SIG: {
status = Q_TRAN(&Blinky_idle);
break;
}
case TIMEOUT_SIG: {
status = Q_TRAN(&Blinky_on);
break;
}
default: {
status = Q_SUPER(&Blinky_idle);
break;
}
}
return status;
}
/........................................................................../
QState Blinky_on(Blinky * const me, QEvt const * const e) {
QState status;
switch (e->sig) {
case Q_ENTRY_SIG: {
BSP_ledOn();
status = Q_HANDLED();
break;
}
case KEY_POWER_SIG: {
status = Q_TRAN(&Blinky_idle);
break;
}
case TIMEOUT_SIG: {
status = Q_TRAN(&Blinky_off);
break;
}
default: {
status = Q_SUPER(&Blinky_idle);
break;
}
}
return status;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions