mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
055873a43a2c3d83ecd8529469b03b1ba859367d
The emulator (and real hardware) creates ddc_specific_thread (port 1025), duc_specific_thread (port 1026), and rx_thread[0..3] (ports 1035+) only after receiving HP Run=1. Previously ConfigureDDCs and SendDUCSpecific were sent before SetRunAndFreq(True), so both packets arrived at closed ports and were silently dropped — ddcenable remained -1, rx_thread slept forever, no IQ data ever arrived, and the 5-second timeout fired Run=0. Fix: reorder DoConnectDevice to send Run=1 first, then DDC/DUC Specific. Also add keepalive resend of the cached DDC Specific packet every 500 ms for the first 5 seconds after start, to handle thread-startup races on real hardware over the network. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Languages
Pascal
96.4%
Python
2.9%
Shell
0.6%