From e20bd5eae1395abc0c316edc7b9230eaba8e3b93 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 29 Jun 2017 13:42:24 +0000 Subject: [PATCH] Don't execute AutoSeq steps after sending a 73. For FT8 mode: 1. Open LU 13 in the proper way. 2. Disable diagnostic LU 51. 3. Add keyboard shortcuts CTRL+Plus, CTRL-Minus, to adjust audio Tx frequency in even 50 Hz steps. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7749 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/decoder.f90 | 35 +++++++++++++++++------------------ lib/ft8_decode.f90 | 6 +++--- mainwindow.cpp | 29 +++++++++++++++++++++++++---- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index ea817d346..ba2b7eaca 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -49,6 +49,22 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(mod(params%nranera,2).eq.0) ntrials=10**(params%nranera/2) if(mod(params%nranera,2).eq.1) ntrials=3*10**(params%nranera/2) if(params%nranera.eq.0) ntrials=0 + + nfail=0 +10 if (params%nagain) then + open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown', & + position='append',iostat=ios) + else + open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown', & + iostat=ios) + end if + if(ios.ne.0) then + nfail=nfail+1 + if(nfail.le.3) then + call sleep_msec(100) + go to 10 + endif + endif if(params%nmode.eq.8) then ! We're in FT8 mode @@ -60,8 +76,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('decft8 ',1) go to 800 endif - - + rms=sqrt(dot_product(float(id2(300000:310000)), & float(id2(300000:310000)))/10000.0) if(rms.lt.2.0) go to 800 @@ -88,22 +103,6 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! id2(1:nz)=0 ! temporarily disabled as it can breaak the JT9 decoder, maybe others endif - nfail=0 -10 if (params%nagain) then - open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown', & - position='append',iostat=ios) - else - open(13,file=trim(temp_dir)//'/decoded.txt',status='unknown', & - iostat=ios) - end if - if(ios.ne.0) then - nfail=nfail+1 - if(nfail.le.3) then - call sleep_msec(100) - go to 10 - endif - endif - if(params%nmode.eq.4 .or. params%nmode.eq.65) open(14,file=trim(temp_dir)// & '/avemsg.txt',status='unknown') if(params%nmode.eq.164) open(17,file=trim(temp_dir)//'/red.dat', & diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 921df6689..19c098ad4 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -61,9 +61,9 @@ contains f1,nbadcrc,message) ! write(13,1110) datetime,0,nsnr,xdt,f1,nharderrors,dmin,message !1110 format(a13,2i4,f6.2,f7.1,i4,' ~ ',f6.2,2x,a22,' FT8') - write(51,3051) xdt,f1,sync,dmin,nsnr,nharderrors,nbadcrc,message -3051 format(4f9.1,3i5,2x,a22) - flush(51) +! write(51,3051) xdt,f1,sync,dmin,nsnr,nharderrors,nbadcrc,message +!3051 format(4f9.1,3i5,2x,a22) +! flush(51) enddo return diff --git a/mainwindow.cpp b/mainwindow.cpp index 12d34635f..93c5f8122 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1432,7 +1432,7 @@ void MainWindow::fastSink(qint64 frames) if(i1>10 and i2>i1+3) { if (ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isChecked () && (message.indexOf (" 73") < 0 || m_ntx != 6)) { - processMessage (message,43,false); + if(!m_sentFirst73) processMessage (message,43,false); } } if (m_mode != "ISCAT") postDecode (true, decodedtext.string ()); @@ -1741,7 +1741,28 @@ void MainWindow::keyPressEvent (QKeyEvent * e) return; } break; - } + case Qt::Key_Plus: + if(e->modifiers() & Qt::ControlModifier) { + int f=ui->TxFreqSpinBox->value()/50; + ui->TxFreqSpinBox->setValue(50*(f+1)); + return; + } + break; + case Qt::Key_Equal: + if(e->modifiers() & Qt::ControlModifier) { + int f=ui->TxFreqSpinBox->value()/50; + ui->TxFreqSpinBox->setValue(50*(f+1)); + return; + } + break; + case Qt::Key_Minus: + if(e->modifiers() & Qt::ControlModifier) { + int f=ui->TxFreqSpinBox->value()/50; + ui->TxFreqSpinBox->setValue(50*(f-1)); + return; + } + break; + } QMainWindow::keyPressEvent (e); } @@ -2514,7 +2535,7 @@ void::MainWindow::fast_decode_done() && ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isChecked () && tmax >= 0.0 && i1 > 10 && i2 > i1 + 3) { if (msg0.indexOf (" 73") < 0 || m_ntx != 6) { - processMessage(msg0,43,false); + if(!m_sentFirst73) processMessage(msg0,43,false); } } if(m_msg[i][0]==0) break; @@ -2734,7 +2755,7 @@ void MainWindow::FT8_AutoSeq(QString message) int i2=message.indexOf(m_hisCall); if(i1>10 and i2>i1+3) { if ((message.indexOf (" 73") < 0 || m_ntx != 6)) { - processMessage (message,43,false); + if(ui->cbAutoSeq->isChecked() and !m_sentFirst73) processMessage (message,43,false); } } }