From 8a137780b1b6eb8bcfaf535c4c336953dda94d0b Mon Sep 17 00:00:00 2001 From: Bjoern Senfftleben <bjoern.senfftleben@xfel.eu> Date: Sat, 8 Feb 2025 23:44:25 +0100 Subject: [PATCH] fixes multilink feature --- src/tempus/Tempus.py | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/tempus/Tempus.py b/src/tempus/Tempus.py index dc74f0a..4316dd6 100644 --- a/src/tempus/Tempus.py +++ b/src/tempus/Tempus.py @@ -156,7 +156,7 @@ class Tempus(Device): enableMultiLink = Bool( defaultValue=False, displayedName="Enable Multiple Data Links", - accessMode=AccessMode.INITONLY) + allowedStates={State.INIT}) @Slot( displayedName="Initialize", @@ -212,12 +212,10 @@ class Tempus(Device): await self.send_command("mytpx4.initialisechip()", sleep_time=1) await self.send_command("mytpx4.configureGWT()", sleep_time=0.5) - await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x0 -s 0x2')") - await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x3 -s 0x2')") - await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x0 -s 0x2')") - await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x1 -s 0x2') ") - - + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x0 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x3 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x0 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x1 -s 0x2')", sleep_time=15) self.status = "Initialized" self.state = State.ON @@ -238,15 +236,24 @@ class Tempus(Device): async def _reset_fast_links(self, initial_state): try: - await self.send_command( - f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 " - "-l 0x0 -s 0x2')", sleep_time=15) - await self.send_command( - f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 " - "-l 0x0 -s 0x2')", sleep_time=15) + if not self.enableMultiLink: + await self.send_command( + f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 " + "-l 0x0 -s 0x2')", sleep_time=15) + await self.send_command( + f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 " + "-l 0x0 -s 0x2')", sleep_time=15) + + self.status = "Fast-links reset done" + self.state = initial_state + else: + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x0 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x0 -l 0x3 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x0 -s 0x2')", sleep_time=15) + await self.send_command(f"os.system('{self.APP_DIR}/sc_set_gwt_link_up.py -i 0x1 -l 0x1 -s 0x2')", sleep_time=15) - self.status = "Fast-links reset done" - self.state = initial_state + self.status = "Fast-links (multi-link) reset done" + self.state = initial_state except Exception as e: self.handle_execption(e) -- GitLab