Quasi-graphical display of the sync ccf(f0,DT).

This commit is contained in:
Joe Taylor 2020-12-17 17:02:28 -05:00
parent 6b8abe32b1
commit 8507a42655
3 changed files with 60 additions and 6 deletions

View File

@ -203,8 +203,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
call timer('dec_q65 ',0)
call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, &
params%nsubmode,params%nfqso,params%ntol,params%ndepth, &
mycall,hiscall,hisgrid,params%nQSOProgress,ncontest, &
logical(params%lapcqonly))
params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
ncontest,logical(params%lapcqonly))
call timer('dec_q65 ',1)
go to 800
endif

View File

@ -1,5 +1,5 @@
subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
xdt,f0,snr1,dat4,snr2,id1)
subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
emedelay,xdt,f0,snr1,dat4,snr2,id1)
! Detect and align with the Q65 sync vector, returning time and frequency
! offsets and SNR estimate.
@ -227,6 +227,43 @@ subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
rms=sqrt(sq/nsq)
smax=ccf(ipk,jpk)
snr1=smax/rms
call zplot_q65(ccf(-ia:ia,lag1:lag2),ia,lag1,lag2,rms,dtstep,ntol,emedelay)
900 return
end subroutine q65_sync
subroutine zplot_q65(ccf,ia,lag1,lag2,rms,dtstep,ntol,emedelay)
real ccf(-ia:ia,lag1:lag2)
character*1 line(70),mark(0:6)
character*35 blanks
data mark/' ',' ','.','-','+','X','#'/
data blanks/' '/
! open(35,file='ccf.dat',status='unknown',access='stream')
! write(35) ia,lag1,lag2,rms,dtstep
! write(35) ccf
! close(35)
open(34,file='ccf.txt',status='unknown')
write(34,1000) -ntol,blanks(1:ia-2),0,blanks(1:ia-2),ntol
1000 format(5x,i3,a,i1,a,i3)
k=0
do j=lag2,lag1,-1
t=j*dtstep
if(emedelay.eq.0.0 .and. abs(t).gt.1.0) cycle
do i=-ia,ia
k=i+ia+2
n=ccf(i,j)/rms
if(n.lt.0) n=0
if(n.gt.6) n=6
line(k)=mark(n)
enddo
line(1)='|'
line(k+1)='|'
write(34,1010) t,line(1:k+1)
1010 format(f5.2,1x,72a1)
enddo
close(34)
return
end subroutine zplot_q65

View File

@ -3306,6 +3306,22 @@ void MainWindow::decodeDone ()
{
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
if(m_mode=="Q65" and m_msgAvgWidget!=NULL) {
if(m_msgAvgWidget->isVisible()) {
// QFile f(m_config.temp_dir ().absoluteFilePath ("ccf.txt"));
QFont font("Courier New",7);
m_msgAvgWidget->changeFont(font);
QFile f("ccf.txt");
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream s(&f);
QString t=s.readAll();
m_msgAvgWidget->displayAvg(t);
}
}
}
if ("FST4W" == m_mode)
{
if (m_uploadWSPRSpots
@ -3591,7 +3607,8 @@ void MainWindow::readFromStdout() //readFromStdout
} else {
if (stdMsg && okToPost) pskPost(decodedtext);
}
if((m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA64") and m_msgAvgWidget!=NULL) {
if((m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA64" or m_mode=="Q65") and
m_msgAvgWidget!=NULL) {
if(m_msgAvgWidget->isVisible()) {
QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt"));
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
@ -4336,7 +4353,7 @@ void MainWindow::guiUpdate()
//Once per second (onesec)
if(nsec != m_sec0) {
// qDebug() << "AAA" << nsec;
// qDebug() << "AAA" << nsec;
if(m_mode=="FST4") chk_FST4_freq_range();
m_currentBand=m_config.bands()->find(m_freqNominal);
if( SpecOp::HOUND == m_config.special_op_id() ) {