Contenu principal

send

Diffuser un message ou un événement

Description

send(message_name) envoie un message local ou un message de sortie.

exemple

send(event_name) envoie un évènement local ou un évènement de sortie.

exemple

send(local_event_name,state_name) diffuse un événement local vers state_name et à tout descendant de cet état dans la hiérarchie.

exemple

send(state_name.local_event_name) diffuse un événement local vers son état parent state_name et tout descendant de cet état dans la hiérarchie.

exemple

Exemples

développer tout

Envoyer un message local ou un message de sortie M avec une valeur de données de 3.

M.data = 3;
send(M);

Stateflow chart that uses the send operator in a state.

Envoyer un événement de sortie E.

send(E);

Stateflow chart that uses the send operator in a state.

Envoyer un événement local E_one vers l’état B et l'un de ses sous-états.

send(E_one,B);

Stateflow chart that uses a directed event broadcast to synchronize the substates of two parallel (AND) states.

Envoyer un événement local E_one vers son état parent B et l’un de ses sous-états.

send(B.E_one);

Stateflow chart that uses a directed event broadcast to synchronize the substates of two parallel (AND) states. The broadcast uses the qualified event name B.E_one.

Conseils

  • Si un diagramme envoie un message qui dépasse la capacité de la file d'attente de réception, un débordement de la file d'attente se produit. Le résultat du débordement de la file d'attente dépend du type de file d'attente de réception.

    • Lorsqu'un débordement se produit dans une file d'attente interne, le diagramme Stateflow® ignore le nouveau message. Vous pouvez contrôler le niveau de l'action de diagnostic en définissant la propriété Queue Overflow Diagnostic pour le message. Consultez Queue Overflow Diagnostic.

    • Lorsqu'un débordement se produit dans une file d'attente externe, le bloc Queue (Simulink) ignore le nouveau message ou écrase le message le plus ancien de la file d’attente, selon la configuration du bloc. Consultez Overwrite the oldest element if queue is full (Simulink). Un débordement dans une file d'attente externe entraîne toujours l’émission d’un avertissement.

  • Évitez d'utiliser des diffusions non orientées d'événements locaux. Les diffusions non orientées d'événements locaux peuvent entraîner un comportement récursif indésirable dans votre diagramme. Au lieu de cela, envoyez des événements locaux en utilisant des diffusions orientées. Pour plus d’informations, veuillez consulter Broadcast Local Events to Synchronize Parallel States.

  • Utilisez l’opérateur send pour envoyer des événements au Schedule Editor. Le Schedule Editor vous permet de planifier l’exécution de partitions apériodiques. Pour plus d’informations sur l’utilisation de l’opérateur send avec le Schedule Editor, consultez Events in Schedule Editor (Simulink).

Historique des versions

Introduit avant R2006a