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