exponenta event banner

Моделирование интерфейса приема сообщений, работающего при доступности сообщений

В этом примере показано, как синхронизировать выполнение с доступностью данных в системах на основе сообщений. Мы покажем, как моделировать это поведение с помощью событий и действий. Этот пример основан на другом примере, «Установление интерфейсов передачи и получения сообщений между компонентами программного обеспечения», в котором два компонента программного обеспечения обмениваются сообщениями.

Как и в предыдущем примере, процесс генерации кода должен применяться к SendComponent и ReceiveComponent. Хранилище сообщений моделирует промежуточное программное обеспечение и события уведомления данных, предоставляемые промежуточным программным обеспечением.

Ниже приведена модель композиции с SendComponent и ReceiveComponent, созданными с помощью двух блоков Model. Эти два блока модели соединены через блок очереди со строками сообщений.

Когда сообщение поступает в блок Queue, его поступление передается в ReceiveComponent с помощью действия события Queue entry. Это активирует блок Simulink Function внутри ReceiveComponent, чтобы принять новое сообщение для обработки.

Для этого в блоке «Очередь» на вкладке «Действие события» в поле «Запись» блок вызывает функцию Simulink. onMessageAvailable(). Дополнительные сведения о действиях события см. в разделе Языки действий события и создание случайных чисел (SimEvents).

Когда активирован блок Simulink Function, он принимает сообщение и преобразует его в сигнал.

В результате сообщения, отправленные от запуска SendComponent в пределах ReceiveComponent. Для наблюдения за таким поведением используйте блок «Просмотр последовательностей».

Например, соблюдайте время моделирования 0:

  1. Стрелка из блока Send в блок Queue показывает, что сообщение отправляется со значением данных 0.

  2. Стрелка от блока Queue к блоку Simulink Function указывает на вызов onMessageAvailable() функция.

  3. Стрелка из блока «Очередь» показывает, что сообщение со значением данных 0 принимается блоком приема в рамках этого вызова функции.

  4. Горизонтальная пунктирная стрелка из блока Simulink Function в блок Queue указывает на возврат функции onMessageAvailable().

Дополнительные сведения о блоке «Средство просмотра последовательностей» см. в разделе Использование средства просмотра последовательностей для визуализации сообщений, событий и сущностей.

См. также

| | |

Связанные темы