Merge branch 'some-additions'
export reference png added
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from python_app.gui.preprocess_dialog import PreprocessDialog
|
||||
from python_app.gui.trace_png_export import export_trace_png
|
||||
from python_app.orchestration.preprocess_assets import (
|
||||
PREPROCESS_ASSET_SPECS,
|
||||
VISIBLE_PREPROCESS_ASSET_KEYS,
|
||||
@@ -701,6 +702,12 @@ class AppWindowPreprocessMixin:
|
||||
f"{display_name} sequence completed and saved: set={set_name}, "
|
||||
f"radar_variants={len(saved_sets)} [{saved_summary}]"
|
||||
)
|
||||
self._export_multi_radar_preview_pngs(
|
||||
session=session,
|
||||
saved_sets=saved_sets,
|
||||
kind=kind,
|
||||
set_name=set_name,
|
||||
)
|
||||
else:
|
||||
dialog.set_status(f"{display_name} set saved: {set_name} ({len(collection.traces)} traces)")
|
||||
self._log(f"{display_name} sequence completed and saved: set={set_name}, key={radar_key}")
|
||||
@@ -708,6 +715,50 @@ class AppWindowPreprocessMixin:
|
||||
except Exception as exc: # noqa: BLE001
|
||||
self._show_exception("Failed to save preprocess set", exc)
|
||||
|
||||
def _export_multi_radar_preview_pngs(
|
||||
self,
|
||||
*,
|
||||
session: MultiRadarSequentialCaptureSession,
|
||||
saved_sets: list,
|
||||
kind: str,
|
||||
set_name: str,
|
||||
) -> None:
|
||||
"""Save amplitude/phase PNGs for every captured combo across all radar configs.
|
||||
|
||||
The live preview only shows one trace per config, so this persists a graph for
|
||||
every config and every combo (port) under the store's ``preview_png/`` tree.
|
||||
Iterating per config over its full trace set (not the per-batch preview trace)
|
||||
is what makes matrix radars save all ports instead of only the last one. The
|
||||
set is already saved by the time we get here, so any rendering failure is
|
||||
logged but never aborts the save.
|
||||
"""
|
||||
channel = preprocess_asset_channel(kind)
|
||||
display_name = preprocess_asset_display_name(kind)
|
||||
saved_count = 0
|
||||
for saved in saved_sets:
|
||||
for trace in session.traces_for_radar_key(saved.radar_key):
|
||||
combo_label = f"input={trace.combo.input} output={trace.combo.output}"
|
||||
try:
|
||||
png_path = self._store.preview_png_dir(kind, set_name, saved.radar_key) / (
|
||||
f"i{trace.combo.input}_o{trace.combo.output}.png"
|
||||
)
|
||||
export_trace_png(
|
||||
trace,
|
||||
png_path,
|
||||
channel=channel,
|
||||
title=f"{display_name} | {saved.display_name} | {combo_label}",
|
||||
)
|
||||
saved_count += 1
|
||||
except Exception as exc: # noqa: BLE001
|
||||
self._log(
|
||||
f"Failed to save preview PNG for {saved.display_name} ({combo_label}): {exc}"
|
||||
)
|
||||
if saved_count and saved_sets:
|
||||
png_root = self._store.preview_png_dir(kind, set_name, saved_sets[0].radar_key).parent
|
||||
self._log(
|
||||
f"Saved {saved_count} preview PNG(s) for {len(saved_sets)} radar config(s) under {png_root}"
|
||||
)
|
||||
|
||||
def _abort_capture_sequence(self, *, resume_pipeline: bool = True) -> None:
|
||||
"""Abort active capture session and optionally resume pipeline."""
|
||||
if self._capture_session is None:
|
||||
|
||||
Reference in New Issue
Block a user