mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-03 05:38:01 -04:00
Quasi-graphical display of the sync ccf(f0,DT).
This commit is contained in:
parent
6b8abe32b1
commit
8507a42655
@ -203,8 +203,8 @@ 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, &
|
||||||
mycall,hiscall,hisgrid,params%nQSOProgress,ncontest, &
|
params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
|
||||||
logical(params%lapcqonly))
|
ncontest,logical(params%lapcqonly))
|
||||||
call timer('dec_q65 ',1)
|
call timer('dec_q65 ',1)
|
||||||
go to 800
|
go to 800
|
||||||
endif
|
endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
||||||
xdt,f0,snr1,dat4,snr2,id1)
|
emedelay,xdt,f0,snr1,dat4,snr2,id1)
|
||||||
|
|
||||||
! Detect and align with the Q65 sync vector, returning time and frequency
|
! Detect and align with the Q65 sync vector, returning time and frequency
|
||||||
! offsets and SNR estimate.
|
! 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)
|
rms=sqrt(sq/nsq)
|
||||||
smax=ccf(ipk,jpk)
|
smax=ccf(ipk,jpk)
|
||||||
snr1=smax/rms
|
snr1=smax/rms
|
||||||
|
call zplot_q65(ccf(-ia:ia,lag1:lag2),ia,lag1,lag2,rms,dtstep,ntol,emedelay)
|
||||||
|
|
||||||
900 return
|
900 return
|
||||||
end subroutine q65_sync
|
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
|
||||||
|
@ -3306,6 +3306,22 @@ void MainWindow::decodeDone ()
|
|||||||
{
|
{
|
||||||
if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0;
|
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=="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 ("FST4W" == m_mode)
|
||||||
{
|
{
|
||||||
if (m_uploadWSPRSpots
|
if (m_uploadWSPRSpots
|
||||||
@ -3591,7 +3607,8 @@ void MainWindow::readFromStdout() //readFromStdout
|
|||||||
} else {
|
} else {
|
||||||
if (stdMsg && okToPost) pskPost(decodedtext);
|
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()) {
|
if(m_msgAvgWidget->isVisible()) {
|
||||||
QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt"));
|
QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt"));
|
||||||
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
@ -4336,7 +4353,7 @@ void MainWindow::guiUpdate()
|
|||||||
|
|
||||||
//Once per second (onesec)
|
//Once per second (onesec)
|
||||||
if(nsec != m_sec0) {
|
if(nsec != m_sec0) {
|
||||||
// qDebug() << "AAA" << nsec;
|
// qDebug() << "AAA" << nsec;
|
||||||
if(m_mode=="FST4") chk_FST4_freq_range();
|
if(m_mode=="FST4") chk_FST4_freq_range();
|
||||||
m_currentBand=m_config.bands()->find(m_freqNominal);
|
m_currentBand=m_config.bands()->find(m_freqNominal);
|
||||||
if( SpecOp::HOUND == m_config.special_op_id() ) {
|
if( SpecOp::HOUND == m_config.special_op_id() ) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user