@@ -28,11 +28,10 @@ async def put(self, controller: "EigerController", _: AttrW, value: Any) -> None
28
28
29
29
async def update (self , controller : "EigerController" , attr : AttrR ) -> None :
30
30
try :
31
- # TODO: Async sleep?
32
31
response = await controller .connection .get (self .name )
33
32
await attr .set (response ["value" ])
34
33
except Exception as e :
35
- print (f"update loop failed:{ e } " )
34
+ print (f"{ self . name } update loop failed:\n { e } " )
36
35
37
36
38
37
class EigerConfigHandler (EigerHandler ):
@@ -59,8 +58,6 @@ class LogicHandler:
59
58
Used for dynamically created attributes that are added for additional logic
60
59
"""
61
60
62
- name : str
63
-
64
61
async def put (self , _ : "EigerController" , attr : AttrW , value : Any ) -> None :
65
62
await attr .set (value )
66
63
@@ -79,10 +76,11 @@ class EigerController(Controller):
79
76
Sets up all connections with the Simplon API to send and receive information
80
77
"""
81
78
82
- manual_trigger = AttrRW (
83
- Bool (),
84
- handler = LogicHandler ("manual trigger" ),
85
- )
79
+ # Detector Parameters
80
+ ntrigger = AttrRW (Int ()) # TODO: Include URI and validate type from API
81
+
82
+ # Logic Parameters
83
+ manual_trigger = AttrRW (Bool (), handler = LogicHandler ())
86
84
stale_parameters = AttrR (Bool ())
87
85
88
86
def __init__ (self , settings : IPConnectionSettings ) -> None :
@@ -259,9 +257,8 @@ async def start_acquisition(self):
259
257
await self .arm ()
260
258
# Current functionality is for ints triggering and multiple ntriggers for
261
259
# automatic triggering
262
- if not self .manual_trigger ._value :
263
- for i in range (self .ntrigger ._value ):
264
- print (f"Acquisition number: { i + 1 } " )
260
+ if not self .manual_trigger .get ():
261
+ for _ in range (self .ntrigger .get ()):
265
262
await self .trigger ()
266
263
267
264
async def queue_update (self , parameters : list [str ]):
0 commit comments