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 trabajo del gráfico indica el lenguaje de acción del gráfico.
MATLAB® como lenguaje de acción.
C como lenguaje de acción.
Puede cambiar el lenguaje de acción de un gráfico en el cuadro Action Language del cuadro de diálogo de propiedades del gráfico. Para obtener más información, consulte Diferencias entre C y MATLAB como sintaxis de lenguaje de acción.
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");
Corrección automática cuando se usa MATLAB como lenguaje de acción
Los gráficos de Stateflow que utilizan MATLAB como lenguaje de acción corrigen automáticamente los constructos de C comunes a la sintaxis de MATLAB:
Operaciones de aumento y disminución como
a++
ya--
. Por ejemplo,a++
se cambia aa = a+1
.Operaciones de asignación como
a += b
,a –= b
,a *= b
ya /= b
. Por ejemplo,a += b
se cambia aa = a+b
.Operaciones de evaluación como
a != b
y!a
. Por ejemplo,a != b
se cambia aa ~= b
.Los marcadores de comentarios
//
y/* */
se cambian a%
.
Para desactivar esta preferencia, utilice la función sfpref
:
sfpref(EnableLabelAutoCorrectionForMAL=false);
Conversión de la sintaxis de C a MATLAB
En el caso de los gráficos no vacíos, después de cambiar la propiedad del lenguaje de acción de C a MATLAB, aparece una notificación en la parte superior del gráfico. La notificación ofrece la opción de convertir parte de la sintaxis de C a la sintaxis de MATLAB. En la notificación, haga clic en el enlace para que Stateflow convierta la sintaxis en el gráfico. Los constructos de la sintaxis de C que se convierten incluyen los siguientes:
Indexación de base cero.
Operaciones de aumento y disminución como
a++
ya--
. Por ejemplo,a++
se cambia aa = a+1
.Operaciones de asignación como
a += b
,a –= b
,a *= b
ya /= b
. Por ejemplo,a += b
se cambia aa = a+b
.Operaciones binarias como
a %% b
,a >> b
ya << b
. Por ejemplo,a %% b
se cambia arem(a,b)
.Operaciones bit por bit como
a ^ b
,a & b
ya | b
. Por ejemplo, si se selecciona la propiedad del gráfico Enable C-bit operations,a ^ b
se cambia abitxor(a,b)
.Marcadores de comentarios de estilo C. Por ejemplo,
//
y/* */
se cambian a%
.
Si el gráfico contiene constructos de C que no pueden convertirse a MATLAB, Stateflow muestra un mensaje en un cuadro de diálogo. Haga clic en el enlace de advertencias para mostrar las advertencias en Diagnostic Viewer. Elija si desea continuar con la conversión de la sintaxis admitida o no. Los constructos de C no convertidos a MATLAB incluyen los siguientes:
Conversiones de tipos explícitas con
cast
ytype
Operadores como
&
,*
y:=
Datos personalizados
Acceso a variables del área de trabajo con el operador
ml
Funciones no admitidas en la generación de código
Notación hexadecimal y de precisión simple
Constantes contextuales