1.8 KiB
1.8 KiB
Потоки данных runtime
1. Непрерывный acquisition pipeline
AppWindowPipelineMixin._start_run()строитRunConfigModelиз UI.ConfigWriterпишет runtime config и bundles calibration/reference.ProcessSupervisorзапускает:data_processordata_preprocessorsweep_orchestrator
- GUI открывает
ShmRingReaderдля:- raw tap
- preprocessed tap
- results
- Таймер GUI (
QTimer) вызывает_poll_rings():- чтение raw/preprocessed/results
- запись в history deques
- рендер либо trace-lines, либо B-scan heatmap.
2. B-scan path
- Источник:
preprocessedhistory ring. - Кэш-сигнатура:
build_bscan_signature()учитывает live-параметры и tail history. - Ребилд:
rebuild_bscan_history_from_preprocessed()+compute_bscan_profile(). - Рендер:
ImageItemс LUT и уровнями (bscan_lookup_table,bscan_levels).
3. Single capture path
_start_single_capture()запускает pipeline в non-continuous режиме.- GUI ждет collection после стартового timestamp и валидного trace payload.
- По завершении выполняется
_stop_run().
4. Snapshot path
AppWindowSnapshotMixin._save_snapshot()предварительно дренирует ring buffers.NpzStore.save_runtime_snapshot_numpy():- выбирает aligned histories (
select_aligned_histories), - пишет
raw/preprocessed/results+manifest.json.
- выбирает aligned histories (
5. Failure handling
- Process crashes читаются через
ProcessSupervisor.collect_crash_reports(). - Reader/parsing errors логируются в GUI runtime log.
- Hardware/validation errors показываются через
_show_error()и лог.