Bläddra i källkod

Unlock machine ($X) if homing fails, then continue

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
tuanchris 1 månad sedan
förälder
incheckning
b6967b81f7
1 ändrade filer med 4 tillägg och 38 borttagningar
  1. 4 38
      modules/connection/connection_manager.py

+ 4 - 38
modules/connection/connection_manager.py

@@ -644,44 +644,10 @@ def home(timeout=90):
                     time.sleep(0.1)
 
                 if not (state.homed_x and state.homed_y):
-                    logger.warning(f"Did not receive all homing messages (X:{state.homed_x}, Y:{state.homed_y})")
-
-                    # Retry homing for the axis that didn't home
-                    retry_axis = None
-                    if state.homed_x and not state.homed_y:
-                        retry_axis = "Y"
-                    elif state.homed_y and not state.homed_x:
-                        retry_axis = "X"
-
-                    if retry_axis:
-                        logger.info(f"{retry_axis} axis didn't home, nudging and retrying...")
-                        # Wait for idle first
-                        check_idle()
-                        # Send small movement to move away from sensor
-                        state.conn.send(f"G1 {retry_axis}10 F{homing_speed}\n")
-                        time.sleep(2)
-                        check_idle()
-                        # Retry homing
-                        state.conn.send("$H\n")
-                        logger.info(f"Sent $H retry, waiting for {retry_axis} homing message...")
-                        retry_start = time.time()
-                        while (time.time() - retry_start) < 20:
-                            try:
-                                response = state.conn.readline()
-                                if response:
-                                    logger.debug(f"Retry homing response: {response}")
-                                    if f"[MSG:Homed:{retry_axis}]" in response:
-                                        if retry_axis == "X":
-                                            state.homed_x = True
-                                        else:
-                                            state.homed_y = True
-                                        logger.info(f"Retry successful: Received [MSG:Homed:{retry_axis}]")
-                                        break
-                            except Exception as e:
-                                logger.error(f"Error reading retry response: {e}")
-                            time.sleep(0.1)
-                        if (retry_axis == "X" and not state.homed_x) or (retry_axis == "Y" and not state.homed_y):
-                            logger.error(f"{retry_axis} axis homing retry failed")
+                    logger.warning(f"Did not receive all homing messages (X:{state.homed_x}, Y:{state.homed_y}), unlocking and continuing...")
+                    # Unlock machine to clear any alarm state
+                    state.conn.send("$X\n")
+                    time.sleep(0.5)
 
                 # Wait for idle state after $H
                 logger.info("Waiting for device to reach idle state after $H...")