fix: 8 button-state bugs + wire radar position into replay for map display
State machine fixes: 1. Raw IQ replay EOF now calls _stop_radar() to fully restore UI 2. Worker thread finished signal triggers UI recovery on crash/exit 3. _stop_radar() stops demo simulator to prevent cross-mode interference 4. _stop_demo() correctly identifies Mock mode via combo text 5. Demo start no longer clobbers status bar when acquisition is running 6. _stop_radar() resets playback button text, frame counter, file label 7. _start_raw_iq_replay() error path cleans up stale controller/worker 8. _refresh_gui() preserves Raw IQ paused status instead of overwriting Map/location: - RawIQReplayWorker now receives _radar_position (GPSData ref) so targets get real lat/lon projected from the virtual radar position - Added heading control to Map tab sidebar (0-360 deg, wrapping) - Manual lat/lon/heading changes in Map tab apply to replay targets Ruff clean, 120/120 tests pass.
This commit is contained in:
@@ -272,6 +272,7 @@ class RawIQReplayWorker(QThread):
|
||||
processor: RawIQFrameProcessor,
|
||||
host_processor: RadarProcessor | None = None,
|
||||
settings: RadarSettings | None = None,
|
||||
gps_data_ref: GPSData | None = None,
|
||||
parent=None,
|
||||
):
|
||||
super().__init__(parent)
|
||||
@@ -279,6 +280,7 @@ class RawIQReplayWorker(QThread):
|
||||
self._processor = processor
|
||||
self._host_processor = host_processor
|
||||
self._settings = settings or RadarSettings()
|
||||
self._gps = gps_data_ref
|
||||
self._running = False
|
||||
self._frame_count = 0
|
||||
self._error_count = 0
|
||||
@@ -358,6 +360,7 @@ class RawIQReplayWorker(QThread):
|
||||
frame,
|
||||
self._settings.range_resolution,
|
||||
self._settings.velocity_resolution,
|
||||
gps=self._gps,
|
||||
)
|
||||
|
||||
# Clustering + tracking
|
||||
|
||||
Reference in New Issue
Block a user