Hi John,
Here is a work around for having the vibration working in Vizard via the Python ctypes library.
Please be aware about the XInput versions which you have and change the line accordingly when loading the Xinput.dll.
For example, if the XInput versions is 9.1.0 then it will become
Code:
ctypes.windll.xinput9_1_0
Here is some information for your reference too.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Hope this helps.
Best,
Kevin
Code:
import ctypes
# Define necessary structures
class XINPUT_VIBRATION(ctypes.Structure):
_fields_ = [("wLeftMotorSpeed", ctypes.c_ushort),
("wRightMotorSpeed", ctypes.c_ushort)]
xinput = ctypes.windll.xinput1_4 # Load Xinput.dll
# Set up function argument types and return type
XInputSetState = xinput.XInputSetState
XInputSetState.argtypes = [ctypes.c_uint, ctypes.POINTER(XINPUT_VIBRATION)]
XInputSetState.restype = ctypes.c_uint
# The helper function with 3 input arguments:
# controller id ( 0 for the first controller )
# left motor vibration scaled from 0 (off) to 1.0 (full on)
# right motor vibration (also 0 - 1.0)
def set_vibration(controller, left_motor, right_motor):
vibration = XINPUT_VIBRATION(int(left_motor * 65535), int(right_motor * 65535))
XInputSetState(controller, ctypes.byref(vibration))
## Example usage
import time
set_vibration(0, 0.5, 0.5)
time.sleep(1)
set_vibration(0, 0, 0)