Смоделируйте сообщение, Получают Интерфейс, который Работает на Доступности сообщения

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

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

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

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

Чтобы достигнуть этого поведения, в блоке Queue, в конечном счете вкладка действия, в поле Entry, блок вызывает Функцию Simulink onMessageAvailable(). Смотрите Языки Действия События и Генерацию случайных чисел (SimEvents) для получения дополнительной информации о Действиях События.

Когда Функциональный блок Simulink активируется, он принимает сообщение и преобразует его в сигнал.

В результате сообщения, отправленные от SendComponent, инициировали выполнение в ReceiveComponent. Чтобы наблюдать это поведение, используйте блок Sequence Viewer.

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

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

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

  3. Стрела из блока Queue иллюстрирует что сообщение со значением данных 0 получен блоком Receive в рамках этого вызова функции.

  4. Горизонталь, подчеркнутая штриховой линией стрелка от Функционального блока Simulink до блока Queue указывает на возврат функционального onMessageAvailable().

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

Смотрите также

| | |

Похожие темы