Этот пример показывает модель, вызывающую функции через Simulink® и Stateflow®. slexPrinterExample модель имеет три компьютерных клиента, совместно использующие принтер. Каждый компьютер создает задания печати путем вызывания функции Simulink addPrintJob
.
В этом примере диаграмма Stateflow связывается с моделью:
Определение и экспорт графической функции, которая вызвана Simulink.
Вызывание функции Simulink, которая задана в Simulink.
open_system('slexPrinterExample');
Каждый компьютерный клиент вызывает сервер принтера с вызовом функции Simulink, addPrintJob
. Вызовы функции addPrintJob
графическая функция Stateflow queuePrintJob
, чтобы добавить задание печати в рабочую нагрузку. График обрабатывает работу и вызывает функцию Simulink printerInk
к образцовому использованию чернил принтера.
Функциональный printerInk
задан в Функциональном блоке Simulink в верхнем уровне модели. Функциональный интерфейс printerInk(work)
задает один входной параметр. Функция Simulink, printerInk, также взаимодействует с моделью с сигнальными линиями через импорт ink
и выходной порт ink'
. Busy
состояния совпадает с функциональной подписью для printerInk(work)
путем передачи одного входного параметра.
open_system('slexPrinterExample/Queueing and Processing Incoming Jobs')
В графике Queuing
и Processing Incoming Jobs
, выбраны свойства Export Chart Level Functions и Treat Exported Functions как Глобально Видимый. Эти свойства позволяют функции Simulink addPrintJob
, чтобы вызвать графическую функцию графика, queuePrintJob
.