diff --git a/slic/utils/ioc/adjdrv.py b/slic/utils/ioc/adjdrv.py index 590913c7..12ad64d2 100644 --- a/slic/utils/ioc/adjdrv.py +++ b/slic/utils/ioc/adjdrv.py @@ -32,4 +32,14 @@ class AdjustableDriver(Driver): return value +# def sync(self): +# for n, a in self.adjs.items(): +# v_adj = a.get_current_value() +# v_par = self.getParam(n) +# if v_adj != v_par: +# print("sync:", n, v_adj) +# self.setParam(n, v_adj) +# self.updatePVs() # this actually triggers the monitoring + + diff --git a/slic/utils/ioc/ioc.py b/slic/utils/ioc/ioc.py index 31cf3333..b1928753 100644 --- a/slic/utils/ioc/ioc.py +++ b/slic/utils/ioc/ioc.py @@ -1,3 +1,4 @@ +import pcaspy from pcaspy import SimpleServer from pcaspy.tools import ServerThread from .adjdrv import AdjustableDriver @@ -36,13 +37,23 @@ class IOC(ServerThread): super().__init__(server) +# def run(self): +# while self.running: +# self.server.process(0.1) +# self.driver.sync() + + def mk_pvdb(adjs): return {n: mk_pvinfo(a) for n, a in adjs.items()} def mk_pvinfo(adj): typ = infer_type(adj) - return {"type": typ} + res = { + "type": typ, + "scan": 1 # triggers monitors every second + } + return res def infer_type(adj): val = adj.get_current_value()