|  | 
| 
			 
			#1  
			
			
			
			
			
		 | |||
| 
 | |||
| 
				
				Simplest script not working
			 
			
			I'm a bit dumbfounded by a tiny script not working the way I would expect: This simple script should: 1. Turn the screen white on a 'w' press. 2. Turn the screen black on a 'b' press. 3. Turn the screen white, wait half a seconds and turn it black on a 's' press. For some reason it will not turn it white on the 's' , though it does call the appropriate functions. I have no more ideas on what the issue could be. I hope someone here knows. I have commented out all code irrelevant to the problem and it persists. Code: #import sys
import viz
#import vizparallel
viz.go()
def whiteScreen():
	print('White')
	viz.clearcolor(256, 256, 256)
vizact.onkeydown('w', whiteScreen)
def blackScreen():
	print('Black')
	viz.clearcolor(0, 0, 0)
vizact.onkeydown('b', blackScreen)
def sendSignal():
	whiteScreen()
	sendParallel()
	blackScreen()
vizact.onkeydown('s', sendSignal)
def sendParallel(signalCode = 24, delay = 0.5, port = 0x0378):
#	print('Sending code ' + str(signalCode) + ' for ' + str(delay) + ' seconds on port ' + str(port) + ' at tick ' + str(viz.tick()))
#	vizparallel.write( signalCode, port )
	sleep(delay)
#	print('Clearing with a zero at tick ' + str(viz.tick()))
#	vizparallel.write( 0, port )
def sleep(delay):
	start = viz.tick()
	while viz.tick() - start < delay: pass
	return viz.tick() - start | 
| 
			 
			#2  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			Try using a task function to control the program flow. In the following code the screen will turn white for 0.5 seconds after the 's' key is pressed: Code: import viz
import viztask
viz.go()
def whiteScreen():
	print('White')
	viz.clearcolor(256, 256, 256)
vizact.onkeydown('w', whiteScreen)
def blackScreen():
	print('Black')
	viz.clearcolor(0, 0, 0)
vizact.onkeydown('b', blackScreen)
def signalTask():
	while True:
		yield viztask.waitKeyDown('s')
		whiteScreen()
		yield viztask.waitTime(0.5)
		blackScreen()
viztask.schedule(signalTask()) | 
| 
			 
			#3  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			Thanks Jeff, I figured it out yesterday and made a solution similar to yours (though your method looks neater than mine so I will use it instead). So from what I understand, though the clearcolor function was executing Vizard was only noting what color to change to. The color would actually change only once control flow was returned to Vizard - which is why it would appear as if only the final color was used. Thanks for your help! | 
|  | 
| Thread Tools | |
| Display Modes | Rate This Thread | 
| 
 | 
 | 
|  Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| starting Vizard from a Python script | hotspur1 | Vizard | 12 | 06-12-2019 12:03 PM | 
| Current working directory in Vizard Executable | kevin | Vizard | 3 | 06-16-2011 11:31 AM | 
| script file available - but missing | spdegabrielle | Vizard | 1 | 05-06-2009 10:04 AM | 
| Script loading problem | JRichizzle | Vizard | 1 | 03-12-2004 10:03 AM | 
| Working w/ multiple scripts | FlyingWren | Vizard | 3 | 10-16-2003 01:05 PM |