Using multiple Event Listener

Hello,
I've created a Simulink file which contains ~5 blocks with permanently changing data. Now, I'd like to create an event listener for each block.
I've generated the following code for each block's startfcn:
%The GUI handles are by default hidden, turn them on
set(0,'ShowHiddenHandles','on');
%Set up the arguments that will go into the block event callback listener
blk_SpO2 = 'Parameter_Final/SpO2';
event = 'PostOutputs';
listener = @Gruppeneinteilung;
%Create the listener
h = add_exec_event_listener(blk_SpO2, event, listener);
and
%The GUI handles are by default hidden, turn them on
set(0,'ShowHiddenHandles','on');
%Set up the arguments that will go into the block event callback listener
blk_BD = 'Parameter_Final/BD';
event = 'PostOutputs';
listener = @Gruppeneinteilung;
%Create the listener
h = add_exec_event_listener(blk_BD, event, listener);
...
My problem is, Simulink only creates a listener for one of the 5 blocks. If I delete that block another one will have a listener and so on. But I'm not able to execute all these listeners at the same time.
Is there anyone who can help me?
greetings, franzi

 Respuesta aceptada

Daniel Shub
Daniel Shub el 26 de Oct. de 2011

1 voto

I think the listeners you create with add_exec_event_listener are similar to the listeners you create with addlistener in MATLAB. I think you want the equvilent of the listeners you get with event.listener in MATLAB. The difference being that the listener h that you are creating gets deleted when you overwrite h, but adding your second listener. I think you need to make h an array
h(1) = add_exec_event_listener(blk_SpO2, event, listener);
h(2) = add_exec_event_listener(blk_BD, event, listener);

Más respuestas (3)

Franzi
Franzi el 27 de Oct. de 2011

0 votos

Hi!
thanks for the fast answer!
Unfortunately, it doesn't work.
I get the following error message (with or without using arrays):
"Warning: Error occurred while evaluating listener callback. ??? Undefined function or method 'Gruppeneinteilung' for input arguments of type 'Simulink.RunTimeBlock'."
Gruppeneinteilung is my Matlab-File in which I process the block's data.

1 comentario

Franzi
Franzi el 27 de Oct. de 2011
it seems the error message doesn't have anything to do with my problem. It also appears when everything's working correctly (using just one block).

Iniciar sesión para comentar.

Franzi
Franzi el 27 de Oct. de 2011

0 votos

tried it again and IT WORKS! :D
there is still only one listener visible in Simulink (antenna symbol) but my GUIDE- / Matlab- File works perfectly!
Thank you so much!
greetings,
franzi
Gheorghe Schreiber
Gheorghe Schreiber el 4 de Nov. de 2021

0 votos

Hello,
I have a problem which may be related to OP question, but may be slightly different as in the converse of OP.
I have one simulink model with one block containing ~48 changing signals, divided in 4 groups of 12.
I want to have 4 instances of MATLAB apps running simultaneously, each app monitoring 12 signals at a time.
Is this possible to have multiple listeners in one simulink model sending data to multiple MATLAB apps?
Thank you,
-Gheorghe S

Categorías

Etiquetas

Preguntada:

el 26 de Oct. de 2011

Respondida:

el 4 de Nov. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by