mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 13:48:42 -05:00
Only poll split frequency if in split mode
Because PowerSDR for the FlexRadio rigs doesn't implement split or VFO B, querying the TX VFO in transceiver polls causes an error with them. This query is unecessary. Removing it will cause a delay of one poll period after split is set for the Tx frequency to appear. This should be harmless, if not then there is a possibility of querying split before the Tx frequency. This seems obvious but I believe the order matters with some rigs so it needs more investigation. Merged from wsjtx-1.4 branch. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4435 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
ef35c0bd48
commit
7ff8b8329d
@ -206,23 +206,26 @@ void DXLabSuiteCommanderTransceiver::poll ()
|
||||
throw error {tr ("DX Lab Suite Commander didn't respond correctly polling frequency")};
|
||||
}
|
||||
|
||||
reply = command_with_reply ("<command:13>CmdSendTXFreq<parameters:0>", quiet);
|
||||
if (0 == reply.indexOf ("<CmdTXFreq:"))
|
||||
if (state ().split ())
|
||||
{
|
||||
// remove thousands separator and DP - relies of n.nnn kHz format so we ca do uint conversion
|
||||
auto text = reply.mid (reply.indexOf ('>') + 1).replace (",", "").replace (".", "");
|
||||
if ("000" != text)
|
||||
reply = command_with_reply ("<command:13>CmdSendTXFreq<parameters:0>", quiet);
|
||||
if (0 == reply.indexOf ("<CmdTXFreq:"))
|
||||
{
|
||||
update_other_frequency (text.toUInt ());
|
||||
// remove thousands separator and DP - relies of n.nnn kHz format so we ca do uint conversion
|
||||
auto text = reply.mid (reply.indexOf ('>') + 1).replace (",", "").replace (".", "");
|
||||
if ("000" != text)
|
||||
{
|
||||
update_other_frequency (text.toUInt ());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
#if WSJT_TRACE_CAT
|
||||
qDebug () << "DXLabSuiteCommanderTransceiver::poll: get tx frequency unexpected response";
|
||||
qDebug () << "DXLabSuiteCommanderTransceiver::poll: get tx frequency unexpected response";
|
||||
#endif
|
||||
|
||||
throw error {tr ("DX Lab Suite Commander didn't respond correctly polling TX frequency")};
|
||||
throw error {tr ("DX Lab Suite Commander didn't respond correctly polling TX frequency")};
|
||||
}
|
||||
}
|
||||
|
||||
reply = command_with_reply ("<command:12>CmdSendSplit<parameters:0>", quiet);
|
||||
|
@ -667,9 +667,14 @@ void HamlibTransceiver::poll ()
|
||||
|
||||
update_rx_frequency (f);
|
||||
|
||||
if (rig_->caps->targetable_vfo & (RIG_TARGETABLE_FREQ | RIG_TARGETABLE_PURE))
|
||||
if (state ().split () && (rig_->caps->targetable_vfo & (RIG_TARGETABLE_FREQ | RIG_TARGETABLE_PURE)))
|
||||
{
|
||||
// we can only probe current VFO unless rig supports reading the other one directly
|
||||
// only read "other" VFO if in split, this allows rigs like
|
||||
// FlexRadio to work in Kenwood TS-2000 mode despite them
|
||||
// not having a FB; command
|
||||
|
||||
// we can only probe current VFO unless rig supports reading
|
||||
// the other one directly because we can't glitch the Rx
|
||||
#if WSJT_TRACE_CAT && WSJT_TRACE_CAT_POLLS
|
||||
qDebug () << "HamlibTransceiver::poll rig_get_freq other VFO";
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user