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.
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 objetoSimulink.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 objetoStateflow.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
yStateflow.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
yStateflow.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:
Editor: los objetos
Stateflow.Editor
proporcionan acceso a los aspectos gráficos de los gráficos y tablas de transición de estado. Para cada objetoStateflow.Chart
oStateflow.StateTransitionTableChart
, existe un objetoStateflow.Editor
que puede utilizar para controlar la posición, el tamaño y el nivel de ampliación del editor de Stateflow. Para obtener más información, consulte Zoom in on Stateflow Chart, Zoom out on Stateflow Chart y Set Zoom Factor.Portapapeles: el objeto
Stateflow.Clipboard
tiene dos funciones,copy
ypasteTo
, que utilizan el portapapeles como zona de paso para implementar la función de copiar y pegar en la API de Stateflow. Para obtener más información, consulte Copy and Paste by Grouping y Copy and Paste Array of Objects.
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:
Cree un modelo de Simulink con un gráfico de Stateflow vacío llamando a la función
sfnew
.sfnew
Utilice la función
sfroot
para acceder al objetoSimulink.Root
.rt = sfroot;
Llame a la función
find
para acceder al objetoStateflow.Chart
que se corresponde con el gráfico del modelo.ch = find(rt,"-isa","Stateflow.Chart");
Llame a la función
Stateflow.State
para añadir un estado al gráfico. Esta función devuelve un objetoStateflow.State
que se corresponde con un nuevo estado.st = Stateflow.State(ch);
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];
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);
Consulte también
Funciones
Objetos
Stateflow.Box
|Stateflow.Chart
|Stateflow.Clipboard
|Stateflow.Editor
|Stateflow.EMChart
|Stateflow.Function
|Stateflow.Machine
|Stateflow.State
|Stateflow.StateTransitionTableChart
|Stateflow.Transition
|Stateflow.TruthTableChart