diff --git a/csaxs_bec/bec_ipython_client/plugins/flomni/gui_tools.py b/csaxs_bec/bec_ipython_client/plugins/flomni/gui_tools.py index 2934072..1089b19 100644 --- a/csaxs_bec/bec_ipython_client/plugins/flomni/gui_tools.py +++ b/csaxs_bec/bec_ipython_client/plugins/flomni/gui_tools.py @@ -19,10 +19,8 @@ class flomniGuiTools: def __init__(self): self.gui_window = None - self.fig200 = None - self.fig201 = None - self.fig202 = None - self.fig203 = None + self.camera_gripper_image = None + self.camera_overview_image = None self.progressbar = None self.text_box = None self.idle_text_box = None @@ -36,43 +34,43 @@ class flomniGuiTools: self.gui.flomni.show() else: self.gui.new("flomni") - self.gui_window = self.gui.flomni def flomnigui_stop_gui(self): - self.gui_window.hide() + self.gui.flomni.hide() - def _flomnicam_parking(self): - self.flomnigui_show_flomnicam_parking() - - def flomnigui_show_flomnicam_parking(self): + def flomnigui_show_cameras(self): self.flomnigui_show_gui() - if self.fig200 is None: - self._flomnicam_clear() - self.fig200 = self.gui_window.add_dock(name="flomnicam200").add_widget("BECImageWidget") - if self._flomnicam_check_device_exists(dev.cam200): - fig = self.fig200.image("cam200") - fig.set_rotation(deg_90=3) - self.fig200.lock_aspect_ratio(True) + if self.camera_gripper_image is None or self.camera_overview_image is None: + self.flomnigui_remove_all_docks() + self.camera_gripper_image = self.gui.flomni.new("camera_gripper").new("Image") + if self._flomnicam_check_device_exists(dev.cam_flomni_gripper): + self.camera_gripper_image.image(("cam_flomni_gripper","preview")) + self.camera_gripper_image.lock_aspect_ratio = True + self.camera_gripper_image.enable_fps_monitor = True + self.camera_gripper_image.enable_toolbar = False + self.camera_gripper_image.outer_axes = False + self.camera_gripper_image.inner_axes = False + dev.cam_flomni_gripper.start() else: - print("Cannot open cam200. Device does not exist.") - self.fig203 = self.gui_window.add_dock(name="flomnicam203").add_widget("BECImageWidget") - if self._flomnicam_check_device_exists(dev.cam203): - fig = self.fig203.image("cam203") - fig.set_rotation(deg_90=3) - self.fig203.lock_aspect_ratio(True) + print("Cannot open camera_gripper. Device does not exist.") + self.camera_overview_image = self.gui.flomni.new("camera_overview").new("Image") + if self._flomnicam_check_device_exists(dev.cam_flomni_overview): + self.camera_overview_image.image(("cam_flomni_overview","preview")) + self.camera_overview_image.lock_aspect_ratio = True + self.camera_overview_image.enable_fps_monitor = True + self.camera_overview_image.enable_toolbar = False + self.camera_overview_image.outer_axes = False + self.camera_overview_image.inner_axes = False + dev.cam_flomni_overview.start() else: - print("Cannot open cam203. Device does not exist.") - try: - self.gui_window.remove_dock(name="default_figure") - except: - pass + print("Cannot open camera_overview. Device does not exist.") def flomnigui_remove_all_docks(self): - self.gui_window.delete_all() - self.fig200 = None - self.fig201 = None - self.fig202 = None - self.fig203 = None + dev.cam_flomni_overview.stop() + dev.cam_flomni_gripper.stop() + self.gui.flomni.delete_all() + self.camera_gripper_image = None + self.camera_overview_image = None self.progressbar = None self.text_box = None self.idle_text_box = None @@ -81,30 +79,18 @@ class flomniGuiTools: self.flomnigui_show_gui() if self.idle_text_box is None: self.flomnigui_remove_all_docks() - self.idle_text_box = self.gui_window.add_dock(name="idle_text").add_widget("TextBox") - try: - self.gui_window.remove_dock(name="default_figure") - except: - pass + self.idle_text_box = self.gui.flomni.new("idle_textbox").new("TextBox") text = ( - "
"
-            + "    ,o888888o.           ,8.       ,8.          b.             8 `8.`8888.      ,8' \n"
-            + " . 8888     `88.        ,888.     ,888.         888o.          8  `8.`8888.    ,8'  \n"
-            + ",8 8888       `8b      .`8888.   .`8888.        Y88888o.       8   `8.`8888.  ,8'   \n"
-            + "88 8888        `8b    ,8.`8888. ,8.`8888.       .`Y888888o.    8    `8.`8888.,8'    \n"
-            + "88 8888         88   ,8'8.`8888,8^8.`8888.      8o. `Y888888o. 8     `8.`88888'     \n"
-            + "88 8888         88  ,8' `8.`8888' `8.`8888.     8`Y8o. `Y88888o8      `8. 8888      \n"
-            + "88 8888        ,8P ,8'   `8.`88'   `8.`8888.    8   `Y8o. `Y8888       `8 8888      \n"
-            + "`8 8888       ,8P ,8'     `8.`'     `8.`8888.   8      `Y8o. `Y8        8 8888      \n"
-            + " ` 8888     ,88' ,8'       `8        `8.`8888.  8         `Y8o.`        8 8888      \n"
-            + "    `8888888P'  ,8'         `         `8.`8888. 8            `Yo        8 8888      \n"
-            + "
" + "
"                                       
+            + " ,---.,--. ,-----. ,--.   ,--.,--.  ,--.,--. \n"
+            + "/  .-'|  |'  .-.  '|   `.'   ||  ,'.|  ||  | \n"
+            + "|  `-,|  ||  | |  ||  |'.'|  ||  |' '  ||  | \n"
+            + "|  .-'|  |'  '-'  '|  |   |  ||  | `   ||  | \n"
+            + "`--'  `--' `-----' `--'   `--'`--'  `--'`--' \n"
+            + "
" ) self.idle_text_box.set_html_text(text) - def _flomnicam_clear(self): - self.flomnigui_remove_all_docks() - def _flomnicam_check_device_exists(self, device): try: device @@ -113,38 +99,12 @@ class flomniGuiTools: else: return True - def _flomnicam_samplestage(self): - self.flomnigui_show_flomnicam_samplestage() - - def flomnigui_show_flomnicam_samplestage(self): - self.flomnigui_show_gui() - if self.fig201 is None: - self.flomnigui_remove_all_docks() - self.fig201 = self.gui_window.add_dock(name="flomnicam201").add_widget("BECImageWidget") - if self._flomnicam_check_device_exists(dev.cam201): - fig = self.fig201.image("cam201") - fig.set_rotation(deg_90=3) - self.fig201.lock_aspect_ratio(True) - else: - print("Cannot open cam201. Device does not exist.") - self.fig202 = self.gui_window.add_dock(name="flomnicam202").add_widget("BECImageWidget") - if self._flomnicam_check_device_exists(dev.cam202): - fig = self.fig202.image("cam202") - fig.set_rotation(deg_90=3) - self.fig202.lock_aspect_ratio(True) - else: - print("Cannot open cam202. Device does not exist.") - try: - self.gui_window.remove_dock(name="default_figure") - except: - pass - def flomnigui_show_progress(self): self.flomnigui_show_gui() if self.progressbar is None: self.flomnigui_remove_all_docks() # Add a new dock with a RingProgressBar widget - self.progressbar = self.gui_window.new(name="progress").new("RingProgressBar") + self.progressbar = self.gui.flomni.new("progressbar").new("RingProgressBar") # Customize the size of the progress ring self.progressbar.set_line_widths(20) # Disable automatic updates and manually set the self.progressbar value @@ -157,11 +117,8 @@ class flomniGuiTools: # Set the values of the rings to 50, 75, and 25 from outer to inner ring # self.progressbar.set_value([50, 75]) # Add a new dock with a TextBox widget - self.text_box = self.gui_window.new(name="progress_text").new("TextBox") - try: - self.gui_window.bec.delete() - except: - pass + self.text_box = self.gui.flomni.new(name="progress_text").new("TextBox") + self._flomnigui_update_progress() def _flomnigui_update_progress(self): diff --git a/pyproject.toml b/pyproject.toml index 269d369..5cadf8b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ dependencies = [ "pyueye", # for the IDS uEye camera "bec_widgets", "zmq", + "opencv-python", ] [project.optional-dependencies]