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)