Files

30 lines
584 B
Python

import functools
import threading
from epics import get_pv as PV
from log import log
def toggle(func):
@functools.wraps(func)
def wrapper(value=None, pvname=None, **kwargs):
fn = func.__name__
if not value:
log.info(f"{fn}: ignoring value={repr(value)}")
return
func(value=value, pvname=pvname, **kwargs)
pv = PV(pvname)
call_later(pv.put, 0)
log.info(f"{fn}: done")
return wrapper
def call_later(func, *args, **kwargs):
threading.Thread(target=func, args=args, kwargs=kwargs).start()