Salir de un estado
Cuando hay una transición de salida de estado válida, el estado se marca para salir. Un estado se marca para salir de una de estas maneras:
La transición saliente se origina en el límite del estado.
La transición saliente cruza el límite del estado.
El estado de destino es un estado paralelo secundario de un estado activado.
Flujo de trabajo para salir de un estado
Este diagrama de flujo muestra la progresión de los eventos en Stateflow® para salir de un estado. En este diagrama de flujo, el estado actual se refiere al estado en el que se desarrolla una decisión o un proceso.
Acciones de salida
Las acciones Exit
de un estado se ejecutan cuando está activo y existe una transición válida desde él. Un estado ejecuta sus acciones exit
antes de volverse inactivo.
Las acciones de salida están precedidas por el prefijo exit
o ex
, seguido de dos puntos obligatorios (:
) y luego de una o varias acciones. Separe las distintas acciones con un retorno de carro, un punto y coma (;
) o una coma (,
).
Ejemplo de salida de un estado
En este ejemplo, el gráfico de Stateflow se inicializa y las acciones entry
se ejecutan para StateA
y StateA1
. En este gráfico, las acciones during
han ocurrido dos veces. Se produce una unidad de tiempo nueva y después el gráfico se activa.
Si sigue Flujo de trabajo de ejecución de gráficos de Stateflow y Workflow for Evaluating Transitions, se marca la entrada de StateB
. StateA
es el origen de la transición. En esta unidad de tiempo, x = 5
, y = 2
y z = 0
.
Si sigue el diagrama de flujo de las acciones de salida del estado hasta que el gráfico se desactive, los pasos de ejecución de este gráfico están en este orden:
StateA
no es un superestado deStateB
.Ejecute las acciones de salida de
StateA
y marqueStateA
como inactivo. Ahora,z = 1
.StateA
no tiene un estado principal.Vaya a Acciones de entrada.
Estos pasos completan el flujo de trabajo de exit
de StateA
. Sin embargo, el gráfico todavía no está desactivado.
Ejecute Flujo de trabajo para acceder a un gráfico o un estado para que StateB
complete la unidad de tiempo.
Salir de un estado mediante supertransiciones
Una supertransición es una transición entre diferentes niveles en un gráfico. Una supertransición puede darse entre un estado en un gráfico de nivel superior y un estado en uno de sus subestados, o entre estados que residen en diferentes subestados. Puede crear supertransiciones que abarquen una cantidad ilimitada de niveles en su gráfico.
Cuando se sale de un estado a través de una supertransición, después de ejecutar las acciones de salida del origen de la transición, sus superestados se marcan como inactivos y se ejecutan las acciones de salida. En este ejemplo, StateA2
se marca para exit
y StateB1
se marca para entry
. En este momento, x = 5
, y = 5
y z = 0
.
Si sigue Flujo de trabajo para acceder a un gráfico o un estado hasta que el gráfico se desactive, los pasos de ejecución para salir del estado StateA2
son, en este orden:
StateA2
no es un superestado del estado de destino (StateB1
).Ejecute las acciones
exit
paraStateA2
y marqueStateA2
como inactivo.StateA2
no tiene un estado principal,StateA
.StateA
no es un superestado del estado de destino (StateB1
).Ejecute las acciones
exit
paraStateA
y marqueStateA
como inactivo.StateA
no tiene un estado principal.
Estas acciones completan el flujo de trabajo de exit
de StateA2
y StateA
. Sin embargo, el gráfico todavía no está desactivado.
Ejecute Flujo de trabajo para acceder a un gráfico o un estado para que StateB
y StateB1
completen la unidad de tiempo.