diff --git a/src/stitching_scanner.py b/src/stitching_scanner.py index 23376d3..feebda0 100644 --- a/src/stitching_scanner.py +++ b/src/stitching_scanner.py @@ -449,6 +449,7 @@ class StitchingScanner: no_movement_count = 0 max_no_movement = 50 stop_reason = 'stopped' + total_x = 0 while self.running and not self.paused: if time.time() - start_time > self.config.max_scan_time: @@ -460,7 +461,11 @@ class StitchingScanner: self.log(f"Max dimension reached ({current_dim()}px)") stop_reason = 'max_dim' break - + + if abs(total_x) >= max_mosaic_width: + self.log(f"Max dimension reached ({max_mosaic_width}px)") + stop_reason = 'max_dim' + break # Pulse motor self.motion.send_command(start_cmd) time.sleep(self.config.movement_interval) @@ -473,6 +478,7 @@ class StitchingScanner: self._displacement_since_append_x += dx self._displacement_since_append_y += dy + total_x += dx with self._state_lock: self.state.cumulative_x = self._displacement_since_append_x