From 6d2e974b8dd877d045056dbf3c3544638c4a112d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 8 Jul 2016 14:42:28 +0000 Subject: [PATCH] Call the MSK144 short-message decoder only if "Sh" is checked. Also, make ntol available to the MSK144 decoder. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6894 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/detectmsk144.f90 | 2 +- lib/detectmsk32.f90 | 2 +- lib/fast_decode.f90 | 6 ++++-- lib/msk144_decode.f90 | 11 +++++++---- lib/qra64a.f90 | 2 -- mainwindow.cpp | 9 +++++---- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/detectmsk144.f90 b/lib/detectmsk144.f90 index 12941b387..80af965dd 100644 --- a/lib/detectmsk144.f90 +++ b/lib/detectmsk144.f90 @@ -1,4 +1,4 @@ -subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc) +subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc,ntol) use timer_module, only: timer parameter (NSPM=864, NPTS=3*NSPM, MAXSTEPS=1700, NFFT=NSPM, MAXCAND=20) diff --git a/lib/detectmsk32.f90 b/lib/detectmsk32.f90 index 9f9dbb66a..ae2c9f4c6 100644 --- a/lib/detectmsk32.f90 +++ b/lib/detectmsk32.f90 @@ -1,4 +1,4 @@ -subroutine detectmsk32(cbig,n,mycall,partnercall,lines,nmessages,nutc) +subroutine detectmsk32(cbig,n,mycall,partnercall,lines,nmessages,nutc,ntol) use timer_module, only: timer parameter (NSPM=192, NPTS=3*NSPM, MAXSTEPS=7500, NFFT=3*NSPM, MAXCAND=40) diff --git a/lib/fast_decode.f90 b/lib/fast_decode.f90 index 47e2521d7..b72d9c0de 100644 --- a/lib/fast_decode.f90 +++ b/lib/fast_decode.f90 @@ -1,8 +1,9 @@ -subroutine fast_decode(id2,narg,line,pchk_file,mycall_12,hiscall_12) +subroutine fast_decode(id2,narg,bShMsgs,line,pchk_file,mycall_12,hiscall_12) parameter (NMAX=30*12000) integer*2 id2(NMAX) integer narg(0:14) + logical*1 bShMsgs real dat(30*12000) complex cdat(262145),cdat2(262145) real psavg(450) @@ -37,7 +38,8 @@ subroutine fast_decode(id2,narg,line,pchk_file,mycall_12,hiscall_12) call jtmsk_decode(id2,narg,line) go to 900 else if(nmode.eq.104) then - call msk144_decode(id2,ndat0,nutc,0,pchk_file,mycall,hiscall,line) + call msk144_decode(id2,ndat0,nutc,0,pchk_file,mycall,hiscall,bShMsgs, & + ntol,line) go to 900 endif diff --git a/lib/msk144_decode.f90 b/lib/msk144_decode.f90 index 0b3f8459b..781f25cb2 100644 --- a/lib/msk144_decode.f90 +++ b/lib/msk144_decode.f90 @@ -1,4 +1,5 @@ -subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line) +subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall, & + bShMsgs,ntol,line) ! Calls the experimental decoder for MSK 72ms/16ms messages @@ -11,6 +12,7 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line) character*80 line(100) !Decodes passed back to caller character*512 pchk_file character*6 mycall,hiscall + logical*1 bShMsgs line(1:100)(1:1)=char(0) @@ -30,15 +32,16 @@ subroutine msk144_decode(id2,npts,nutc,nprint,pchk_file,mycall,hiscall,line) n=log(float(npts))/log(2.0) + 1.0 nfft=min(2**n,1024*1024) call analytic(d,npts,nfft,c) !Convert to analytic signal and filter - call detectmsk144(c,npts,pchk_file,line,nline,nutc) + call detectmsk144(c,npts,pchk_file,line,nline,nutc,ntol) if( nprint .ne. 0 ) then do i=1,nline write(*,'(a80)') line(i) enddo endif - if(nline .eq. 0) then - call detectmsk32(c,npts,mycall,hiscall,line,nline,nutc) + + if(nline.eq.0 .and. bShMsgs) then + call detectmsk32(c,npts,mycall,hiscall,line,nline,nutc,ntol) if( nprint .ne. 0 ) then do i=1,nline write(*,'(a80)') line(i) diff --git a/lib/qra64a.f90 b/lib/qra64a.f90 index 7b31df907..e378161df 100644 --- a/lib/qra64a.f90 +++ b/lib/qra64a.f90 @@ -4,7 +4,6 @@ subroutine qra64a(dd,nf1,nf2,nfqso,ntol,mycall_12,sync,nsnr,dtx,nfreq, & use packjt parameter (NFFT=2*6912,NH=NFFT/2,NZ=5760) character decoded*22,mycall_12*12,mycall*6 - character*1 mark(0:5),zplot(0:63) logical ltext integer icos7(0:6) integer ipk(1) @@ -20,7 +19,6 @@ subroutine qra64a(dd,nf1,nf2,nfqso,ntol,mycall_12,sync,nsnr,dtx,nfreq, & complex cx(0:NH) equivalence (x,cx) data icos7/2,5,6,0,4,1,3/ !Costas 7x7 pattern - data mark/' ','.','-','+','X','$'/ common/qra64com/ss(NZ,194),s3(0:63,1:63),ccf(NZ,0:25) save diff --git a/mainwindow.cpp b/mainwindow.cpp index 34226f619..0381a58fb 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -105,9 +105,9 @@ extern "C" { float* level, float* sigdb, float* snr, float* dfreq, float* width); - void fast_decode_(short id2[], int narg[], char msg[], char pchkFile[], - char mycall[], char hiscall[], int len1, int len2, - int len3, int len4); + void fast_decode_(short id2[], int narg[], bool* bShMsgs, char msg[], + char pchkFile[], char mycall[], char hiscall[], + int len1, int len2, int len3, int len4); void hash_calls_(char calls[], int* ih9, int len); void degrade_snr_(short d2[], int* n, float* db, float* bandwidth); void wav12_(short d2[], short d1[], int* nbytes, short* nbitsam2); @@ -2207,7 +2207,7 @@ void MainWindow::decode() //decode() narg[14]=m_config.aggressive(); memcpy(d2b,dec_data.d2,2*360000); watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0], - &narg[0],&m_msg[0][0],&m_pchkFile[0],dec_data.params.mycall, + &narg[0],&m_bShMsgs,&m_msg[0][0],&m_pchkFile[0],dec_data.params.mycall, dec_data.params.hiscall,80,512,12,12))); } else { memcpy(to, from, qMin(mem_jt9->size(), size)); @@ -3975,6 +3975,7 @@ void MainWindow::on_actionMSK144_triggered() m_toneSpacing=0.0; ui->cbShMsgs->setChecked(false); ui->cbShMsgs->setVisible(true); +// ui->sbFtol->setVisible(false); //Maybe? ui->actionMSK144->setChecked(true); }