修复切换config后异常显示pattern问题
This commit is contained in:
@@ -309,9 +309,26 @@ def send_fix_pattern(self, mode):
|
||||
|
||||
self.log_gui.log("=" * 50, level="separator")
|
||||
|
||||
# 信号格式设置后等待电视重新锁定 HDMI 信号
|
||||
# format_changed=True 表示本次 set_video_mode 的参数与上次不同,TV 需要重新锁定
|
||||
format_changed = getattr(getattr(self, "ucd", None), "format_changed", True)
|
||||
# 判定信号是否变化(决定 settle 长度)。
|
||||
# - SDR/HDR:prepare_session 内部已调用 ``apply_signal_format`` → ``set_video_mode``,
|
||||
# 此时 ``format_changed`` 反映本次 vs 上次的差异,可直接读取。
|
||||
# - screen_module:prepare_session 只 stage 了 color_info/timing,未调用
|
||||
# ``set_video_mode``,``format_changed`` 仍是上次测试的陈旧值,按"潜在变化"处理。
|
||||
# 注意:必须在 prime 提交之前读取,否则 prime 的 set_video_mode 会拿当次
|
||||
# 参数与刚写入的 ``_last_sent_config`` 比对,得到 False,把这个标志覆盖掉。
|
||||
if mode == "screen_module":
|
||||
format_changed = True
|
||||
else:
|
||||
format_changed = bool(
|
||||
getattr(getattr(self, "ucd", None), "format_changed", True)
|
||||
)
|
||||
|
||||
# 预热提交:prepare_session 仅 stage 了新的 color/timing/pattern,
|
||||
# 真正的 ``pg.apply()`` 要到第一次发图时才发生。提前发送首个 pattern,
|
||||
# 让 TV 在 signal_settle 期间就开始重新锁定信号;
|
||||
# 否则前 1~2 个 pattern 会落在 TV 锁定窗口里导致测量错误。
|
||||
self.pattern_service.send_session_pattern(session, 0)
|
||||
|
||||
if format_changed:
|
||||
signal_settle = max(1.0, float(getattr(self, "signal_settle_time", 5.0)))
|
||||
self.log_gui.log(
|
||||
@@ -355,6 +372,11 @@ def send_fix_pattern(self, mode):
|
||||
else:
|
||||
self.log_gui.log(f"发送第 {i+1}/{total_patterns} 个图案...", level="info")
|
||||
|
||||
# 首图已在 prime 阶段发送并经 signal_settle 稳定,无需重发也无需再等
|
||||
# settle_time;后续 pattern 走正常发图 + 等待。
|
||||
if i == 0:
|
||||
pass
|
||||
else:
|
||||
self.pattern_service.send_session_pattern(session, i)
|
||||
time.sleep(settle_time)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"current_test_type": "sdr_movie",
|
||||
"current_test_type": "screen_module",
|
||||
"test_types": {
|
||||
"screen_module": {
|
||||
"name": "屏模组性能测试",
|
||||
@@ -9,7 +9,7 @@
|
||||
"cct",
|
||||
"contrast"
|
||||
],
|
||||
"timing": "DMT 1600x 1200 @ 60Hz",
|
||||
"timing": "OVT 1280x 720 @ 120Hz",
|
||||
"color_format": "RGB",
|
||||
"bpc": 8,
|
||||
"colorimetry": "sRGB",
|
||||
|
||||
Reference in New Issue
Block a user