Gestionar colas para un servidor compartido de impresora
Este ejemplo muestra cómo compartir funciones para comunicarse entre un modelo de Simulink® y un gráfico de Stateflow®. Por ejemplo, puede hacer lo siguiente:
Utilizar un gráfico de Stateflow para llamar a una función de Simulink que defina en el modelo.
Utilizar un bloque Function Caller en el modelo de Simulink para llamar a una función que defina en el gráfico de Stateflow.
Este ejemplo modela tres equipos clientes que comparten una impresora en la red. Cada equipo envía trabajos de impresión a una cola común para su procesamiento. Cada equipo cliente invoca al servidor de impresora con una llamada al bloque de funciones addPrintJob
de Simulink. Para añadir el trabajo de impresión a la carga de trabajo, la función addPrintJob
llama a la función gráfica queuePrintJob
del gráfico de Stateflow. Para modelar el uso de tinta de impresora, el gráfico procesa el trabajo y llama al bloque de funciones printerInk
de Simulink.
Llamar a una función de Simulink desde Stateflow
La función printerInk
está definida en un bloque de funciones de Simulink en el nivel superior del modelo. La interfaz de la función printerInk(work)
define un argumento de entrada. La función de Simulink, printerInk, también interactúa con el modelo con líneas de señal a través del puerto de entrada ink
y del puerto de salida ink'
. El estado Busy
coincide con la firma de función para printerInk(work)
pasando un argumento de entrada.
Exportar funciones de Stateflow a Simulink
En los gráficos Queuing
y Processing Incoming Jobs
, las propiedades Export chart level functions y Treat exported functions as globally visible están seleccionadas. Estas propiedades permiten que la función addPrintJob
de Simulink llame a la función gráfica del gráfico, queuePrintJob
.
Consulte también
Simulink Function (Simulink)
Temas relacionados
- Export Stateflow Functions for Reuse
- Simulink Functions Overview (Simulink)
- Model Reference Basics (Simulink)