From b37be91922274fbea1aa8a4190a6a02befcec19e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E5=96=B5?= Date: Wed, 1 Jul 2026 15:31:03 +0800 Subject: [PATCH] =?UTF-8?q?2026.7.1=E7=AE=80=E5=8C=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=B8=8E=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.json | 7 +++++++ infer_camera_modular.py | 14 ++++++++++++-- run_mission.py | 9 +++++---- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/config.json b/config.json index 5cb1d9c..f369837 100644 --- a/config.json +++ b/config.json @@ -32,6 +32,13 @@ "enabled": true, "tcp_port": 9999 }, + "missions": { + "target_altitude": 3.0, + "arrival_radius": 0.3, + "hold_duration": 8.0, + "return_to_home": false, + "target_lost_timeout": null + }, "log": { "enable_flight_log": true, "flight_log_interval": 20, diff --git a/infer_camera_modular.py b/infer_camera_modular.py index 7f9863f..b6e5b7f 100644 --- a/infer_camera_modular.py +++ b/infer_camera_modular.py @@ -223,12 +223,13 @@ class VideoStreaming: pass def _udp_stream_sender_worker(self): - """ 原图传发送线程(增加帧统计日志) """ + """ 原图传发送线程(异常降噪:首次报错后静默,恢复时输出日志) """ sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server_address = (self.gs_ip, self.udp_port) self.logger.info("图传后台线程已启动,目标地面站 -> %s:%s", self.gs_ip, self.udp_port) send_count = 0 + tx_error_reported = False # 标记当前是否处于异常状态,避免刷屏 while self.is_running: try: @@ -244,13 +245,22 @@ class VideoStreaming: self.logger.debug("图像数据过大 (%d bytes), 跳过发送", len(data)) continue sock.sendto(data, server_address) + + # ---- 发送成功:若之前处于异常状态,输出恢复日志 ---- + if tx_error_reported: + tx_error_reported = False + self.logger.info("✅ 图传已恢复: %s:%s", self.gs_ip, self.udp_port) + send_count += 1 if send_count % 100 == 0: self.logger.info("图传统计: 已发送 %d 帧 UDP 数据包", send_count) + except queue.Empty: continue except Exception as e: - self.logger.exception("图传线程异常: %s", e) + if not tx_error_reported: + tx_error_reported = True + self.logger.error("图传异常: %s (后续同类错误静默,恢复后输出日志)", e) time.sleep(0.1) sock.close() diff --git a/run_mission.py b/run_mission.py index 66c4c3b..693381a 100644 --- a/run_mission.py +++ b/run_mission.py @@ -119,13 +119,14 @@ class MissionOrchestrator: self.proxy.set_waypoints_callback(self._on_qgc_waypoints) + missions = cfg["missions"] self.mission = MissionManager( proxy=self.proxy, waypoints=self.waypoints, - target_altitude=3.0, - arrival_radius=0.3, - hold_duration=8.0, - return_to_home=False, + target_altitude=missions.get("target_altitude", 3.0), + arrival_radius=missions.get("arrival_radius", 0.3), + hold_duration=missions.get("hold_duration", 5.0), + return_to_home=missions.get("return_to_home", True), ) # ================================================================