|  | 
| 
			 
			#1  
			
			
			
			
			
		 | |||
| 
 | |||
| 
				
				using i900 joystick in a taskFunction
			 
			
			Hi, What I'm trying to do is, using the buttons on the joystick to scale my virtual world. I'm using a task know, but it seems that the event doesn't get triggered when using "viz.SENSOR_UP_EVENT". If I use "viztask.waitSensorDown" then I don't know what to put in it as a button. I've tried the state things from the manual "joystickSensor.get()[7]" but it doesn't give me the actual pressed button wich I have to put in, right? Code: def scaleOnSensorEvent() :
	dataObject = viz.Data
	sensorData = joystickSensor.get()
	while True :
		yield viztask.waitEvent(viz.SENSOR_UP_EVENT, dataObject) 
#		yield viztask.waitSensorDown(joystickSensor, button??, dataObject)
		print "something"
if viz.get(viz.TRACKER):
	headSensor = viz.add('intersense.dls')
	viz.tracker()
	headSensor.reset()
	joystickSensor = viz.add('intersense.dls')
	viz.tracker()
	joystickSensor.reset()
viztask.schedule(scaleOnSensorEvent)Last edited by krimble; 06-04-2008 at 05:15 AM. | 
| 
			 
			#2  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			The intersense.dls plugin does not generate sensor up/down events.  You need to manually check the button state by examining the value at index 7 of the data array. The documentation for the intersense plugin has sample code showing how to check for the button state of the joystick.
		 | 
| 
			 
			#3  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			Thank you,  I've used a timer now, and it works. It would be handy though to be able to use a task with the IS-900 joystick (wand). The use of tasks makes it a whole lot easier, great concept! | 
| 
			 
			#4  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			You can create your own custom task conditions. For example, here are two conditions that wait for an IS900 button to be pressed or released: Code: class waitIS900Down( viztask.Condition ):
    def __init__( self, sensor, button ):
        self._sensor = sensor
        self._button = button
   
    def update( self ):
        return int(self._sensor.getData()[7]) & self._button
class waitIS900Up( viztask.Condition ):
    def __init__( self, sensor, button ):
        self._sensor = sensor
        self._button = button
   
    def update( self ):
        return (int(self._sensor.getData()[7]) & self._button) == 0Code: . . . yield waitIS900Down(isense,1) print 'Button 1 pressed' yield waitIS900Up(isense,1) print 'Button 1 released' . . . | 
|  | 
| 
 | 
 | 
|  Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| Joystick Navigation | Vinicius Lima | Vizard | 7 | 10-23-2007 10:42 AM | 
| Facetracking and Immersion Joystick | Vygreif | Vizard | 1 | 01-25-2006 10:56 AM | 
| problem with joystick data and input dialog box | baf1 | Vizard | 4 | 03-03-2005 08:00 AM | 
| Another Joystick Question | Plasma | Vizard | 3 | 02-03-2004 11:16 AM | 
| Basic Joystick Navigation Question | Plasma | Vizard | 2 | 01-29-2004 07:08 PM |