this might work

This commit is contained in:
Boyan 2022-07-20 17:29:35 +03:00
parent 8d74edad0c
commit d7e6298f47

33
main.py
View File

@ -2,19 +2,30 @@
import pigpio import pigpio
import time import time
import datetime import datetime
import asyncio
from functools import wraps, partial
if __name__ == "__main__": def async_wrap(func):
def cbf(gpio, level): @wraps(func)
if(pi.read(gpio)!=0): async def run(*args, loop=None, executor=None, **kwargs):
i = datetime.datetime.now() if loop is None:
date = i.strftime("%Y-%m-%d %H:%M:%S") loop = asyncio.get_event_loop()
print("gpio "+str(gpio)+"button gpio gave 1") pfunc = partial(func, *args, **kwargs)
return await loop.run_in_executor(executor, pfunc)
return run
if(pi.read(gpio)==0): # init GPIO
i = datetime.datetime.now()
date = i.strftime("%Y-%m-%d %H:%M:%S")
print(date)
pi = pigpio.pi() pi = pigpio.pi()
# button pin
pi.set_mode(10, pigpio.INPUT) pi.set_mode(10, pigpio.INPUT)
@async_wrap
def button_press(gpio:int, level) -> bool:
while True:
if(pi.read(gpio)==0):
return True
cbf(10, pigpio.EITHER_EDGE) cbf(10, pigpio.EITHER_EDGE)
if __name__ == "__main__":
asyncio.run(button_press())