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