Extend red/orange sync curves to full width. Display navg on status bar.

This commit is contained in:
Joe Taylor 2021-01-16 12:21:13 -05:00
parent b343deb8cd
commit 397c31a62d
4 changed files with 25 additions and 12 deletions

View File

@ -61,6 +61,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
type(counting_fst4_decoder) :: my_fst4 type(counting_fst4_decoder) :: my_fst4
type(counting_q65_decoder) :: my_q65 type(counting_q65_decoder) :: my_q65
nused=0
rms=sqrt(dot_product(float(id2(1:180000)), & rms=sqrt(dot_product(float(id2(1:180000)), &
float(id2(1:180000)))/180000.0) float(id2(1:180000)))/180000.0)
if(rms.lt.3.0) go to 800 if(rms.lt.3.0) go to 800
@ -205,8 +206,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
call timer('dec_q65 ',0) call timer('dec_q65 ',0)
call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, & call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, &
params%nsubmode,params%nfqso,params%ntol,params%ndepth, & params%nsubmode,params%nfqso,params%ntol,params%ndepth, &
logical(params%nclearave),params%emedelay,mycall,hiscall, & params%nfa,params%nfb,logical(params%nclearave), &
hisgrid,params%nQSOProgress,ncontest,logical(params%lapcqonly)) params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
ncontest,logical(params%lapcqonly),navg0)
call timer('dec_q65 ',1) call timer('dec_q65 ',1)
go to 800 go to 800
endif endif
@ -363,8 +365,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
endif endif
if(params%nmode.ne.8 .or. params%nzhsym.eq.50 .or. & if(params%nmode.ne.8 .or. params%nzhsym.eq.50 .or. &
.not.params%ndiskdat) then .not.params%ndiskdat) then
write(*,1010) nsynced,ndecoded write(*,1010) nsynced,ndecoded,navg0
1010 format('<DecodeFinished>',2i4) 1010 format('<DecodeFinished>',3i4)
call flush(6) call flush(6)
endif endif
close(13) close(13)

View File

@ -27,8 +27,8 @@ module q65_decode
contains contains
subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, & subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, &
ntol,ndepth,lclearave,emedelay,mycall,hiscall,hisgrid,nQSOprogress, & ntol,ndepth,nfa0,nfb0,lclearave,emedelay,mycall,hiscall,hisgrid, &
ncontest,lapcqonly) nQSOprogress,ncontest,lapcqonly,navg0)
! Top-level routine that organizes the decoding of Q65 signals ! Top-level routine that organizes the decoding of Q65 signals
! Input: iwave Raw data, i*2 ! Input: iwave Raw data, i*2
@ -67,6 +67,8 @@ contains
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s
! Start by setting some parameters and allocating storage for large arrays ! Start by setting some parameters and allocating storage for large arrays
nfa=nfa0
nfb=nfb0
idec=-1 idec=-1
mode_q65=2**nsubmode mode_q65=2**nsubmode
npts=ntrperiod*12000 npts=ntrperiod*12000
@ -212,8 +214,9 @@ contains
if(nsnr.lt.-35) nsnr=-35 if(nsnr.lt.-35) nsnr=-35
idec=-1 idec=-1
call this%callback(nutc,snr1,nsnr,xdt1,f1,decoded, & call this%callback(nutc,snr1,nsnr,xdt1,f1,decoded, &
idec,navg,ntrperiod) idec,0,ntrperiod)
endif endif
navg0=navg
return return
end subroutine decode end subroutine decode

View File

@ -10,7 +10,7 @@ module q65
integer,dimension(22) :: isync = (/1,9,12,13,15,22,23,26,27,33,35, & integer,dimension(22) :: isync = (/1,9,12,13,15,22,23,26,27,33,35, &
38,46,50,55,60,62,66,69,74,76,85/) 38,46,50,55,60,62,66,69,74,76,85/)
integer codewords(63,206) integer codewords(63,206)
integer navg,ibwa,ibwb,ncw,nsps,mode_q65 integer navg,ibwa,ibwb,ncw,nsps,mode_q65,nfa,nfb
integer istep,nsmo,lag1,lag2,npasses,nused integer istep,nsmo,lag1,lag2,npasses,nused
integer i0,j0 integer i0,j0
real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra
@ -198,8 +198,10 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, &
! Write data for the red and orange sync curves. ! Write data for the red and orange sync curves.
do i=-ia2,ia2 do i=-ia2,ia2
freq=nfqso + i*df freq=nfqso + i*df
if(freq.ge.float(nfa) .and. freq.le.float(nfb)) then
write(17,1100) freq,ccf1(i),xdt,ccf2(i) write(17,1100) freq,ccf1(i),xdt,ccf2(i)
1100 format(4f10.3) 1100 format(4f10.3)
endif
enddo enddo
close(17) close(17)

View File

@ -3373,12 +3373,18 @@ void MainWindow::readFromStdout() //readFromStdout
if(line_read.indexOf("<DecodeFinished>") >= 0) { if(line_read.indexOf("<DecodeFinished>") >= 0) {
m_bDecoded = line_read.mid(20).trimmed().toInt() > 0; m_bDecoded = line_read.mid(20).trimmed().toInt() > 0;
int n=line_read.trimmed().size();
int navg=line_read.trimmed().mid(n-2).toInt();
if(m_mode=="Q65") {
ndecodes_label.setText(QString::number(navg));
} else {
if(m_nDecodes==0) ndecodes_label.setText("0"); if(m_nDecodes==0) ndecodes_label.setText("0");
}
decodeDone (); decodeDone ();
return; return;
} else { } else {
m_nDecodes+=1; m_nDecodes+=1;
ndecodes_label.setText(QString::number(m_nDecodes)); if(m_mode!="Q65") ndecodes_label.setText(QString::number(m_nDecodes));
if(m_mode=="JT4" or m_mode=="JT65" or m_mode=="Q65") { if(m_mode=="JT4" or m_mode=="JT65" or m_mode=="Q65") {
//### Do something about Q65 here ? ### //### Do something about Q65 here ? ###
int nf=line_read.indexOf("f"); int nf=line_read.indexOf("f");