How can I trigger activity in a top level gui from a timer in a lower level object?

1 visualización (últimos 30 días)
I have an object that is polling status from a piece of equipment at regular intervals. It is doing this by starting a timer at object instantiation. I would like to trigger higher level application behavior off of certain types of status changes and I'm not sure how to get a trigger signal from the lower level timer object to the high level main gui object. Any ideas would be appreciated. :)
Pseudo-Detail:
1. GUI -> CommObj -> TimerObj -> Callback (embedded in CommObj.ConstructorMethod)
2. Callback toggles a bit property in CommObj instance.
3. ???
4. GUI detects change in CommObj property and does stuff! (a.k.a. PROFIT!!!)
Thanks in Advance :)

Respuestas (1)

Walter Roberson
Walter Roberson el 3 de Mayo de 2012
Unfortunately it is not really possible to prod an active routine to do something. You can change the value of a variable that the routine has access to, and you can have the routine test the value of that variable.
In some situations it makes sense to use add_listener(), and possibly notify() as well.
In some situations it make sense to use waitfor() to wait for a condition.
  2 comentarios
Sean
Sean el 3 de Mayo de 2012
Hello Walter,
This may be a stupid question, but I've never used listeners before... If I have an object being used by a standard/normal function (in an .m file), can a callback in the function be setup as a listener for events inside the object? (e.g. if event happens in objectA, disable and grey out controlX on the GUI)
Thanks
Walter Roberson
Walter Roberson el 3 de Mayo de 2012
To cross-check, are you referring to "object" in the object-oriented programming sense? And in particular, to classes defined using the newer classdef mechanism?
If so then unfortunately that is a topic I have not had an opportunity to investigate.

Iniciar sesión para comentar.

Categorías

Más información sobre Construct and Work with Object Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by