La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Gérer la file d’attente d’un serveur d’impression partagé
Cet exemple montre comment partager des fonctions pour assurer la communication entre un modèle Simulink® et un diagramme Stateflow®. Par exemple, vous pouvez :
Utiliser un diagramme Stateflow pour appeler une fonction Simulink définie dans votre modèle.
Utiliser un bloc Function Caller dans votre modèle Simulink pour appeler une fonction définie dans votre diagramme Stateflow.
Cet exemple modélise trois ordinateurs clients qui partagent une imprimante réseau. Chaque ordinateur envoie des jobs d’impression à une file d’attente commune pour traitement. Chaque ordinateur client invoque le serveur d’impression via un appel au bloc Simulink Function addPrintJob. Pour ajouter le job d’impression à la charge de travail, la fonction addPrintJob appelle la fonction graphique queuePrintJob dans le diagramme Stateflow. Pour modéliser l’utilisation de l’encre de l’imprimante, le diagramme traite le travail et appelle le bloc Simulink Function printerInk.

Appeler une fonction Simulink depuis Stateflow
La fonction printerInk est définie dans un bloc Simulink Function au plus haut niveau du modèle. L’interface de la fonction printerInk(work) définit un seul argument en entrée. La fonction Simulink printerInk interagit également avec le modèle avec des lignes de signaux passant par le port d’entrée ink et le port de sortie ink'. L’état Busy respecte la signature de fonction de printerInk(work) en passant un seul argument en entrée.

Exporter des fonctions Stateflow vers Simulink
Dans le diagramme Queuing and Processing Incoming Jobs, les propriétés Export chart level functions et Treat exported functions as globally visible sont sélectionnées. Ces propriétés permettent à la fonction Simulink addPrintJob d’appeler la fonction graphique queuePrintJob du diagramme.
Voir aussi
Simulink Function (Simulink)