Skip to content

Commit

Permalink
merge fix
Browse files Browse the repository at this point in the history
  • Loading branch information
hongquanli committed Dec 27, 2024
1 parent 48e1cef commit d018834
Showing 1 changed file with 12 additions and 67 deletions.
79 changes: 12 additions & 67 deletions software/control/gui_hcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,82 +288,22 @@ def setupHardware(self):
self.emission_filter_wheel.start_homing()
if USE_OPTOSPIN_EMISSION_FILTER_WHEEL:
self.emission_filter_wheel.set_speed(OPTOSPIN_EMISSION_FILTER_WHEEL_SPEED_HZ)

if not self.microcontroller:
raise ValueError("Microcontroller must be none-None for hardware setup.")

self.microcontroller.reset()
time.sleep(0.5)
if USE_SQUID_FILTERWHEEL:
self.microcontroller.init_filter_wheel()
time.sleep(0.5)
self.microcontroller.initialize_drivers()
time.sleep(0.5)

self.microcontroller.configure_actuators()
if USE_SQUID_FILTERWHEEL:
self.microcontroller.configure_squidfilter()
time.sleep(0.5)

if HAS_ENCODER_X:
self.navigationController.set_axis_PID_arguments(0, PID_P_X, PID_I_X, PID_D_X)
self.navigationController.configure_encoder(0, (SCREW_PITCH_X_MM * 1000) / ENCODER_RESOLUTION_UM_X, ENCODER_FLIP_DIR_X)
self.navigationController.set_pid_control_enable(0, ENABLE_PID_X)
if HAS_ENCODER_Y:
self.navigationController.set_axis_PID_arguments(1, PID_P_Y, PID_I_Y, PID_D_Y)
self.navigationController.configure_encoder(1, (SCREW_PITCH_Y_MM * 1000) / ENCODER_RESOLUTION_UM_Y, ENCODER_FLIP_DIR_Y)
self.navigationController.set_pid_control_enable(1, ENABLE_PID_Y)
if HAS_ENCODER_Z:
self.navigationController.set_axis_PID_arguments(2, PID_P_Z, PID_I_Z, PID_D_Z)
self.navigationController.configure_encoder(2, (SCREW_PITCH_Z_MM * 1000) / ENCODER_RESOLUTION_UM_Z, ENCODER_FLIP_DIR_Z)
self.navigationController.set_pid_control_enable(2, ENABLE_PID_Z)
if USE_SQUID_FILTERWHEEL:
if HAS_ENCODER_W:
self.navigationController.set_axis_PID_arguments(3, PID_P_W, PID_I_W, PID_D_W)
self.navigationController.configure_encoder(3, 4000, ENCODER_FLIP_DIR_W)
self.navigationController.set_pid_control_enable(3, ENABLE_PID_W)
time.sleep(0.5)

self.navigationController.set_x_limit_pos_mm(SOFTWARE_POS_LIMIT.X_POSITIVE)
self.navigationController.set_x_limit_neg_mm(SOFTWARE_POS_LIMIT.X_NEGATIVE)
self.navigationController.set_y_limit_pos_mm(SOFTWARE_POS_LIMIT.Y_POSITIVE)
self.navigationController.set_y_limit_neg_mm(SOFTWARE_POS_LIMIT.Y_NEGATIVE)
self.navigationController.set_z_limit_pos_mm(SOFTWARE_POS_LIMIT.Z_POSITIVE)
self.navigationController.set_z_limit_neg_mm(SOFTWARE_POS_LIMIT.Z_NEGATIVE)

if HOMING_ENABLED_Z:
self.navigationController.home_z()
self.waitForMicrocontroller(10, 'z homing timeout')
if HOMING_ENABLED_X and HOMING_ENABLED_Y:
self.navigationController.move_x(20)
self.waitForMicrocontroller()
self.navigationController.home_y()
self.waitForMicrocontroller(10, 'y homing timeout')
self.navigationController.zero_y()
self.navigationController.home_x()
self.waitForMicrocontroller(10, 'x homing timeout')
self.navigationController.zero_x()
self.slidePositionController.homing_done = True
if USE_ZABER_EMISSION_FILTER_WHEEL:
self.emission_filter_wheel.wait_for_homing_complete()
if HOMING_ENABLED_X and HOMING_ENABLED_Y:
self.navigationController.move_x(20)
self.waitForMicrocontroller()
self.navigationController.move_y(20)
self.waitForMicrocontroller()

if ENABLE_OBJECTIVE_PIEZO:
OUTPUT_GAINS.CHANNEL7_GAIN = (OBJECTIVE_PIEZO_CONTROL_VOLTAGE_RANGE == 5)
div = 1 if OUTPUT_GAINS.REFDIV else 0
gains = sum(getattr(OUTPUT_GAINS, f'CHANNEL{i}_GAIN') << i for i in range(8))
self.microcontroller.configure_dac80508_refdiv_and_gain(div, gains)
self.microcontroller.set_dac80508_scaling_factor_for_illumination(ILLUMINATION_INTENSITY_FACTOR)

try:
self.microcontroller.reset()
time.sleep(0.5)
self.microcontroller.initialize_drivers()
time.sleep(0.5)
if USE_SQUID_FILTERWHEEL:
self.microcontroller.init_filter_wheel()
time.sleep(0.5)

self.microcontroller.configure_actuators()
if USE_SQUID_FILTERWHEEL:
self.microcontroller.configure_squidfilter()

if HAS_ENCODER_X:
self.navigationController.set_axis_PID_arguments(0, PID_P_X, PID_I_X, PID_D_X)
Expand All @@ -377,6 +317,11 @@ def setupHardware(self):
self.navigationController.set_axis_PID_arguments(2, PID_P_Z, PID_I_Z, PID_D_Z)
self.navigationController.configure_encoder(2, (SCREW_PITCH_Z_MM * 1000) / ENCODER_RESOLUTION_UM_Z, ENCODER_FLIP_DIR_Z)
self.navigationController.set_pid_control_enable(2, ENABLE_PID_Z)
if USE_SQUID_FILTERWHEEL:
if HAS_ENCODER_W:
self.navigationController.set_axis_PID_arguments(3, PID_P_W, PID_I_W, PID_D_W)
self.navigationController.configure_encoder(3, 4000, ENCODER_FLIP_DIR_W)
self.navigationController.set_pid_control_enable(3, ENABLE_PID_W)
time.sleep(0.5)

self.navigationController.set_x_limit_pos_mm(SOFTWARE_POS_LIMIT.X_POSITIVE)
Expand Down

0 comments on commit d018834

Please sign in to comment.