Skip to content

Commit 57408da

Browse files
fix multicamera issues
Co-Authored-By: Annie Wang <[email protected]>
1 parent 1121cf6 commit 57408da

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

src/navigate/controller/controller.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,6 +1175,7 @@ def display_images(
11751175
camera_view_controller.data_buffer = self.additional_microscopes[
11761176
microscope_name
11771177
]["data_buffer"]
1178+
camera_view_controller.microscope_name = microscope_name
11781179
popup_window.popup.bind("<Configure>", camera_view_controller.resize)
11791180
self.additional_microscopes[microscope_name]["popup_window"] = popup_window
11801181
self.additional_microscopes[microscope_name][

src/navigate/controller/sub_controllers/camera_settings.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -666,10 +666,12 @@ def update_camera_device_related_setting(self):
666666
self.min_height = camera_config_dict.get("y_pixels_min", 4)
667667

668668
self.default_pixel_size = camera_config_dict["pixel_size_in_microns"]
669-
(
670-
self.default_width,
671-
self.default_height,
672-
) = self.parent_controller.configuration_controller.camera_pixels
669+
self.default_height = camera_config_dict["y_pixels"]
670+
self.default_width = camera_config_dict["x_pixels"]
671+
# (
672+
# self.default_width,
673+
# self.default_height,
674+
# ) = self.parent_controller.configuration_controller.camera_pixels
673675
self.trigger_source = camera_config_dict["trigger_source"]
674676
self.trigger_active = camera_config_dict["trigger_active"]
675677
self.readout_speed = camera_config_dict["readout_speed"]

src/navigate/controller/sub_controllers/camera_view.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ def __init__(self, view, parent_controller=None):
146146
#: str: The mode of the camera view controller.
147147
self.mode = "stop"
148148

149+
#: str: The microscope name
150+
self.microscope_name = None
151+
149152
#: dict: The flip flags for the camera.
150153
self.flip_flags = None
151154

@@ -491,9 +494,18 @@ def initialize_non_live_display(self, microscope_state, camera_parameters):
491494
self.original_image_width = int(camera_parameters["img_x_pixels"])
492495
self.original_image_height = int(camera_parameters["img_y_pixels"])
493496

494-
self.flip_flags = (
495-
self.parent_controller.configuration_controller.camera_flip_flags
496-
)
497+
if self.microscope_name is None:
498+
self.flip_flags = (
499+
self.parent_controller.configuration_controller.camera_flip_flags
500+
)
501+
else:
502+
camera_config = self.parent_controller.configuration["configuration"][
503+
"microscopes"
504+
][self.microscope_name]["camera"]
505+
self.flip_flags = {
506+
"x": camera_config.get("flip_x", False),
507+
"y": camera_config.get("flip_y", False)
508+
}
497509

498510
self.update_canvas_size()
499511
self.reset_display(False)
@@ -915,9 +927,9 @@ def try_to_display_image(self, image):
915927
self.image_metrics["Channel"].set(int(self.selected_channels[channel_idx][2:]))
916928

917929
# Save the image to the spooled image loader.
918-
self.spooled_images.save_image(
919-
image=image, channel=channel_idx, slice_index=slice_idx
920-
)
930+
# self.spooled_images.save_image(
931+
# image=image, channel=channel_idx, slice_index=slice_idx
932+
# )
921933

922934
# Update image according to the display state.
923935
self.display_state = self.view.live_frame.live.get()

src/navigate/model/features/common_features.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -973,6 +973,8 @@ def __init__(
973973
self.image_writer = None
974974
if saving_flag:
975975
self.image_writer = ImageWriter(model, sub_dir=saving_dir)
976+
977+
self.prepare_next_channel = PrepareNextChannel(model)
976978

977979
#: dict: A dictionary defining the configuration for the z-stack acquisition
978980
self.config_table = {
@@ -1060,7 +1062,9 @@ def pre_signal_func(self):
10601062
# restore f_pos, positions
10611063
self.model.active_microscope.central_focus = None
10621064
self.model.active_microscope.current_channel = 0
1063-
self.model.active_microscope.prepare_next_channel()
1065+
# prepare next channel
1066+
self.prepare_next_channel.signal_func()
1067+
# self.model.active_microscope.prepare_next_channel()
10641068

10651069
self.model.logger.debug(
10661070
f"*** ZStack pre_signal_func: {self.positions}, {self.start_focus}, "
@@ -1276,6 +1280,7 @@ def update_channel(self):
12761280
self.current_channel_in_list + 1
12771281
) % self.channels
12781282
# not update DAQ tasks if there is a NI Galvo stage
1283+
self.prepare_next_channel.signal_func()
12791284
self.model.active_microscope.prepare_next_channel()
12801285
if self.defocus is not None:
12811286
self.current_focus_position += self.defocus[self.current_channel_in_list]

0 commit comments

Comments
 (0)