Skip to content

v0.3.45

Choose a tag to compare

@github-actions github-actions released this 25 Aug 09:06
· 17 commits to main since this release
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>