This commit is contained in:
awe
2026-03-12 18:09:44 +03:00
parent f02de1c3d0
commit 5054f8d3d7
5 changed files with 144 additions and 29 deletions

View File

@ -205,7 +205,11 @@ def run_pyqtgraph(args) -> None:
bg_compute_cb = QtWidgets.QCheckBox("расчет фона")
bg_subtract_cb = QtWidgets.QCheckBox("вычет фона")
fft_bg_subtract_cb = QtWidgets.QCheckBox("FFT вычет фона")
fft_symmetric_cb = QtWidgets.QCheckBox("симм. IFFT")
fft_mode_label = QtWidgets.QLabel("IFFT режим")
fft_mode_combo = QtWidgets.QComboBox()
fft_mode_combo.addItem("Обычный", "direct")
fft_mode_combo.addItem("Симметричный", "symmetric")
fft_mode_combo.addItem("Нули [-max,+min]", "positive_only")
peak_search_cb = QtWidgets.QCheckBox("поиск пиков")
calib_group = QtWidgets.QGroupBox("Калибровка")
calib_group_layout = QtWidgets.QVBoxLayout(calib_group)
@ -240,7 +244,8 @@ def run_pyqtgraph(args) -> None:
settings_layout.addWidget(bg_compute_cb)
settings_layout.addWidget(bg_subtract_cb)
settings_layout.addWidget(fft_bg_subtract_cb)
settings_layout.addWidget(fft_symmetric_cb)
settings_layout.addWidget(fft_mode_label)
settings_layout.addWidget(fft_mode_combo)
settings_layout.addWidget(peak_search_cb)
status = pg.LabelItem(justify="left")
@ -250,7 +255,7 @@ def run_pyqtgraph(args) -> None:
bg_compute_enabled = True
bg_subtract_enabled = False
fft_bg_subtract_enabled = False
fft_symmetric_enabled = True
fft_mode = "symmetric"
status_note = ""
status_dirty = True
fixed_ylim: Optional[Tuple[float, float]] = None
@ -444,26 +449,31 @@ def run_pyqtgraph(args) -> None:
fft_bg_subtract_enabled = False
runtime.mark_dirty()
def set_fft_symmetric_enabled() -> None:
nonlocal fft_symmetric_enabled
def set_fft_mode() -> None:
nonlocal fft_mode
try:
fft_symmetric_enabled = bool(fft_symmetric_cb.isChecked())
fft_mode = str(fft_mode_combo.currentData() or "symmetric")
except Exception:
fft_symmetric_enabled = True
runtime.ring.set_symmetric_fft_enabled(fft_symmetric_enabled)
fft_mode = "symmetric"
runtime.ring.set_fft_mode(fft_mode)
runtime.current_distances = runtime.ring.distance_axis
runtime.current_fft_db = None
set_status_note("IFFT: симметричный" if fft_symmetric_enabled else "IFFT: обычный")
mode_label = {
"direct": "IFFT: обычный",
"symmetric": "IFFT: симметричный",
"positive_only": "IFFT: нули [-max,+min]",
}.get(fft_mode, f"IFFT: {fft_mode}")
set_status_note(mode_label)
update_physical_axes()
runtime.mark_dirty()
try:
bg_compute_cb.setChecked(True)
fft_symmetric_cb.setChecked(True)
fft_mode_combo.setCurrentIndex(1)
except Exception:
pass
set_bg_compute_enabled()
set_fft_symmetric_enabled()
set_fft_mode()
try:
calib_cb.stateChanged.connect(lambda _v: set_calib_enabled())
@ -473,7 +483,7 @@ def run_pyqtgraph(args) -> None:
bg_compute_cb.stateChanged.connect(lambda _v: set_bg_compute_enabled())
bg_subtract_cb.stateChanged.connect(lambda _v: set_bg_subtract_enabled())
fft_bg_subtract_cb.stateChanged.connect(lambda _v: set_fft_bg_subtract_enabled())
fft_symmetric_cb.stateChanged.connect(lambda _v: set_fft_symmetric_enabled())
fft_mode_combo.currentIndexChanged.connect(lambda _v: set_fft_mode())
except Exception:
pass
@ -768,7 +778,7 @@ def run_pyqtgraph(args) -> None:
sweep_for_fft,
runtime.current_freqs,
distance_axis.size,
symmetric=fft_symmetric_enabled,
mode=fft_mode,
)
fft_vals = runtime.current_fft_db
xs_fft = distance_axis[: fft_vals.size]