#1
|
|||
|
|||
Breaking while loops with timers
Hello Vizard-Team!
I have a small problem: I want to break a while loop either with a button press (works fine) or after a certain amount of time has expired. So far, I have not been able to manage it with timer functions. Is there another way? The code below shows my current status. The timer function is called correctly and expires correctly after 10s, but the global testTrig variable is not parsed and the while loop does not break. Any thoughts? Thank you! Code:
def test(): global testTrig for k in range(len(presentSeq)): testTrig = 0 while testTrig is 0: testTrig = viz.callback(viz.TIMER_EVENT,testExpired) viz.starttimer(0,10) # start timer with 10s yield viztask.waitAny([waitJoyButton]) # wait for joystick button testTrig = 1 # do some more before next iteration... def testExpired(num): global testTrig testTrig = 1 print 'Expired!' return testTrig |
#2
|
|||
|
|||
Are you doing anything in your while loop other than waiting for time to pass or the waitJoyButton condition? If not, it seems you could replace the while loop with something like:
Code:
yield viztask.waitAny( [ waitJoyButton, viztask.waitTime(10) ] ) |
#3
|
|||
|
|||
Works brilliantly and much more elegant than creating a time for it...
Thanks! |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Control of timers | vizmaster | Vizard | 6 | 08-22-2008 09:36 AM |
killing vizact timers | cade_mccall | Vizard | 1 | 04-18-2007 09:20 AM |
timers and director function | Jerry | Vizard | 1 | 06-22-2006 09:47 AM |
multiple timers | paulpars | Vizard | 4 | 06-02-2006 10:12 AM |