Я собрал следующий код из примера в https://websockets.readthedocs.io/en/stable/intro.html#python-lt-36 Это, без сомнения, было бы проще в Python 3.6+, но, к сожалению, используемый мной дистрибутив (Raspbian) содержит Python 3.5.3.Понятно, что я сделал что-то не так, но я не знаю что.Что я сделал не так, и есть ли более простой подход?
def my_callback1(channel): # Down Arrow Pressed
Return, Cursor = update.upArrow()
if Return:
message = "Control, " + str(Cursor)
asyncio.get_event_loop().run_until_complete(SendMessage(message))
@asyncio.coroutine
def SendMessage(message):
websocket = yield from websockets.connect('ws://localhost:8000')
try:
yield from websocket.send(message)
finally:
yield from websocket.close()
GPIO.add_event_detect(pinsarrow[0], GPIO.RISING, callback=my_callback1, bouncetime=bTime) # Down Arrow
Traceback (most recent call last):
File "/usr/local/sbin/button.py", line 25, in my_callback1
asyncio.get_event_loop().run_until_complete(SendMessage(message))
File "/usr/lib/python3.5/asyncio/events.py", line 671, in get_event_loop
return get_event_loop_policy().get_event_loop()
File "/usr/lib/python3.5/asyncio/events.py", line 583, in get_event_loop
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'Dummy-1'.