Передача аргументов в цифровой обратный вызов PIFACE - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь зарегистрировать нажатие кнопки, чтобы при каждой установке события через мой веб-сокет отправлялось сообщение.

pifacedigitalio.init()
listener = pifacedigitalio.InputEventListener()
listener.register(1, pifacedigitalio.IODIR_ON, self.sendEventPushed)   
listener.activate()

Функции, которые я передаю, тем не менее, имеют следующие аргументы:

async def sendEventPushed(self,websocket,path):
    await websocket.send(str(1))
    print("sent")

В документации Я не могу найти, могу ли я передать свои собственные аргументы функции, выполнив:

listener.register(1, pifacedigitalio.IODIR_ON, self.sendEventPushed(websocket,path))

Просто вызывает его и передает результат слушателю, а это не то, что я хочу.

1 Ответ

0 голосов
/ 02 мая 2018

Дайте функцию, которая не принимает аргументов и вызывает self.sendEventPushed(websocket,path), например ::

def callback():
    self.sendEventPushed(websocket, path)

listener.register(1, pifacedigitalio.IODIR_ON, callback)

или

listener.register(1, pifacedigitalio.IODIR_ON, lambda: self.sendEventPushed(websocket, path))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...