ich habe jetzt das wunderbare Vergnügen die Analog Sticks meines XBox Controllers zu programmieren.
Und ja, ich hatte gedacht, man müsste lediglich die X und Y Werte der Achsen auslesen.
Nun, ich habe 4 bytes aus denen ich etwas basteln muss.
Daher hatte ich vermutet, daß 2 bytes pro Achse (256*2) genutzt werden.
Leider komme ich zu keinen brauchbaren Ergebnissen.
Mein Code sieht im Moment etwa so aus:
Code: Alles auswählen
events = (
uinput.ABS_X,
uinput.ABS_Y,
#undokumentierte Schreibweise:
#uinput.ABS_Y + (min, max, ?, ?)
#uinput.ABS_Y + ( 0, 255, 0, 0),
)
## LAnalog bytes[10:14]
## Vermutete Werte:
## x=2bytes, y=2bytes ???, values=65536, center=32768
##minDeadzone~0+6000, maxDeadzone~65536/2 +- 3000 ??
with uinput.Device(events) as device:
for i in range(2000):
x =0 ; y=0
data = dev.read(0x81, 29 , 0)
x=(data[10]*data[13])
y=(data[12]*data[11])
if x > 3000 and x < 29000:
device.emit(uinput.ABS_X, -5, syn=False)
#device.emit_click(uinput.KEY_A)
print("-x", x)
Mfg d