WSPR band hopping improvements

Added a per band Rx only flag.
Added Tx 100% as special case.
Only do  tune up if  not an Rx  only band and  if not scheduled  to Tx
already.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5520 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville 2015-06-04 10:58:36 +00:00
parent 23d58d98a3
commit a3b60ecb7b
2 changed files with 32 additions and 6 deletions

View File

@ -28,7 +28,7 @@ namespace
// These 10 bands are the hopping candidates and are globally coordinated // These 10 bands are the hopping candidates and are globally coordinated
char const * const hopping_bands[] = {"160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m"}; char const * const hopping_bands[] = {"160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m"};
size_t constexpr num_bands {sizeof (hopping_bands) / sizeof (hopping_bands[0])}; size_t constexpr num_bands {sizeof (hopping_bands) / sizeof (hopping_bands[0])};
char const * const periods[] = {"Sunrise grayline", "Day", "Sunset grayline", "Night", "Tune"}; char const * const periods[] = {"Sunrise grayline", "Day", "Sunset grayline", "Night", "Tune", "Rx only"};
size_t constexpr num_periods {sizeof (periods) / sizeof (periods[0])}; size_t constexpr num_periods {sizeof (periods) / sizeof (periods[0])};
char const * const title = "WSPR Band Hopping"; char const * const title = "WSPR Band Hopping";
} }
@ -162,7 +162,14 @@ public:
, configuration_ {configuration} , configuration_ {configuration}
, tx_percent_ {0} , tx_percent_ {0}
, parent_widget_ {parent_widget} , parent_widget_ {parent_widget}
, bands_ {QBitArray {num_bands}, QBitArray {num_bands}, QBitArray {num_bands}, QBitArray {num_bands}, QBitArray {num_bands}} , bands_ {
QBitArray {num_bands},
QBitArray {num_bands},
QBitArray {num_bands},
QBitArray {num_bands},
QBitArray {num_bands},
QBitArray {num_bands},
}
{ {
} }
@ -258,6 +265,11 @@ auto WSPRBandHopping::next_hop () -> Hop
, &m_->gray_line_duration_, &m_->tx_percent_, &period_index, &band_index , &m_->gray_line_duration_, &m_->tx_percent_, &period_index, &band_index
, &tx_next, my_grid.size ()); , &tx_next, my_grid.size ());
if (100 == m_->tx_percent_)
{
tx_next = 1;
}
int frequencies_index {-1}; int frequencies_index {-1};
auto const& frequencies = m_->configuration_->frequencies (); auto const& frequencies = m_->configuration_->frequencies ();
auto const& filtered_bands = frequencies->filtered_bands (); auto const& filtered_bands = frequencies->filtered_bands ();
@ -294,8 +306,18 @@ auto WSPRBandHopping::next_hop () -> Hop
} }
} }
} }
return {periods[period_index] return {
periods[period_index]
, frequencies_index , frequencies_index
, frequencies_index >= 0 && m_->bands_[4].testBit (band_index)
, frequencies_index >= 0 && !!tx_next}; , frequencies_index >= 0 // new band
&& !tx_next // not going to Tx anyway
&& m_->bands_[4].testBit (band_index) // tune up required
&& !m_->bands_[5].testBit (band_index) // not an Rx only band
, frequencies_index >= 0 // new band
&& tx_next // Tx scheduled
&& !m_->bands_[5].testBit (band_index) // not an Rx only band
};
} }

View File

@ -4253,6 +4253,10 @@ void MainWindow::on_pbTxNext_clicked(bool b)
void MainWindow::bandHopping() void MainWindow::bandHopping()
{ {
auto hop_data = m_WSPR_band_hopping.next_hop (); auto hop_data = m_WSPR_band_hopping.next_hop ();
qDebug () << "hop data: period:" << hop_data.period_name_
<< "frequencies index:" << hop_data.frequencies_index_
<< "tune:" << hop_data.tune_required_
<< "tx:" << hop_data.tx_next_;
if (m_auto &&hop_data.tx_next_) { if (m_auto &&hop_data.tx_next_) {
m_nrx = 0; m_nrx = 0;