Main Content

Visión general de la API de Stateflow

La interfaz de programación de aplicaciones (API) de Stateflow® permite crear o modificar gráficos de Stateflow desde la ventana de comandos de MATLAB®. Si coloca comandos de API de Stateflow en una función o script de MATLAB, puede:

  • Automatizar las operaciones de modificación de los gráficos ejecutando varios pasos de edición en un solo comando.

  • Eliminar los pasos repetitivos de creación de gráficos produciendo un gráfico de Stateflow "base" que puede reutilizar como plantilla para sus aplicaciones.

  • Generar un informe especializado del modelo.

La API de Stateflow consta de objetos que representan los objetos gráficos y no gráficos de un gráfico de Stateflow. Por ejemplo, los objetos de API Stateflow.State y Stateflow.Transition representan estados y transiciones en un gráfico de Stateflow. Modificar las propiedades de un objeto de API o llamar a una de sus funciones de objeto afecta al objeto correspondiente del gráfico de Stateflow. Utilizar el editor de Stateflow para realizar una operación en un objeto del gráfico afecta al objeto API correspondiente.

Nota

No puede deshacer ninguna operación en el editor de Stateflow que realice utilizando la API de Stateflow. Si realiza una operación de edición a través de la API, los botones Undo y Redo de la barra de acceso rápido se deshabilitan.

Jerarquía de los objetos de la API de Stateflow

Los objetos de la API de Stateflow se organizan en una jerarquía de contención. Por ejemplo, si el estado A contiene el estado B en un gráfico de Stateflow, el objeto de API del estado A contiene el objeto de API del estado B. La jerarquía de la API de Stateflow sigue las mismas reglas de contención que la jerarquía del objeto de Stateflow. Por ejemplo, los gráficos pueden contener estados, pero los estados no pueden contener gráficos. Para obtener más información, consulte Overview of Stateflow Objects.

Este diagrama muestra la jerarquía de los objetos de la API de Stateflow.

Diagram showing the four levels of the hierarchy of API objects.

La jerarquía consta de cuatro niveles de contención:

  • Raíz: el objeto Simulink.Root es el objeto principal de la API de Stateflow. Es un marcador de posición en la parte superior de la jerarquía de la API de Stateflow que diferencia los objetos de Stateflow de otros objetos del modelo de Simulink®. El objeto Simulink.Root se crea automáticamente cuando se añade un gráfico de Stateflow, un bloque State Transition Table, un bloque Truth Table o un bloque MATLAB Function a un modelo de Simulink, o cuando carga un modelo que contiene uno de estos bloques.

  • Máquina: desde la perspectiva de Stateflow, los objetos Stateflow.Machine son equivalentes a los modelos de Simulink. Un objeto Stateflow.Machine contiene objetos que representan los gráficos de Stateflow, bloques State Transition Table, bloques Truth Table y bloques MATLAB Function en un modelo.

  • Gráfico: los objetos Stateflow.Chart, Stateflow.StateTransitionTableChart, Stateflow.TruthTableChart y Stateflow.EMChart representan gráficos de Stateflow, bloques State Transition Table, bloques Truth Table y bloques MATLAB Function, respectivamente. Los objetos de este nivel de la jerarquía pueden contener objetos que representan estados, funciones, cuadros, datos, eventos, mensajes, transiciones, intersecciones, puertos de entrada y salida, y anotaciones.

  • Estados, funciones y cuadros: en este nivel de la jerarquía se incluyen los objetos Stateflow.State, Stateflow.Function y Stateflow.Box que representan estados, funciones y cuadros, respectivamente. Estos objetos pueden contener otros objetos que representan estados, funciones, cuadros, datos, eventos, mensajes, transiciones, intersecciones, puertos de entrada y salida, y anotaciones. Los niveles de anidado pueden continuar indefinidamente.

El diagrama de la jerarquía muestra dos tipos de objetos que existen fuera de la jerarquía de contención:

Acceso a los objetos de la API de Stateflow

Para utilizar la API de Stateflow comience accediendo al objeto Simulink.Root, que es el objeto principal de todos los objetos de la API de Stateflow. Utilice el objeto Simulink.Root para acceder a los demás objetos de las API del modelo. Por ejemplo:

  1. Cree un modelo de Simulink con un gráfico de Stateflow vacío llamando a la función sfnew.

    sfnew

  2. Utilice la función sfroot para acceder al objeto Simulink.Root.

    rt = sfroot;

  3. Llame a la función find para acceder al objeto Stateflow.Chart que se corresponde con el gráfico del modelo.

    ch = find(rt,"-isa","Stateflow.Chart");

  4. Llame a la función Stateflow.State para añadir un estado al gráfico. Esta función devuelve un objeto Stateflow.State que se corresponde con un nuevo estado.

    st = Stateflow.State(ch);

  5. Muestre el nuevo estado en el editor de Stateflow.

    view(st)

Para obtener más información, consulte Acceder a objetos del gráfico de Stateflow y Crear gráficos utilizando la API de Stateflow.

Modificar las propiedades de los objetos de la API

Los objetos de la API tienen propiedades que corresponden a los valores que establece en el editor de Stateflow. Por ejemplo, para utilizar el editor para cambiar la posición de un estado, haga clic en el estado y arrástrelo. Con la API de Stateflow se cambia la posición de un estado modificando la propiedad Position del objeto Stateflow.State correspondiente:

st.Position = [10 20 100 80];
Para obtener más información, consulte Modify Properties and Call Functions of Stateflow Objects.

Llamar a las funciones de objeto de la API

Los objetos de la API tienen funciones que corresponden a las acciones en el editor de Stateflow. Por ejemplo, para utilizar el editor para abrir el cuadro de diálogo Properties de una transición, haga clic con el botón secundario en la transición y seleccione Properties. Con la API de Stateflow, puede abrir el cuadro de diálogo llamando a la función dialog del objeto Stateflow.Transition correspondiente:

dialog(tr);
Para obtener más información, consulte Modify Properties and Call Functions of Stateflow Objects.

Consulte también

Funciones

Objetos

Temas relacionados