![]()  | 
	
| 
		 
			 
			#1  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
			
			 
			
			I am using your example in the Joystick basics to connect to an XBox controller through the new directInput module. 
		
		
		
		
		
		
		
		
	
	When I call addJoystick(), I get an JoystickSensor, which does not let me call the <xbox>.getControllerID() method. Do I typecast this to some type? Do I need to use a different method to get access to the actual Xbox methods? There is nothing in the documentation, so could you please add it in the future? I already printed out the information on the device and it returns true for the isXboxController. Also, could you please consider changing <xbox>.getControllerID to <xbox>getControllerId to follow capitalization convention better? Thanks, George  | 
| 
		 
			 
			#2  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Also, the button codes appear to be wrong. 
		
		
		
		
		
		
		
		
	
	I get different codes from the sensor down than what the documentation states: dinput.XBOX_BUTTON_START reads as a 4, while the left shoulder button reads as a 4 and the start button reads as a 7.  | 
| 
		 
			 
			#3  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Yeah, the documentation is not very clear. You actually need to use the <dinput>.getXboxControllerList() to get a list of Xbox controller objects that provide the additional methods. They are different than the standard joystick objects created through <dinput>.addJoystick(). 
		
		
		
		
		
		
		
		
	
	Here is a sample script that gets all the detected Xbox controllers and displays a config window for them: Code: 
	import viz
import vizconfig
viz.go()
dinput = viz.add('DirectInput.dle')
for sensor in dinput.getXboxControllerList():
	vizconfig.register(sensor)
vizconfig.getConfigWindow().setWindowVisible(True)
 | 
| 
		 
			 
			#4  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Great, that also fixed the button mapping problem. 
		
		
		
		
		
		
		
		
	
	~George  | 
| 
		 
			 
			#5  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			What about the analog sticks for the callbacks? 
		
		
		
		
		
		
		
		
	
	Has that been phased out and now I just use a timer to read the values? Before there was a move and a twist method.  | 
| 
		 
			 
			#6  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Also, what about the dead zone? 
		
		
		
		
		
		
		
		
	
	Doesn't seem to have an effect when set on the XBox controller. If I poll the device using the getLeftStick() I still get a value less than the dead zone. Do I have to manually test for this?  | 
| 
		 
			 
			#7  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			You could register a callback function with vizact.onupdate to poll the analog values.  
		
		
		
		
		
		
		
		
	
	Make sure to calibrate your joystick using the Game Controllers dialog in the Windows Control Panel.  | 
| 
		 
			 
			#8  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Is my 'DirectInput.dle' out of date? Why do I get this error? 
		
		
		
		
		
		
		
		
	
	AttributeError: 'DirectInputExtension' object has no attribute 'getXboxControllerList'  | 
| 
		 
			 
			#9  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			This command is available in Vizard 5.1. If you're using Vizard 5 you can go to 'Help > Check for Updates' to get the latest installer.
		 
		
		
		
		
		
		
		
		
	
	 | 
![]()  | 
	
	
		
  | 
	
		
  | 
			 
			Similar Threads
		 | 
	||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| XBOX360 USB controller intermittently working | fivel_lab | Vizard | 2 | 01-26-2015 08:09 PM |