From d7e6298f4719a302c8c9a8afd8e34c68528bd1f6 Mon Sep 17 00:00:00 2001 From: Boyan Date: Wed, 20 Jul 2022 17:29:35 +0300 Subject: [PATCH] this might work --- main.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index e7f6e94..c276563 100644 --- a/main.py +++ b/main.py @@ -2,19 +2,30 @@ import pigpio import time import datetime +import asyncio +from functools import wraps, partial -if __name__ == "__main__": - def cbf(gpio, level): - if(pi.read(gpio)!=0): - i = datetime.datetime.now() - date = i.strftime("%Y-%m-%d %H:%M:%S") - print("gpio "+str(gpio)+"button gpio gave 1") +def async_wrap(func): + @wraps(func) + async def run(*args, loop=None, executor=None, **kwargs): + if loop is None: + loop = asyncio.get_event_loop() + pfunc = partial(func, *args, **kwargs) + return await loop.run_in_executor(executor, pfunc) + return run +# init GPIO +pi = pigpio.pi() +# button pin +pi.set_mode(10, pigpio.INPUT) + +@async_wrap +def button_press(gpio:int, level) -> bool: + while True: if(pi.read(gpio)==0): - i = datetime.datetime.now() - date = i.strftime("%Y-%m-%d %H:%M:%S") + return True - print(date) - pi = pigpio.pi() - pi.set_mode(10, pigpio.INPUT) - cbf(10, pigpio.EITHER_EDGE) + +cbf(10, pigpio.EITHER_EDGE) +if __name__ == "__main__": + asyncio.run(button_press()) \ No newline at end of file