Я пытаюсь подключиться к Wii Remote, используя код Python,
import wiiuse
import sys
import time
import os
nmotes = 2
def handle_event(wmp):
wm = wmp[0]
print(" -- Event [wiimote id %i] --" % wm.unid)
if wm.btns:
for name, b in wiiuse.button.items():
if wiiuse.is_pressed(wm, b):
print(name, 'pressed')
def handle_ctrl_status(wmp, attachment, speaker, ir, led, battery_level):
wm = wmp[0]
print('--- Controller Status [wiimote id %i] ---' % wm.unid)
print('attachment', attachment)
print('speaker', speaker)
print('ir', ir)
print('leds', led[0], led[1], led[2], led[3])
print('battery', battery_level)
def handle_disconnect(wmp):
print()
if os.name != 'nt':
print("Press 1 & 2")
wiimotes = wiiuse.init(nmotes)
found = wiiuse.find(wiimotes, nmotes, 5)
if not found:
print("None found")
sys.exit()
connected = wiiuse.connect(wiimotes, nmotes)
if connected:
print("Connected")
else:
print("Failed")
for i in range(nmotes):
wiiuse.set_leds(wiimotes[i], wiiuse.LED[i])
try:
rum = 1
while True:
r = wiiuse.poll(wiimotes, nmotes)
if r != 0:
handle_event(wiimotes[0])
except KeyboardInterrupt:
for i in range(nmotes):
wiiuse.set_leds(wiimotes[i], 0)
wiiuse.rumble(wiimotes[i], 0)
wiiuse.disconnect(wiimotes[i])
Но у него возникают проблемы со строкой 40. Он продолжает выдавать
connect() output sock: Invalid argument
Моя первая мысль была, чтоЭто была проблема с Bluetooth, но программа wmgui работает отлично.Вы также можете видеть, что он находит пульт, но потом его бросает более поздний фрагмент кода.Я думаю, что ей не нравится переменная 'wiimotes', которой она назначена, но это было бы странно, поскольку wiimotes определяется их собственной функцией 'wiiuse.init (nmotes)'.Мое окончательное предположение, что это как-то связано с сокетами, с которыми у меня нет опыта.
Характеристики: Raspberry Pi Model 3 B +, Python 3.4.2, Wiiuse 0.12, IDE Vscode