Modificar el lenguaje de acción de un gráfico
Los gráficos de Stateflow® en los modelos de Simulink® tienen una propiedad de lenguaje de acción que define la sintaxis de las acciones de estado y transición. Un icono en la esquina inferior izquierda del área de diseño del gráfico indica el lenguaje de acción del gráfico.
MATLAB® como lenguaje de acción.
C como lenguaje de acción.
Convertir gráficos entre lenguajes de acción
Para realizar la conversión entre lenguajes de acción, cambie la propiedad de gráfico Action language. En el cuadro de diálogo de propiedades Chart, seleccione el lenguaje de acción nuevo. Si el gráfico contiene acciones, Stateflow informa sobre la opción de convertir los patrones de sintaxis.
Cambiar el lenguaje de acción predeterminado
MATLAB es la sintaxis del lenguaje de acción predeterminado de los gráficos nuevos de Stateflow. Para crear un gráfico que utilice C como lenguaje de acción, introduzca:
sfnew -CPara cambiar el lenguaje de acción predeterminado de los gráficos nuevos, utilice la función sfpref. Por ejemplo, para establecer C como lenguaje de acción de los gráficos nuevos, introduzca:
sfpref(ActionLanguage="C");Conversión de la sintaxis de C a MATLAB
Cuando cambia un gráfico con acciones existentes del lenguaje de acción de C al lenguaje de acción de MATLAB, Stateflow muestra una notificación en la parte superior del gráfico. Haga clic en el enlace de conversión de la notificación para actualizar los patrones de sintaxis admitidos.
Stateflow convierte estas construcciones de C a la sintaxis de MATLAB:
Indexación de arreglos:
A[0][1]se convierte enA(1,2)Operaciones de aumento:
a++se convierte ena = a+1Operaciones de asignación:
a += bse convierte ena = a+bOperación de resto:
a %% bse convierte enrem(a,b)Operaciones de desplazamiento de bits:
a >> bse convierte enbitshift(a,-b)Operaciones bit por bit:
a ^ bse convierte enbitxor(a,b)(cuando Enable C-bit operations está seleccionado)Comentarios:
//y/* */se convierten en%
Debe actualizar manualmente lo siguiente:
Conversiones de tipos explícitas con los operadores
casty type.Operaciones de puntero como
&y*.Operador de asignación especial
:=.Declaraciones de datos personalizados.
Acceso a variables del área de trabajo con el operador
ml.Funciones que no se admiten para la generación de código.
Notación hexadecimal y literales de precisión simple.
Constantes contextuales.