You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(rig): throttle satmode in-TX UL writes to a 1s floor (#26)
_tracking_through_tx() tightened the satmode crossband UL threshold to
1 Hz during FT4/Q65 TX, but that crossed almost every DopplerWorker
cycle in practice (~3 writes/second measured on IC-9700), and each
Sub-VFO write takes ~200-260ms -- occupying ~75-80% of a transmission's
wall-clock time and starving _TxWorker's audio callback thread (the
underlying cause of the "stretched TX" symptom). Replaced the delta
threshold with a flat 1s minimum interval between in-TX UL writes,
cutting that CAT traffic to ~25% of the transmission's duration. At
typical Doppler rates for these satellites (a few Hz/s) this only
costs a few Hz of in-burst drift; only right at TCA on a fast
high-elevation UHF pass (~170 Hz/s) would this reintroduce a
noticeable step, which is an accepted trade-off given the constraints
of this rig class (confirmed with the user).
_flush_pending_frequencies() (the pre-TX correction that primes the
carrier before keying) now resets _last_ul_update_time to 0 first, so
the new 1s floor can never suppress that one-off write -- without it,
flushing a UL value written less than a second earlier would silently
no-op, defeating its purpose.
Updated TestPreTxUplinkFlush's TX-tracking test for the new floor-based
behavior (a small in-TX delta no longer reaches the rig immediately;
it does once >=1s has elapsed) and added a companion test asserting
suppression before the floor elapses.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>