One way to address the single issue of a SuperFox with mismatched Tx and Rx dial frequencies is this small change to setXIT. My understanding is that, in the SuperFox case, setXIT still must actively set the Tx frequency, because it may often be misconfigured if (for example) normal FT8 had been used after WSJT-X was last started. The setXIT function distributed in 2.7.0-rc7 does not actively set the Tx frequency in this situation: it does set m_XIT to zero but then skips the m_config.transceiver_tx_frequency line because an if condition isn't met.
patch tested only with: Rig: Hamlib NET rigctl Network server: localhost:4532 PTT Method: CAT Mode: Data/Pkt Split Operation: Fake It wsjtx built from wsjtx-2.7.0-rc7.tgz code on Ubuntu 20.04 x86_64 Hamlib Version In use: Hamlib 4.6-git 2024-09-26T03:35:16Z SHA=0b12c5 64-bit Without the patch, if normal FT8 had just been used at a dial frequency of 28.091 with Tx of 750 Hz, and now SuperFox is being used, then the SuperFox transmits on 28.090. With the patch in this scenario, the SuperFox transmits on 28.091. --- widgets/mainwindow.cpp.old 2024-10-07 21:57:26.195726422 +0000 +++ widgets/mainwindow.cpp 2024-10-07 21:57:29.564032173 +0000 @@ -8595,6 +8595,17 @@ m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); } } + if (SpecOp::FOX==m_specOp && m_config.superFox() + && (m_monitoring || m_transmitting) + && m_config.is_transceiver_online ()) + { + // the transceiver Tx dial frequency must be consistent with + // zero m_XIT for SuperFox + m_freqTxNominal = base; + if (m_astroWidget) m_astroWidget->nominal_frequency (m_freqNominal, m_freqTxNominal); + m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); + } + //Now set the audio Tx freq Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); } Matt, KA1R _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel