Contenu principal

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

Pour 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] devient A(1,2)

    Opérations d’incrémentation : a++ devient a = a+1

    Opérations d’affectation : a += b devient a = a+b

    Opération de reste : a %% b devient rem(a,b)

    Opérations de décalage de bits : a >> b devient bitshift(a,-b)

    Opérations bit à bit : a ^ b devient bitxor(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 cast et 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.

Voir aussi

Rubriques