Files
smash/smash/epicsutils.py
2024-06-09 13:01:58 +02:00

43 lines
893 B
Python

import epics
def make_alarms(rules, callback, alert_delay=1):
rules = get_pvs(rules) # this is optional and creates all PVs at once
#check_connections(rules)
alarms = []
for pvname, comparison, trip_point in rules:
print("creating alarm:", pvname, comparison, trip_point)
a = epics.Alarm(
pvname = pvname, # this can also be a PV object
comparison = comparison,
trip_point = trip_point,
callback = callback,
alert_delay = alert_delay
)
alarms.append(a)
print()
return alarms
def get_pvs(rules):
return [(epics.get_pv(n), c, t) for n, c, t in rules]
def check_connections(rules):
for pv, _c, _t in rules:
state = pv.wait_for_connection(timeout=0.1)
if not state:
print(pv)
def main_loop():
while True:
epics.poll()