1. Clean up GUI features releted to message averaging and deep search.

2. Make averaging and DS separately selecteble.
3. Clear nftt and avemsg on Clear Avg.
4. Allow fer65 to handle message averaging.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6543 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-03-21 16:03:11 +00:00
parent 331402213a
commit 846ddf9039
10 changed files with 42 additions and 37 deletions

View File

@ -93,7 +93,8 @@ subroutine decode4(dat,npts,dtx,nfreq,flip,mode4,ndepth,neme,minw, &
endif
qual=0. !Now try deep search
if(ndepth.ge.1) then
! if(ndepth.ge.1) then
if(iand(ndepth,32).eq.32) then
call deep4(sym(2),neme,flip,mycall,hiscall,hisgrid,deepmsg,qual)
if(qual.gt.qbest) then
qbest=qual

View File

@ -221,7 +221,7 @@ contains
integer, intent(in) :: nsubmode
integer, intent(in) :: naggressive
integer nft,nsmo2,nsum2
integer nft,nsmo2,nsum2,n
character*3 ctail
character*36 c
data c/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
@ -235,9 +235,10 @@ contains
else
ctail=' '
if(naggressive.gt.0 .and. ft.gt.0) then
ctail(1:1)='h'
ctail(1:1)='d'
if(ft.eq.1) ctail(1:1)='f'
ctail(2:2)=c(nsum+1:nsum+1)
n=max(2,nsum+1)
ctail(2:2)=c(n:n)
if(nsubmode.gt.0) ctail(3:3)=c(nsmo+1:nsmo+1)
endif
write(*,1010) utc,snr,dt,freq,'#',decoded,ctail

View File

@ -90,7 +90,7 @@ subroutine extract(s3,nadd,mode65,ntrials,naggressive,ndepth,mycall_12, &
endif
if(ntotal.le.nd0 .and. rtt.le.r0) nft=1
if(nft.eq.0 .and. (ndepth.ge.5 .or. iand(nexp_decode,31).ne.0)) then
if(nft.eq.0 .and. iand(ndepth,32).eq.32) then
flip=1.0
qmin=1.0
call timer('hint65 ',0)

View File

@ -49,7 +49,7 @@ program fer65
ntrials=1000
naggressive=10
nfiles=1
if(ndepth.eq.4) nfiles=4
if(iand(ndepth,16).eq.16) nfiles=16
open(20,file='fer65.20',status='unknown')
open(21,file='fer65.21',status='unknown')
@ -92,9 +92,9 @@ program fer65
nfreq=0
ndrift=0
nwidth=0
cmnd='./jt65 -m A -a 10 -c K1ABC -f 1500 -n 1000 -d 5 -s -X 32 000000_????.wav > decoded.txt'
cmnd='./jt65 -m A -a 10 -c K1ABC -f 1500 -n 1000 -d 5 -s -X 32 000000_????.wav > decoded.txt'
cmnd(11:11)=submode
write(cmnd(47:47),'(i1)') ndepth
write(cmnd(47:48),'(i2)') ndepth
call system(cmnd)
open(13,file='fort.13',status='old',err=20)
do i=1,nfiles

View File

@ -425,7 +425,8 @@ contains
qave=0.
! Possibly should pass nadd=nused, also ?
if(ndepth.ge.3) then
! if(ndepth.ge.3) then
if(iand(ndepth,32).eq.32) then
flipx=1.0 !Normal flip not relevant for ave msg
qbest=0.
do k=ich1,ich2

View File

@ -42,7 +42,7 @@ program jt65
nlow=200
nhigh=4000
n2pass=2
ndepth=0
ndepth=3
do
call getopt('a:d:f:hm:n:rc:x:g:X:s',long_options,c,optarg,narglen,nstat,noffset,nremain,.true.)

View File

@ -211,8 +211,9 @@ contains
nsnr=nint(s2db)
if(nsnr.lt.-30) nsnr=-30
if(nsnr.gt.-1) nsnr=-1
nftt=0
if(nft.ne.1 .and. ndepth.ge.4 .and. (.not.prtavg)) then
if(nft.ne.1 .and. iand(ndepth,16).eq.16 .and. (.not.prtavg)) then
! Single-sequence FT decode failed, so try for an average FT decode.
if(nutc.ne.nutc0 .or. abs(nfreq-nfreq0).gt.ntol) then
! This is a new minute or a new frequency, so call avg65.
@ -326,9 +327,9 @@ contains
dtdiff=0.2
first=.false.
s3b=0.
s3save=0.
nsave=1 !### ???
endif
nclearave=0
do i=1,64
if(nutc.eq.iutc(i) .and. abs(nhz-nfsave(i)).le.ntol) go to 10

View File

@ -75,11 +75,11 @@ contains
ccflim=3.0
red2lim=1.6
schklim=2.2
if(ndepth.eq.2) then
if(iand(ndepth,7).eq.2) then
limit=10000
ccflim=2.7
endif
if(ndepth.ge.3 .or. nqd.eq.1) then
if(iand(ndepth,7).eq.3 .or. nqd.eq.1) then
limit=30000
ccflim=2.5
schklim=2.0

View File

@ -330,8 +330,8 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
ui->actionQuickDecode->setActionGroup(DepthGroup);
ui->actionMediumDecode->setActionGroup(DepthGroup);
ui->actionDeepestDecode->setActionGroup(DepthGroup);
ui->actionInclude_averaging->setActionGroup(DepthGroup);
ui->actionInclude_correlation->setActionGroup(DepthGroup);
// ui->actionInclude_averaging->setActionGroup(DepthGroup);
// ui->actionInclude_correlation->setActionGroup(DepthGroup);
connect (ui->download_samples_action, &QAction::triggered, [this, network_manager] () {
if (!m_sampleDownloader)
@ -384,10 +384,8 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
ui->bandComboBox->view ()->setMinimumWidth (ui->bandComboBox->view ()->sizeHintForColumn (FrequencyList::frequency_mhz_column));
// Enable live band combo box entry validation and action.
auto band_validator = new LiveFrequencyValidator {ui->bandComboBox
, m_config.bands ()
, m_config.frequencies ()
, this};
auto band_validator = new LiveFrequencyValidator {ui->bandComboBox, m_config.bands(),
m_config.frequencies(), this};
ui->bandComboBox->setValidator (band_validator);
// Hook up signals.
@ -637,8 +635,7 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
m_config.transceiver_online (true);
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
m_mode=="ISCAT" or m_mode=="JT9" or
m_mode=="JTMSK");
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK");
VHF_controls_visible(b);
if(m_mode=="JT4") on_actionJT4_triggered();
@ -674,6 +671,8 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
m_hsymStop=173;
if(m_config.decode_at_52s()) m_hsymStop=179;
}
VHF_features_enabled(m_config.enable_VHF_features());
progressBar->setMaximum(m_TRperiod);
m_modulator->setPeriod(m_TRperiod); // TODO - not thread safe
m_dialFreqRxWSPR=0;
@ -837,11 +836,11 @@ void MainWindow::readSettings()
m_audioThreadPriority = static_cast<QThread::Priority> (m_settings->value ("Audio/ThreadPriority", QThread::HighPriority).toInt () % 8);
m_settings->endGroup ();
if(m_ndepth==1) ui->actionQuickDecode->setChecked(true);
if(m_ndepth==2) ui->actionMediumDecode->setChecked(true);
if(m_ndepth==3) ui->actionDeepestDecode->setChecked(true);
if(m_ndepth==4) ui->actionInclude_averaging->setChecked(true);
if(m_ndepth==5) ui->actionInclude_correlation->setChecked(true);
if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true);
if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true);
if((m_ndepth&7)==3) ui->actionDeepestDecode->setChecked(true);
ui->actionInclude_averaging->setChecked((m_ndepth&16)>0);
ui->actionInclude_correlation->setChecked((m_ndepth&32)>0);
statusChanged();
}
@ -1150,6 +1149,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
displayDialFrequency ();
bool b=m_config.enable_VHF_features() and (m_mode=="JT4" or m_mode=="JT65" or
m_mode=="ISCAT" or m_mode=="JT9" or m_mode=="JTMSK");
VHF_features_enabled(b);
VHF_controls_visible(b);
}
@ -2014,7 +2014,7 @@ void MainWindow::readFromStdout() //readFromStdout
}
if(m_mode=="JT65") {
int n=t.indexOf("f");
if(n<0) n=t.indexOf("h");
if(n<0) n=t.indexOf("d");
if(n>0) {
navg=t.mid(n+1,1).toInt();
if(navg>1) bAvgMsg=true;
@ -3918,32 +3918,32 @@ void MainWindow::on_RxFreqSpinBox_valueChanged(int n)
void MainWindow::on_actionQuickDecode_triggered()
{
m_ndepth=1;
m_ndepth=(m_ndepth&48) + 1;
ui->actionQuickDecode->setChecked(true);
}
void MainWindow::on_actionMediumDecode_triggered()
{
m_ndepth=2;
m_ndepth=(m_ndepth&48) + 2;
ui->actionMediumDecode->setChecked(true);
}
void MainWindow::on_actionDeepestDecode_triggered()
{
m_ndepth=3;
m_ndepth=(m_ndepth&48) + 3;
ui->actionDeepestDecode->setChecked(true);
}
void MainWindow::on_actionInclude_averaging_triggered()
{
m_ndepth=4;
ui->actionInclude_averaging->setChecked(true);
m_ndepth=m_ndepth ^ 16;
ui->actionInclude_averaging->setChecked(m_ndepth&16);
}
void MainWindow::on_actionInclude_correlation_triggered()
{
m_ndepth=5;
ui->actionInclude_correlation->setChecked(true);
m_ndepth=m_ndepth ^ 32;
ui->actionInclude_correlation->setChecked(m_ndepth&32);
}
void MainWindow::on_inGain_valueChanged(int n)

View File

@ -2334,6 +2334,7 @@ QPushButton[state=&quot;ok&quot;] {
<addaction name="actionQuickDecode"/>
<addaction name="actionMediumDecode"/>
<addaction name="actionDeepestDecode"/>
<addaction name="separator"/>
<addaction name="actionInclude_averaging"/>
<addaction name="actionInclude_correlation"/>
</widget>
@ -2739,7 +2740,7 @@ QPushButton[state=&quot;ok&quot;] {
<bool>true</bool>
</property>
<property name="text">
<string>Include averaging</string>
<string>Enable averaging</string>
</property>
</action>
<action name="actionInclude_correlation">
@ -2747,7 +2748,7 @@ QPushButton[state=&quot;ok&quot;] {
<bool>true</bool>
</property>
<property name="text">
<string>Include correlation</string>
<string>Enable deep search</string>
</property>
</action>
<action name="actionWSPR_2">