Changer le langage d’action d’un diagramme
Les diagrammes Stateflow® des modèles Simulink® possèdent une propriété de langage d’action qui définit la syntaxe des actions d’état et de transition. Une icône dans le coin inférieur gauche du canevas du diagramme indique le langage d’action de ce dernier.
MATLAB® comme langage d’action.
C comme langage d’action.
Convertir les diagrammes d’un langage d’action à un autre
Pour convertir un diagramme d’un langage d’action à un autre, modifiez la propriété Action language du diagramme. Dans la boîte de dialogue des propriétés du diagramme, sélectionnez le nouveau langage d’action. Si le diagramme contient des actions, Stateflow vous informe de la possibilité de convertir les schémas syntaxiques.
Changer le langage d’action par défaut
MATLAB est le langage d’action par défaut des nouveaux diagrammes Stateflow. Pour créer un diagramme utilisant le C comme langage d’action, saisissez :
sfnew -CPour changer le langage d’action par défaut des nouveaux diagrammes, utilisez la fonction sfpref. Par exemple, pour définir le C comme langage d’action des nouveaux diagrammes, saisissez :
sfpref(ActionLanguage="C");Conversion de la syntaxe C vers MATLAB
Lorsque vous changez le langage d’action d’un diagramme contenant des actions existantes du C vers MATLAB, Stateflow affiche une notification en haut du diagramme. Cliquez sur le lien de conversion dans la notification pour mettre à jour les schémas syntaxiques supportés.
Stateflow convertit les structures en C suivantes vers la syntaxe MATLAB :
Indexation de tableau :
A[0][1]devientA(1,2)Opérations d’incrémentation :
a++devienta = a+1Opérations d’affectation :
a += bdevienta = a+bOpération de reste :
a %% bdevientrem(a,b)Opérations de décalage de bits :
a >> bdevientbitshift(a,-b)Opérations bit à bit :
a ^ bdevientbitxor(a,b)(quand l’option « Enable C-bit operations » est sélectionnée)Commentaires :
//et/* */deviennent%
Vous devez mettre à jour les éléments suivants manuellement :
Conversions de type explicites avec les opérateurs
castet type.Opérateurs de pointeur tels que
&et*.Opérateur d’affectation spécial
:=.Déclarations de données personnalisées.
Accès aux variables de l’espace de travail avec l’opérateur
ml.Fonctions non supportées pour la génération de code.
Notation hexadécimale et littéraux simple précision.
Constantes dépendantes du contexte.