WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 06-04-2008, 05:12 AM
krimble krimble is offline
Member
 
Join Date: Nov 2006
Location: Nijmegen
Posts: 63
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)
thanks for your help

Last edited by krimble; 06-04-2008 at 05:15 AM.
Reply With Quote
  #2  
Old 06-04-2008, 10:24 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
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.
Reply With Quote
  #3  
Old 06-06-2008, 01:52 AM
krimble krimble is offline
Member
 
Join Date: Nov 2006
Location: Nijmegen
Posts: 63
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!
Reply With Quote
  #4  
Old 06-10-2008, 10:20 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
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) == 0
Here is code that shows how to use it:
Code:
.
.
.
yield waitIS900Down(isense,1)
print 'Button 1 pressed'
yield waitIS900Up(isense,1)
print 'Button 1 released'
.
.
.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

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


All times are GMT -7. The time now is 03:51 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC