Contenido principal

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 -C

Para 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 en A(1,2)

    Operaciones de aumento: a++ se convierte en a = a+1

    Operaciones de asignación: a += b se convierte en a = a+b

    Operación de resto: a %% b se convierte en rem(a,b)

    Operaciones de desplazamiento de bits: a >> b se convierte en bitshift(a,-b)

    Operaciones bit por bit: a ^ b se convierte en bitxor(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 cast y 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.

Consulte también

Temas