|
|
@ -34,7 +34,8 @@ class Keyboard: |
|
|
|
|
|
|
|
|
|
|
|
class Joystick: |
|
|
|
class Joystick: |
|
|
|
def __init__(self): |
|
|
|
def __init__(self): |
|
|
|
self.max_axis_value = 255 # tune based on your joystick, 0 to this |
|
|
|
self.min_axis_value = 0 |
|
|
|
|
|
|
|
self.max_axis_value = 255 |
|
|
|
self.cancel_button = 'BTN_TRIGGER' |
|
|
|
self.cancel_button = 'BTN_TRIGGER' |
|
|
|
self.axes_values = {'ABS_Y': 0., 'ABS_RZ': 0.} # gb, steer |
|
|
|
self.axes_values = {'ABS_Y': 0., 'ABS_RZ': 0.} # gb, steer |
|
|
|
|
|
|
|
|
|
|
@ -45,7 +46,10 @@ class Joystick: |
|
|
|
if event[0] == self.cancel_button and event[1] == 0: # state 0 is falling edge |
|
|
|
if event[0] == self.cancel_button and event[1] == 0: # state 0 is falling edge |
|
|
|
self.cancel = True |
|
|
|
self.cancel = True |
|
|
|
elif event[0] in self.axes_values: |
|
|
|
elif event[0] in self.axes_values: |
|
|
|
norm = -interp(event[1], [0, self.max_axis_value], [-1., 1.]) |
|
|
|
self.max_axis_value = max(event[1], self.max_axis_value) |
|
|
|
|
|
|
|
self.min_axis_value = min(event[1], self.min_axis_value) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
norm = -interp(event[1], [self.min_axis_value, self.max_axis_value], [-1., 1.]) |
|
|
|
self.axes_values[event[0]] = norm if abs(norm) > 0.05 else 0. # center can be noisy, deadzone of 5% |
|
|
|
self.axes_values[event[0]] = norm if abs(norm) > 0.05 else 0. # center can be noisy, deadzone of 5% |
|
|
|
else: |
|
|
|
else: |
|
|
|
return False |
|
|
|
return False |
|
|
|