diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 77a03d190..26e5dcfa8 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -464,7 +464,7 @@ contains integer, intent(in) :: nsum integer, intent(in) :: minsync - integer i,nap,nft + integer i,nap logical is_deep,is_average character decoded*22,csync*2,cflags*3 @@ -774,15 +774,21 @@ contains character(len=37), intent(in) :: decoded integer, intent(in) :: idec integer, intent(in) :: ntrperiod + character*3 cflags + + write(cflags,1000) idec +1000 format('q',i2) + if(cflags(2:2).eq.' ') cflags(2:3)=cflags(3:3)//' ' + if(cflags(2:2).eq.'-') cflags=' ' if(ntrperiod.lt.60) then - write(*,1001) nutc,nsnr,dt,nint(freq),decoded,idec -1001 format(i6.6,i4,f5.1,i5,' : ',1x,a37,1x,i2) + write(*,1001) nutc,nsnr,dt,nint(freq),decoded,cflags +1001 format(i6.6,i4,f5.1,i5,' : ',1x,a37,1x,a3) write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65') else - write(*,1003) nutc,nsnr,dt,nint(freq),decoded,idec -1003 format(i4.4,i4,f5.1,i5,' : ',1x,a37,1x,i2) + write(*,1003) nutc,nsnr,dt,nint(freq),decoded,cflags +1003 format(i4.4,i4,f5.1,i5,' : ',1x,a37,1x,a3) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded 1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' Q65') diff --git a/lib/q65_decode.f90 b/lib/q65_decode.f90 index de7a7dede..19ac5ac8f 100644 --- a/lib/q65_decode.f90 +++ b/lib/q65_decode.f90 @@ -166,6 +166,19 @@ contains 100 decoded=' ' if(idec.gt.0) then + +! ------------------------------------------------------ +! idec Meaning +! ------------------------------------------------------ +! -1: No decode +! 1: Decode with AP for "MyCall DxCall ?" +! 2: Decode without AP information +! 3: Decode with AP for "CQ ? ?" +! 4: Decode with AP for "MyCall ? ?" +! ------------------------------------------------------ +! Second digit (if any) is number of sequences averaged. +! ------------------------------------------------------ + ! Unpack decoded message for display to user write(c77,1000) dat4(1:12),dat4(13)/2 1000 format(12b6.6,b5.5) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index dd94bf1e4..2c06d6dd6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3359,8 +3359,7 @@ void MainWindow::readFromStdout() //readFromStdout continue; } } - if (m_mode!="FT8" and m_mode!="FT4" - && !m_mode.startsWith ("FST4")) { + if (m_mode!="FT8" and m_mode!="FT4" and !m_mode.startsWith ("FST4") and m_mode!="Q65") { //Pad 22-char msg to at least 37 chars line_read = line_read.left(44) + " " + line_read.mid(44); } @@ -3375,7 +3374,7 @@ void MainWindow::readFromStdout() //readFromStdout } else { m_nDecodes+=1; ndecodes_label.setText(QString::number(m_nDecodes)); - if(m_mode=="JT4" or m_mode=="JT65") { + if(m_mode=="JT4" or m_mode=="JT65" or m_mode=="Q65") { //### Do something about Q65 here ? ### int nf=line_read.indexOf("f"); if(nf>0) { @@ -3388,13 +3387,17 @@ void MainWindow::readFromStdout() //readFromStdout navg=line_read.mid(nd+2,1).toInt(); if(line_read.mid(nd+2,1)=="*") navg=10; } - if(m_mode=="JT65" or m_mode=="JT4") { - int na=-1; - if(nf<0 and nd<0) na=line_read.indexOf("a"); - if(na>0) { - navg=line_read.mid(na+2,1).toInt(); - if(line_read.mid(na+2,1)=="*") navg=10; - } + int na=-1; + if(nf<0 and nd<0) na=line_read.indexOf("a"); + if(na>0) { + navg=line_read.mid(na+2,1).toInt(); + if(line_read.mid(na+2,1)=="*") navg=10; + } + int nq=-1; + if(nf<0 and nd<0 and na<0) nq=line_read.indexOf("q"); + if(nq>0) { + navg=line_read.mid(nq+2,1).toInt(); + if(line_read.mid(nq+2,1)=="*") navg=10; } if(navg>=2) bAvgMsg=true; } @@ -6389,6 +6392,10 @@ void MainWindow::on_actionQ65_triggered() switch_mode (Modes::Q65); // 012345678901234567890123456789012345 displayWidgets(nWidgets("111111010110110100111000000100000000")); + ui->lh_decodes_title_label->setText(tr ("Single-Period Decodes")); + ui->rh_decodes_title_label->setText(tr ("Average Decodes")); + ui->lh_decodes_headings_label->setText("UTC dB DT Freq " + tr ("Message")); + ui->rh_decodes_headings_label->setText("UTC dB DT Freq " + tr ("Message")); statusChanged(); }