В этом примере показано, как клиенты, в этом случае три компьютера, могут отправить задания в сервер, принтер, и получить состояние от того сервера. Этот пример подсвечивает, как Функции Simulink могут быть вызваны от различных подсистем и взаимодействовать и в Simulink® и в Stateflow®.
Обратите внимание на то, что, когда вы симулируете пример, Stateflow может сгенерировать код в текущей рабочей папке.
В этом примере компьютеры каждый генерирует случайным образом измеренные задания печати равномерно. Принтер взаимодействует с компьютерами через две Функции Simulink на холсте Simulink и одну Экспортируемую Графическую функцию в Stateflow.
1. Клиенты используют Функциональные блоки Вызывающей стороны, чтобы вызвать addPrintJob интерфейс принтера.
2. Взаимодействие клиент-сервер, смоделированное этим вызовом, может иметь отрицательное возвращаемое значение, если принтер исчерпал чернила.
Пример показывает как интерфейсу Simulink и Stateflow с помощью функций.
1. Реализация addPrintJob использует блок Function Caller, чтобы вызвать queuePrintJob, который является Stateflow Экспортируемая Графическая функция.
2. Функция queuePrintJob взаимодействует с другим содержимым в графике с помощью локального графика переменная 'работа'.
3. Реализация графика звонит printerInk, который является Функцией Simulink.
4. Задание функции printerInk использует ввод графических данных и выходные параметры, чтобы взаимодействовать с функцией addPrintJob.
Пример также показывает, как визуализировать и отладить Функции Simulink.
1. Можно включить линии визуализации, соединяющие функции и их соответствующие вызывающие стороны. В Редакторе Simulink, на вкладке Debug, под информационными Оверлейными программами, нажимают Function Connectors.
2. Блок Viewer сообщения показывает, где вызовы функций сгенерированы, и какие функции вызваны в разное время. Это помогает изучить поток вызовов относительно времени, и также анализировать аргументы, отправленные во время этих вызовов функций.