diff --git a/csaxs_bec/devices/epics/devices/omny_sample_storage.py b/csaxs_bec/devices/epics/devices/omny_sample_storage.py index dcd5714..9b49c47 100644 --- a/csaxs_bec/devices/epics/devices/omny_sample_storage.py +++ b/csaxs_bec/devices/epics/devices/omny_sample_storage.py @@ -4,7 +4,7 @@ from ophyd import Component as Cpt from ophyd import Device from ophyd import DynamicDeviceComponent as Dcpt from ophyd import EpicsSignal -from prettytable import FRAME, PrettyTable +from prettytable import PrettyTable, FRAME class OMNYSampleStorageError(Exception): @@ -28,6 +28,7 @@ class OMNYSampleStorage(Device): "unset_shuttle_slot", "get_shuttle_name_slot", "is_shuttle_slot_used", + "search_shuttle_in_slot", "show_all", ] SUB_VALUE = "value" @@ -59,7 +60,7 @@ class OMNYSampleStorage(Device): parking_placed = Dcpt(parking_placed) sample_placed = { - f"parking{i}": (EpicsSignal, f"XOMNY-SAMPLE_DB_omny:{i}", {}) + f"sample{i}": (EpicsSignal, f"XOMNY-SAMPLE_DB_omny:{i}", {}) for i in [10, 11, 12, 13, 14, 32, 33, 34, 100, 101] } sample_placed = Dcpt(sample_placed) @@ -227,11 +228,25 @@ class OMNYSampleStorage(Device): val = self.sample_in_samplestage_name.get() return str(val) + def search_shuttle_in_slot(self, shuttle: str) -> int: + returnvalue = 0 + for i in range(1, 7): + if self.get_shuttle_name_slot(i) == shuttle: + returnvalue = i + return returnvalue + def show_all(self): t = PrettyTable() + red = "\x1b[91m" + green = "\x1b[92m" + white = "\x1b[0m" for ch in ["A", "B", "C"]: t.clear() - t.title = "Shuttle " + ch + shuttle_in_slot = self.search_shuttle_in_slot(ch) + if shuttle_in_slot > 0: + t.title = green + "Shuttle " + ch + " in OMNY slot " + str(shuttle_in_slot) + white + else: + t.title = red + "Shuttle " + ch + white field_names = [""] for ax in [1, 3, 5]: row = []