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