Main Content

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.

Flow chart that shows the steps for exiting a state.

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.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

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:

  1. StateA no es un superestado de StateB.

  2. Ejecute las acciones de salida de StateA y marque StateA como inactivo. Ahora, z = 1.

  3. StateA no tiene un estado principal.

  4. 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.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

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:

  1. StateA2 no es un superestado del estado de destino (StateB1).

  2. Ejecute las acciones exit para StateA2 y marque StateA2 como inactivo.

  3. StateA2 no tiene un estado principal, StateA.

  4. StateA no es un superestado del estado de destino (StateB1).

  5. Ejecute las acciones exit para StateA y marque StateA como inactivo.

  6. 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.

Temas relacionados