Skip to content

Commit b26a057

Browse files
committed
Tidying
Remove name from LogicHandler Explicitly define ntrigger to use in code Use Attribute.get() instead of Attribute._value Remove TODO - No sleep is required
1 parent e59b3de commit b26a057

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/eiger_fastcs/eiger_controller.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ async def put(self, controller: "EigerController", _: AttrW, value: Any) -> None
2828

2929
async def update(self, controller: "EigerController", attr: AttrR) -> None:
3030
try:
31-
# TODO: Async sleep?
3231
response = await controller.connection.get(self.name)
3332
await attr.set(response["value"])
3433
except Exception as e:
35-
print(f"update loop failed:{e}")
34+
print(f"{self.name} update loop failed:\n{e}")
3635

3736

3837
class EigerConfigHandler(EigerHandler):
@@ -59,8 +58,6 @@ class LogicHandler:
5958
Used for dynamically created attributes that are added for additional logic
6059
"""
6160

62-
name: str
63-
6461
async def put(self, _: "EigerController", attr: AttrW, value: Any) -> None:
6562
await attr.set(value)
6663

@@ -79,10 +76,11 @@ class EigerController(Controller):
7976
Sets up all connections with the Simplon API to send and receive information
8077
"""
8178

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())
8684
stale_parameters = AttrR(Bool())
8785

8886
def __init__(self, settings: IPConnectionSettings) -> None:
@@ -259,9 +257,8 @@ async def start_acquisition(self):
259257
await self.arm()
260258
# Current functionality is for ints triggering and multiple ntriggers for
261259
# 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()):
265262
await self.trigger()
266263

267264
async def queue_update(self, parameters: list[str]):

0 commit comments

Comments
 (0)