修改AI生图接口、修改设备连接UI、修改LocalDimming逻辑和UI
This commit is contained in:
@@ -181,6 +181,134 @@ def _send_ld_image(self: "PQAutomationApp", image_path):
|
||||
self.signal_service.send_image(image_path)
|
||||
|
||||
|
||||
def _apply_ld_ucd_params(self: "PQAutomationApp") -> bool:
|
||||
"""发送 Local Dimming 图案前,按当前测试类型写入 UCD 参数。"""
|
||||
test_type = getattr(self.config, "current_test_type", "screen_module")
|
||||
cfg = self.config.current_test_types.get(test_type, {})
|
||||
|
||||
try:
|
||||
self.signal_service.apply_config(self.config)
|
||||
|
||||
if test_type == "screen_module":
|
||||
ok = self.signal_service.update_signal_format(
|
||||
color_space=(
|
||||
self.screen_module_color_space_var.get()
|
||||
if hasattr(self, "screen_module_color_space_var")
|
||||
else cfg.get("colorimetry", "sRGB")
|
||||
),
|
||||
data_range=(
|
||||
self.screen_module_data_range_var.get()
|
||||
if hasattr(self, "screen_module_data_range_var")
|
||||
else cfg.get("data_range", "Full")
|
||||
),
|
||||
bit_depth=(
|
||||
self.screen_module_bit_depth_var.get()
|
||||
if hasattr(self, "screen_module_bit_depth_var")
|
||||
else f"{int(cfg.get('bpc', 8))}bit"
|
||||
),
|
||||
output_format=(
|
||||
self.screen_module_output_format_var.get()
|
||||
if hasattr(self, "screen_module_output_format_var")
|
||||
else cfg.get("color_format", "RGB")
|
||||
),
|
||||
)
|
||||
elif test_type == "sdr_movie":
|
||||
ok = self.signal_service.update_signal_format(
|
||||
color_space=(
|
||||
self.sdr_color_space_var.get()
|
||||
if hasattr(self, "sdr_color_space_var")
|
||||
else cfg.get("colorimetry", "sRGB")
|
||||
),
|
||||
data_range=(
|
||||
self.sdr_data_range_var.get()
|
||||
if hasattr(self, "sdr_data_range_var")
|
||||
else cfg.get("data_range", "Full")
|
||||
),
|
||||
bit_depth=(
|
||||
self.sdr_bit_depth_var.get()
|
||||
if hasattr(self, "sdr_bit_depth_var")
|
||||
else f"{int(cfg.get('bpc', 8))}bit"
|
||||
),
|
||||
output_format=(
|
||||
self.sdr_output_format_var.get()
|
||||
if hasattr(self, "sdr_output_format_var")
|
||||
else cfg.get("color_format", "RGB")
|
||||
),
|
||||
)
|
||||
elif test_type == "hdr_movie":
|
||||
ok = self.signal_service.update_signal_format(
|
||||
color_space=(
|
||||
self.hdr_color_space_var.get()
|
||||
if hasattr(self, "hdr_color_space_var")
|
||||
else cfg.get("colorimetry", "sRGB")
|
||||
),
|
||||
data_range=(
|
||||
self.hdr_data_range_var.get()
|
||||
if hasattr(self, "hdr_data_range_var")
|
||||
else cfg.get("data_range", "Full")
|
||||
),
|
||||
bit_depth=(
|
||||
self.hdr_bit_depth_var.get()
|
||||
if hasattr(self, "hdr_bit_depth_var")
|
||||
else f"{int(cfg.get('bpc', 8))}bit"
|
||||
),
|
||||
output_format=(
|
||||
self.hdr_output_format_var.get()
|
||||
if hasattr(self, "hdr_output_format_var")
|
||||
else cfg.get("color_format", "RGB")
|
||||
),
|
||||
max_cll=(
|
||||
self.hdr_maxcll_var.get()
|
||||
if hasattr(self, "hdr_maxcll_var")
|
||||
else None
|
||||
),
|
||||
max_fall=(
|
||||
self.hdr_maxfall_var.get()
|
||||
if hasattr(self, "hdr_maxfall_var")
|
||||
else None
|
||||
),
|
||||
)
|
||||
elif test_type == "local_dimming":
|
||||
ok = self.signal_service.update_signal_format(
|
||||
color_space=(
|
||||
self.local_dimming_color_space_var.get()
|
||||
if hasattr(self, "local_dimming_color_space_var")
|
||||
else cfg.get("colorimetry", "sRGB")
|
||||
),
|
||||
data_range=(
|
||||
self.local_dimming_data_range_var.get()
|
||||
if hasattr(self, "local_dimming_data_range_var")
|
||||
else cfg.get("data_range", "Full")
|
||||
),
|
||||
bit_depth=(
|
||||
self.local_dimming_bit_depth_var.get()
|
||||
if hasattr(self, "local_dimming_bit_depth_var")
|
||||
else f"{int(cfg.get('bpc', 8))}bit"
|
||||
),
|
||||
output_format=(
|
||||
self.local_dimming_output_format_var.get()
|
||||
if hasattr(self, "local_dimming_output_format_var")
|
||||
else cfg.get("color_format", "RGB")
|
||||
),
|
||||
)
|
||||
else:
|
||||
self._dispatch_ui(
|
||||
self.log_gui.log,
|
||||
f"Local Dimming 不支持的测试类型: {test_type}",
|
||||
"error",
|
||||
)
|
||||
return False
|
||||
|
||||
if not ok:
|
||||
self._dispatch_ui(self.log_gui.log, "Local Dimming UCD 参数设置失败", "error")
|
||||
return False
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
self._dispatch_ui(self.log_gui.log, f"Local Dimming UCD 参数设置异常: {e}", "error")
|
||||
return False
|
||||
|
||||
|
||||
def _run_ld_measurement_step(self: "PQAutomationApp", width, height, wait_time, step, log):
|
||||
label = step["label"]
|
||||
test_item = step["test_item"]
|
||||
@@ -270,6 +398,8 @@ def send_ld_window(self: "PQAutomationApp", percentage):
|
||||
_set_current_ld_pattern(self, "峰值亮度", f"{percentage}%窗口", percentage)
|
||||
|
||||
def send():
|
||||
if not _apply_ld_ucd_params(self):
|
||||
return
|
||||
width, height = self.signal_service.current_resolution()
|
||||
try:
|
||||
image_path = _ensure_window_image(width, height, percentage)
|
||||
@@ -301,6 +431,8 @@ def send_ld_checkerboard(self: "PQAutomationApp", center_white):
|
||||
_set_current_ld_pattern(self, "棋盘格对比度", pattern_label)
|
||||
|
||||
def send():
|
||||
if not _apply_ld_ucd_params(self):
|
||||
return
|
||||
width, height = self.signal_service.current_resolution()
|
||||
try:
|
||||
image_path = _ensure_checkerboard_image(
|
||||
@@ -335,6 +467,8 @@ def send_ld_black_pattern(self: "PQAutomationApp"):
|
||||
_set_current_ld_pattern(self, "黑电平", "全黑画面")
|
||||
|
||||
def send():
|
||||
if not _apply_ld_ucd_params(self):
|
||||
return
|
||||
width, height = self.signal_service.current_resolution()
|
||||
try:
|
||||
image_path = _ensure_solid_image(width, height, (0, 0, 0), "black")
|
||||
@@ -370,6 +504,8 @@ def send_ld_instant_peak(self: "PQAutomationApp"):
|
||||
)
|
||||
|
||||
def send():
|
||||
if not _apply_ld_ucd_params(self):
|
||||
return
|
||||
width, height = self.signal_service.current_resolution()
|
||||
try:
|
||||
black_image = _ensure_solid_image(width, height, (0, 0, 0), "black")
|
||||
@@ -397,6 +533,8 @@ def send_ld_instant_peak(self: "PQAutomationApp"):
|
||||
)
|
||||
self._dispatch_ui(self.log_gui.log, msg)
|
||||
|
||||
threading.Thread(target=send, daemon=True).start()
|
||||
|
||||
|
||||
def measure_ld_luminance(self: "PQAutomationApp"):
|
||||
"""测量当前显示的亮度并追加一行到 Treeview。"""
|
||||
|
||||
Reference in New Issue
Block a user