34ecaf360b
Rename radar_dashboard.py -> GUI_V65_Tk.py and add core feature parity with the v7 PyQt dashboard while keeping Tkinter as the framework: Replay mode: - _ReplayController with threading.Event-based play/pause/stop - Reuses v7.ReplayEngine and v7.SoftwareFPGA for all 3 input formats - Dual dispatch routes FPGA control opcodes to SoftwareFPGA during raw IQ replay; non-routable opcodes show user-visible status message - Seek slider with re-emit guard, speed combo, loop checkbox - close() properly releases engine file handles on stop/reload Demo mode: - DemoTarget kinematics scaled to physical range grid (~307m max) - DemoSimulator generates synthetic RadarFrames with Gaussian blobs - Targets table (ttk.Treeview) updates from demo target list Mode exclusion (bidirectional): - Connect stops active demo/replay before starting acquisition - Replay load stops previous controller and demo before loading - Demo start stops active replay; refuses if live-connected - --live/--replay/--demo in mutually exclusive CLI arg group Bug fixes: - seek() now increments past emitted frame to prevent re-emit on resume - Failed replay load nulls controller ref to prevent dangling state Tests: 17 new tests for DemoTarget, DemoSimulator, _ReplayController CI: all 4 jobs pass (167+21+25+29 = 242 tests)
14 lines
685 B
Plaintext
14 lines
685 B
Plaintext
GUI_V1 ==>
|
|
GUI_V2 ==> added STM32 USB CDC
|
|
GUI_V3 ==> added Pitch to STM32 USB Packet and pitch correction to the Elevation
|
|
GUI_V3 ==> Added Google_Map, real time target plot, Chirp duration_2
|
|
GUI_V4 ==> Added pitch correction
|
|
|
|
GUI_V5 ==> Added Mercury Color
|
|
|
|
GUI_V6 ==> Added USB3 FT601 support
|
|
|
|
GUI_V65_Tk ==> Board bring-up dashboard (FT2232H reader, real-time R-D heatmap, CFAR overlay, waterfall, host commands, HDF5 recording, replay, demo mode)
|
|
radar_protocol ==> Protocol layer (packet parsing, command building, FT2232H connection, data recorder, acquisition thread)
|
|
smoke_test ==> Board bring-up smoke test host script (triggers FPGA self-test via opcode 0x30)
|