From b26b9fbbd0e31bba5761e005ff822e4b820e1d7c Mon Sep 17 00:00:00 2001 From: Ben Date: Fri, 10 Apr 2026 22:49:30 -0500 Subject: [PATCH] Fix: Drone Tab crash on startup and takeoff without connection --- GUI5.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/GUI5.py b/GUI5.py index 9b688328..a2096a0f 100644 --- a/GUI5.py +++ b/GUI5.py @@ -156,6 +156,7 @@ def __init__(self): self.tello = Tello(retry_count=1) except Exception as e: print(f"Warning: Failed to initialize Tello drone: {e}") + self.tello = None self.logMessage.emit(f"Warning: Failed to initialize Tello drone: {e}") # Initialize camera controller with tello instance @@ -206,13 +207,18 @@ def _drone_loop(self): finally: self.cmd_queue.task_done() - @Slot() - def takeoff(self): - self.tello.takeoff() - self.connected = True - self.is_flying = True - self.hover_timer.start(200) #every 200 ms, the hover callback will be invoked - self.logMessage.emit("Hovering") + @Slot() +def takeoff(self): + if not self.connected or self.tello is None: + self.logMessage.emit("Drone not connected. Please connect first.") + self.flight_log.insert(0, "Takeoff failed: Drone not connected") + self.flightLogUpdated.emit(self.flight_log) + return + self.tello.takeoff() + self.connected = True + self.is_flying = True + self.hover_timer.start(200) #every 200 ms, the hover callback will be invoked + self.logMessage.emit("Hovering") def hover_callback(self): if self.is_flying: