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

1 view (last 30 days)
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 :)

Answers (1)

Walter Roberson
Walter Roberson on 3 May 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 Comments
Walter Roberson
Walter Roberson on 3 May 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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!