From 0e8f2bdc8aabc27e0b392f3451fb1b993af08d5f Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 13 Dec 2024 10:26:48 +0100 Subject: [PATCH] attached RequestStatus to SFAcquisition --- slic/core/acquisition/sfacquisition.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/slic/core/acquisition/sfacquisition.py b/slic/core/acquisition/sfacquisition.py index 9480158e..002b3b93 100644 --- a/slic/core/acquisition/sfacquisition.py +++ b/slic/core/acquisition/sfacquisition.py @@ -12,6 +12,13 @@ from .bschannels import BSChannels from .broker import BrokerClient, align_pid_left, align_pid_right, restapi from .detcfg import DetectorConfig +#TODO: install pika everywhere and remove the following +# handle cases where pika is not available +try: + from .broker.requeststatus import RequestStatus +except ImportError: + RequestStatus = None + class SFAcquisition(BaseAcquisition): @@ -34,6 +41,14 @@ class SFAcquisition(BaseAcquisition): self.client = BrokerClient(pgroup, address=api_address, rate_multiplicator=rate_multiplicator, append_user_tag_to_data_dir=append_user_tag_to_data_dir, client_name="slic", **kwargs) + #TODO: install pika everywhere and remove the following + # handle cases where pika is not available + if RequestStatus is None: + self.status = None + else: + status_address = api_address.split("/")[-1].split(":")[0] #TODO does this always work? would be better to have host and port as two arguments and assemble as needed + self.status = RequestStatus(instrument=instrument, address=status_address) + self.current_task = None @@ -142,10 +157,6 @@ class SFAcquisition(BaseAcquisition): self.client.config.pgroup = value - @property - def status(self): - return self.client.status - def __repr__(self): return "SF DAQ on {} (status: {}, last run: {})".format(self.client.address, self.client.status, self.client.run_number)