优化日志显示
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
"""
|
||||
"""
|
||||
PQ 单步调试面板
|
||||
支持屏模组、SDR、HDR 三种测试类型的单步调试功能
|
||||
"""
|
||||
@@ -34,7 +34,7 @@ class PQDebugPanel:
|
||||
# 原始测试数据(用于对比)
|
||||
self.original_data = {}
|
||||
|
||||
# ==================== ✅ 创建主容器并自动 pack ====================
|
||||
# ==================== 创建主容器并自动 pack ====================
|
||||
self.main_container = ttk.Frame(parent)
|
||||
self.main_container.pack(fill=tk.BOTH, expand=True)
|
||||
|
||||
@@ -600,13 +600,13 @@ class PQDebugPanel:
|
||||
|
||||
if test_type == "screen_module":
|
||||
self.screen_frame.pack(fill=tk.BOTH, expand=True)
|
||||
self.app.log_gui.log("✓ 显示屏模组调试面板")
|
||||
self.app.log_gui.log("显示屏模组调试面板", level="success")
|
||||
elif test_type == "sdr_movie":
|
||||
self.sdr_frame.pack(fill=tk.BOTH, expand=True)
|
||||
self.app.log_gui.log("✓ 显示 SDR 调试面板")
|
||||
self.app.log_gui.log("显示 SDR 调试面板", level="success")
|
||||
elif test_type == "hdr_movie":
|
||||
self.hdr_frame.pack(fill=tk.BOTH, expand=True)
|
||||
self.app.log_gui.log("✓ 显示 HDR 调试面板")
|
||||
self.app.log_gui.log("显示 HDR 调试面板", level="success")
|
||||
|
||||
# ==================== 启用/禁用控制 ====================
|
||||
|
||||
@@ -631,39 +631,39 @@ class PQDebugPanel:
|
||||
if test_item == "gamma":
|
||||
self.screen_gray_combo.config(state="readonly")
|
||||
self.screen_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ 屏模组 Gamma 单步调试已启用")
|
||||
self.app.log_gui.log("屏模组 Gamma 单步调试已启用", level="success")
|
||||
elif test_item == "rgb":
|
||||
self.screen_rgb_combo.config(state="readonly")
|
||||
self.screen_rgb_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ 屏模组 RGB 单步调试已启用")
|
||||
self.app.log_gui.log("屏模组 RGB 单步调试已启用", level="success")
|
||||
|
||||
elif test_type == "sdr_movie":
|
||||
if test_item == "gamma":
|
||||
self.sdr_gray_combo.config(state="readonly")
|
||||
self.sdr_gamma_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ SDR Gamma 单步调试已启用")
|
||||
self.app.log_gui.log("SDR Gamma 单步调试已启用", level="success")
|
||||
elif test_item == "accuracy":
|
||||
self.sdr_color_combo.config(state="readonly")
|
||||
self.sdr_accuracy_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ SDR 色准单步调试已启用")
|
||||
self.app.log_gui.log("SDR 色准单步调试已启用", level="success")
|
||||
elif test_item == "rgb":
|
||||
self.sdr_rgb_combo.config(state="readonly")
|
||||
self.sdr_rgb_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ SDR RGB 单步调试已启用")
|
||||
self.app.log_gui.log("SDR RGB 单步调试已启用", level="success")
|
||||
|
||||
elif test_type == "hdr_movie":
|
||||
if test_item == "eotf":
|
||||
self.hdr_gray_combo.config(state="readonly")
|
||||
self.hdr_eotf_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ HDR EOTF 单步调试已启用")
|
||||
self.app.log_gui.log("HDR EOTF 单步调试已启用", level="success")
|
||||
elif test_item == "accuracy":
|
||||
self.hdr_color_combo.config(state="readonly")
|
||||
self.hdr_accuracy_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ HDR 色准单步调试已启用")
|
||||
self.app.log_gui.log("HDR 色准单步调试已启用", level="success")
|
||||
elif test_item == "rgb":
|
||||
self.hdr_rgb_combo.config(state="readonly")
|
||||
self.hdr_rgb_test_btn.config(state=tk.NORMAL)
|
||||
self.app.log_gui.log("✓ HDR RGB 单步调试已启用")
|
||||
self.app.log_gui.log("HDR RGB 单步调试已启用", level="success")
|
||||
|
||||
def disable_all_debug(self):
|
||||
"""禁用所有单步调试(新测试开始时调用)"""
|
||||
@@ -759,11 +759,11 @@ class PQDebugPanel:
|
||||
def _run_single_step_thread(self, test_type, test_item, selected):
|
||||
"""单步测试线程"""
|
||||
try:
|
||||
self.app.log_gui.log("=" * 50)
|
||||
self.app.log_gui.log("=" * 50, level="info")
|
||||
self.app.log_gui.log(
|
||||
f"开始单步调试: {test_type} - {test_item} - {selected}"
|
||||
)
|
||||
self.app.log_gui.log("=" * 50)
|
||||
, level="info")
|
||||
self.app.log_gui.log("=" * 50, level="info")
|
||||
|
||||
# 禁用按钮
|
||||
self._disable_test_button(test_type, test_item)
|
||||
@@ -796,9 +796,9 @@ class PQDebugPanel:
|
||||
x, y, lv, X, Y, Z = self.app.ca.readAllDisplay()
|
||||
|
||||
self.app.log_gui.log(
|
||||
f"✓ 测量完成: x={x:.4f}, y={y:.4f}, lv={lv:.2f}, "
|
||||
f"测量完成: x={x:.4f}, y={y:.4f}, lv={lv:.2f}, "
|
||||
f"X={X:.4f}, Y={Y:.4f}, Z={Z:.4f}"
|
||||
)
|
||||
, level="success")
|
||||
|
||||
# 对比数据
|
||||
self._compare_and_display(
|
||||
@@ -809,10 +809,10 @@ class PQDebugPanel:
|
||||
self._enable_test_button(test_type, test_item)
|
||||
|
||||
except Exception as e:
|
||||
self.app.log_gui.log(f"❌ 单步测试失败: {str(e)}")
|
||||
self.app.log_gui.log(f"[Error] 单步测试失败: {str(e)}", level="error")
|
||||
import traceback
|
||||
|
||||
self.app.log_gui.log(traceback.format_exc())
|
||||
self.app.log_gui.log(traceback.format_exc(), level="error")
|
||||
self._enable_test_button(test_type, test_item)
|
||||
|
||||
def _setup_signal_format(self, test_type):
|
||||
@@ -842,7 +842,7 @@ class PQDebugPanel:
|
||||
# 获取原始数据
|
||||
key = f"{test_type}_{test_item}"
|
||||
if key not in self.original_data:
|
||||
self.app.log_gui.log("⚠️ 未找到原始测试数据")
|
||||
self.app.log_gui.log("未找到原始测试数据", level="error")
|
||||
return
|
||||
|
||||
original_data_list = self.original_data[key]
|
||||
@@ -856,12 +856,12 @@ class PQDebugPanel:
|
||||
index = self.get_rgb_index(selected)
|
||||
|
||||
if index >= len(original_data_list):
|
||||
self.app.log_gui.log(f"⚠️ 索引超出范围: {index}")
|
||||
self.app.log_gui.log(f"索引超出范围: {index}", level="error")
|
||||
return
|
||||
|
||||
original_data = original_data_list[index]
|
||||
|
||||
# ==================== ✅ 构建对比数据 ====================
|
||||
# ==================== 构建对比数据 ====================
|
||||
comparison = {}
|
||||
|
||||
if test_item == "gamma":
|
||||
@@ -1140,57 +1140,57 @@ class PQDebugPanel:
|
||||
def _get_delta_e_from_results(self, test_type, color_name):
|
||||
"""从原始测试结果中读取 ΔE 值"""
|
||||
try:
|
||||
self.app.log_gui.log(f"[读取 ΔE] 开始:")
|
||||
self.app.log_gui.log(f" test_type = {test_type}")
|
||||
self.app.log_gui.log(f" color_name = {color_name}")
|
||||
self.app.log_gui.log(f"[读取 ΔE] 开始:", level="info")
|
||||
self.app.log_gui.log(f" test_type = {test_type}", level="info")
|
||||
self.app.log_gui.log(f" color_name = {color_name}", level="info")
|
||||
|
||||
# ✅ 正确的访问方式:通过 test_items
|
||||
# 正确的访问方式:通过 test_items
|
||||
if "accuracy" not in self.app.results.test_items:
|
||||
self.app.log_gui.log(" ✗ 未找到 accuracy 测试项")
|
||||
self.app.log_gui.log("[Error] 未找到 accuracy 测试项", level="error")
|
||||
return 0.0
|
||||
|
||||
test_item = self.app.results.test_items["accuracy"]
|
||||
accuracy_result = test_item.final_result
|
||||
|
||||
self.app.log_gui.log(f" accuracy_result = {accuracy_result is not None}")
|
||||
self.app.log_gui.log(f" accuracy_result = {accuracy_result is not None}", level="info")
|
||||
|
||||
if not accuracy_result:
|
||||
self.app.log_gui.log(" ✗ accuracy_result 为空")
|
||||
self.app.log_gui.log("[Error] accuracy_result 为空", level="error")
|
||||
return 0.0
|
||||
|
||||
# 获取色块名称列表和 ΔE 值列表
|
||||
color_patches = accuracy_result.get("color_patches", [])
|
||||
delta_e_values = accuracy_result.get("delta_e_values", [])
|
||||
|
||||
self.app.log_gui.log(f" color_patches 数量: {len(color_patches)}")
|
||||
self.app.log_gui.log(f" delta_e_values 数量: {len(delta_e_values)}")
|
||||
self.app.log_gui.log(f" color_patches 数量: {len(color_patches)}", level="info")
|
||||
self.app.log_gui.log(f" delta_e_values 数量: {len(delta_e_values)}", level="info")
|
||||
|
||||
if color_patches:
|
||||
self.app.log_gui.log(f" 前3个色块: {color_patches[:3]}")
|
||||
self.app.log_gui.log(f" 前3个色块: {color_patches[:3]}", level="info")
|
||||
if delta_e_values:
|
||||
self.app.log_gui.log(f" 前3个ΔE: {delta_e_values[:3]}")
|
||||
self.app.log_gui.log(f" 前3个ΔE: {delta_e_values[:3]}", level="info")
|
||||
|
||||
# 查找对应色块的索引
|
||||
try:
|
||||
index = color_patches.index(color_name)
|
||||
delta_e = delta_e_values[index]
|
||||
self.app.log_gui.log(
|
||||
f" ✓ 找到 {color_name}: index={index}, ΔE={delta_e:.2f}"
|
||||
)
|
||||
f" 找到 {color_name}: index={index}, ΔE={delta_e:.2f}"
|
||||
, level="success")
|
||||
return delta_e
|
||||
except ValueError:
|
||||
self.app.log_gui.log(f" ✗ 未找到色块 '{color_name}'")
|
||||
self.app.log_gui.log(f" 可用色块: {color_patches}")
|
||||
self.app.log_gui.log(f"[Error] 未找到色块 '{color_name}'", level="error")
|
||||
self.app.log_gui.log(f" 可用色块: {color_patches}", level="info")
|
||||
return 0.0
|
||||
except IndexError:
|
||||
self.app.log_gui.log(f" ✗ 索引超出范围: {index}/{len(delta_e_values)}")
|
||||
self.app.log_gui.log(f"[Error] 索引超出范围: {index}/{len(delta_e_values)}", level="error")
|
||||
return 0.0
|
||||
|
||||
except Exception as e:
|
||||
self.app.log_gui.log(f"⚠️ 读取 ΔE 失败: {str(e)}")
|
||||
self.app.log_gui.log(f"读取 ΔE 失败: {str(e)}", level="error")
|
||||
import traceback
|
||||
|
||||
self.app.log_gui.log(traceback.format_exc())
|
||||
self.app.log_gui.log(traceback.format_exc(), level="error")
|
||||
return 0.0
|
||||
|
||||
def _calculate_delta_e_for_color(
|
||||
@@ -1215,5 +1215,5 @@ class PQDebugPanel:
|
||||
return delta_e
|
||||
|
||||
except Exception as e:
|
||||
self.app.log_gui.log(f"⚠️ 计算 ΔE 失败: {str(e)}")
|
||||
self.app.log_gui.log(f"计算 ΔE 失败: {str(e)}", level="error")
|
||||
return 0.0
|
||||
|
||||
Reference in New Issue
Block a user