From 48505621ae14cd4d67075a3d0e4d1add0e5ec94d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 15 Jan 2017 22:01:24 +0000 Subject: [PATCH] Progress toward full implementation of QRA64 in MAP65. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@7505 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- commons.h | 2 +- getfile.cpp | 8 +--- libm65/decode0.f90 | 4 +- libm65/m65.f90 | 10 ++-- libm65/m65a.F90 | 2 +- libm65/map65a.f90 | 33 +++++++------ libm65/qra64b.f90 | 4 +- libm65/qra64c.f90 | 22 ++++----- mainwindow.cpp | 117 ++++++++++++++++++++++----------------------- mainwindow.h | 13 +++-- mainwindow.ui | 87 +++++++++++++++++++++++++-------- 11 files changed, 175 insertions(+), 127 deletions(-) diff --git a/commons.h b/commons.h index a3fd00ba0..00788f5ec 100644 --- a/commons.h +++ b/commons.h @@ -30,7 +30,7 @@ extern struct { //This is "common/datcom/..." in Fortran int map65RxLog; //Flags to control log files int nfsample; //Input sample rate int nxpol; //1 if using xpol antennas, 0 otherwise - int mode65; //JT65 sub-mode: A=1, B=2, C=4 + int nmode; //nmode = 10*m_modeQRA64 + m_modeJT65 int nfast; //1 for sub-modes ABC; 2 for B2, C2 int nsave; //Number of s3(64,63) spectra saved char mycall[12]; diff --git a/getfile.cpp b/getfile.cpp index 3cfba38cf..dd314c3ba 100644 --- a/getfile.cpp +++ b/getfile.cpp @@ -48,13 +48,7 @@ void getfile(QString fname, bool xpol, int dbDgrd, int nfast) if(i0<0) i0=fname.indexOf(".iq"); datcom_.nutc=0; if(i0>0) { - if(fname.mid(i0-5,1)=="_") { - datcom_.nutc=10000*fname.mid(i0-4,2).toInt() + - 100*fname.mid(i0-2,2).toInt(); - } else { - datcom_.nutc=10000*fname.mid(i0-6,2).toInt() + - 100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt(); - } + datcom_.nutc=100*fname.mid(i0-4,2).toInt() + fname.mid(i0-2,2).toInt(); } } } diff --git a/libm65/decode0.f90 b/libm65/decode0.f90 index 1fe773e53..81f82ef42 100644 --- a/libm65/decode0.f90 +++ b/libm65/decode0.f90 @@ -10,7 +10,7 @@ subroutine decode0(dd,ss,savg,nstandalone) character mycall0*12,hiscall0*12,hisgrid0*6 common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & - mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, & + mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime common/tracer/ limtrace,lu data neme0/-99/,mcall3b/1/ @@ -54,7 +54,7 @@ subroutine decode0(dd,ss,savg,nstandalone) call map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi, & nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid, & - neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast) + neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast) call timer('map65a ',1) call timer('decode0 ',1) diff --git a/libm65/m65.f90 b/libm65/m65.f90 index 3cf6c95f7..11a821934 100644 --- a/libm65/m65.f90 +++ b/libm65/m65.f90 @@ -16,7 +16,7 @@ program m65 common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(4,NFFT),fc0,nutc0,junk(36) common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & - mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, & + mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime nargs=iargc() @@ -34,9 +34,11 @@ program m65 call ftnquit go to 999 endif - if(arg(1:1).eq.'A') mode65=1 - if(arg(1:1).eq.'B') mode65=2 - if(arg(1:1).eq.'C') mode65=4 +!### These need fixing: + if(arg(1:1).eq.'A') nmode=1 + if(arg(1:1).eq.'B') nmode=2 + if(arg(1:1).eq.'C') nmode=3 +!### nfast=1 if(arg(2:2).eq.'2') nfast=2 nfsample=96000 diff --git a/libm65/m65a.F90 b/libm65/m65a.F90 index 7e1997399..a24b8676d 100644 --- a/libm65/m65a.F90 +++ b/libm65/m65a.F90 @@ -68,7 +68,7 @@ subroutine m65c(dd,ss,savg,nparams0) character*20 datetime common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & - mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,mode65, & + mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & nfast,nsave,mycall,mygrid,hiscall,hisgrid,datetime equivalence (nparams,fcenter) diff --git a/libm65/map65a.f90 b/libm65/map65a.f90 index 5cb178563..c0c582eae 100644 --- a/libm65/map65a.f90 +++ b/libm65/map65a.f90 @@ -1,7 +1,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & mousedf,mousefqso,nagain,ndecdone,ndiskdat,nfshift,ndphi, & nfcal,nkeep,mcall3b,nsum,nsave,nxant,rmsdd,mycall,mygrid, & - neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,mode65,nfast) + neme,ndepth,hiscall,hisgrid,nhsym,nfsample,nxpol,nmode,nfast) ! Processes timf2 data from Linrad to find and decode JT65 signals. @@ -17,7 +17,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & real*8 fcenter character*22 msg(MAXMSG) character*3 shmsg0(4) - character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1 + character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1,cm*1 integer indx(MAXMSG),nsiz(MAXMSG) logical done(MAXMSG) logical xpol,bqra64 @@ -27,13 +27,16 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & common/c3com/ mcall3a common/testcom/ifreq - data blank/' '/ + data blank/' '/,cm/'#'/ data shmsg0/'ATT','RO ','RRR','73 '/ data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/ save - bqra64=nfast.ge.100 - nfast=mod(nfast,100) + mode65=mod(nmode,10) + if(mode65.eq.3) mode65=4 + modeqra64=nmode/10 + + bqra64=modeqra64.gt.0 mcall3a=mcall3b mousefqso0=mousefqso xpol=(nxpol.ne.0) @@ -222,7 +225,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & if(nqd.eq.2) then call timer('qra64 ',0) call qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall, & - hiscall,hisgrid) + hiscall,hisgrid,nwrite_qra64) call timer('qra64 ',1) cycle endif @@ -323,22 +326,22 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & if(ndphi.eq.0) then write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2, & - decoded,nkv,nqual,ntxpol,cp -1010 format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1) + cm,decoded,nkv,nqual,ntxpol,cp +1010 format('!',i3,i5,i4,i6.4,1x,f5.1,i4,a1,1x,a22,i2,i5,i5,1x,a1) else if(iloop.ge.1) qphi(iloop)=sig(k,10) write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2, & - decoded,nkv,nqual,30*iloop + cm,decoded,nkv,nqual,30*iloop write(27,1011) 30*iloop,nkHz,ndf,npol,nutc, & - dt,sync2,nkv,nqual,decoded -1011 format(i3,i4,i5,i4,i7.6,f5.1,f7.1,i3,i5,2x,a22) + dt,sync2,nkv,nqual,cm,decoded +1011 format(i3,i4,i5,i4,i6.4,1x,f5.1,f7.1,i3,i5,a1,1x,a22) endif endif enddo - if(nwrite.eq.0) then + if(nwrite.eq.0 .and. nwrite_qra64.eq.0) then write(*,1012) mousefqso,nutc -1012 format('!',i3,9x,i7.6,' ') +1012 format('!',i3,9x,i6.4,' ') endif endif @@ -457,14 +460,14 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & nsync2,nutc,decoded,cp,cmode write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1, & nsync2,nutc,decoded,cp,cmode -1014 format(f8.3,i5,3i3,f5.1,i4,i3,i4,i7.6,2x,a22,2x,a1,3x,a2) +1014 format(f8.3,i5,3i3,f5.1,i4,i3,i4,i5.4,4x,a22,2x,a1,3x,a2) endif endif j=j+nsiz(n) enddo write(26,1015) nutc -1015 format(39x,i6.6) +1015 format(38x,i6.4,' ') call flush(21) call flush(26) call display(nkeep,ftol) diff --git a/libm65/qra64b.f90 b/libm65/qra64b.f90 index 20b9dca66..142076f5c 100644 --- a/libm65/qra64b.f90 +++ b/libm65/qra64b.f90 @@ -1,5 +1,5 @@ subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12, & - hisgrid_6) + hisgrid_6,nwrite_qra64) parameter (NFFT1=5376000) !56*96000 parameter (NFFT2=336000) !56*6000 (downsampled by 1/16) @@ -28,7 +28,7 @@ subroutine qra64b(nutc,nqd,ikhz,mousedf,ntol,xpol,mycall_12,hiscall_12, & ! write(67) nutc,cx,cy call qra64c(cx,cy,nutc,nqd,ikhz,mousedf,ntol,xplo,mycall_12, & - hiscall_12,hisgrid_6) + hiscall_12,hisgrid_6,nwrite_qra64) close(17) return diff --git a/libm65/qra64c.f90 b/libm65/qra64c.f90 index bbb069074..e97baa5c3 100644 --- a/libm65/qra64c.f90 +++ b/libm65/qra64c.f90 @@ -1,5 +1,5 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, & - hiscall_12,hisgrid_6) + hiscall_12,hisgrid_6,nwrite_qra64) use packjt parameter (NFFT2=336000) !56*6000 (downsampled by 1/16) @@ -13,7 +13,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, & character*12 mycall_12,hiscall_12 character*6 mycall,hiscall,hisgrid_6 character*4 hisgrid - character*1 cp + character*1 cp,cmode logical xpol,ltext complex cx(0:NFFT2-1),cy(0:NFFT2-1) complex c00(0:720000) !Complex spectrum of dd() @@ -24,7 +24,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, & integer dat4(12) !Decoded message (as 12 integers) integer dat4x(12) integer nap(0:11) - data nap/0,2,3,2,3,4,2,3,6,4,6,6/ + data nap/0,2,3,2,3,4,2,3,6,4,6,6/,cmode/'$'/ data nc1z/-1/,nc2z/-1/,ng2z/-1/,maxaptypez/-1/ save @@ -37,6 +37,7 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, & emedelay=2.5 irc=-1 + nwrite_qra64=0 decoded=' ' nft=99 mycall=mycall_12(1:6) @@ -160,22 +161,17 @@ subroutine qra64c(cx,cy,nutc,nqd,ikhz,nfqso,ntol,xpol,mycall_12, & if(nSubmode.eq.4) nsnr=nint(10.0*log10(sy)-24.0) !E endif -! write(*,1011) nutc/100,nsnr,dtx,nfreq,decoded -!1011 format(i4.4,i4,f5.1,i5,1x,2x,1x,a22) - npol=0 cp='H' ntxpol=0 if(irc.ge.0) then - write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr,decoded,irc,ntxpol,cp -!1010 format('!',i3,i5,i4,i7.6,f5.1,i4,2x,a22,i2,i5,i5,1x,a1) -!1010 format(i3,i5,i4,i5.4,f5.1,i5,2x,a22,i2,i5,1x,a1) -1010 format('!',i3,i5,i4,i6.4,f5.1,i5,2x,a22,i2,i5,1x,a1) + write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode,decoded,irc,ntxpol,cp +1010 format('!',i3,i5,i4,i6.4,f5.1,i5,a1,1x,a22,i2,i5,1x,a1) + nwrite_qra64=nwrite_qra64+1 else - write(*,1010) ikHz,nfreq,npol,nutc/100,dtx,nsnr + write(*,1010) ikHz,nfreq,npol,nutc,dtx,nsnr,cmode + nwrite_qra64=nwrite_qra64+1 endif -! goto 1 - 999 return end subroutine qra64c diff --git a/mainwindow.cpp b/mainwindow.cpp index 16ba488c8..544d25309 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -61,11 +61,18 @@ MainWindow::MainWindow(QWidget *parent) : ui->actionBlue->setActionGroup(paletteGroup); QActionGroup* modeGroup = new QActionGroup(this); + ui->actionNoJT65->setActionGroup(modeGroup); ui->actionJT65A->setActionGroup(modeGroup); ui->actionJT65B->setActionGroup(modeGroup); ui->actionJT65C->setActionGroup(modeGroup); - ui->actionJT65B2->setActionGroup(modeGroup); - ui->actionJT65C2->setActionGroup(modeGroup); + + QActionGroup* modeGroup2 = new QActionGroup(this); + ui->actionNoQRA64->setActionGroup(modeGroup2); + ui->actionQRA64A->setActionGroup(modeGroup2); + ui->actionQRA64B->setActionGroup(modeGroup2); + ui->actionQRA64C->setActionGroup(modeGroup2); + ui->actionQRA64D->setActionGroup(modeGroup2); + ui->actionQRA64E->setActionGroup(modeGroup2); QActionGroup* saveGroup = new QActionGroup(this); ui->actionSave_all->setActionGroup(saveGroup); @@ -152,7 +159,8 @@ MainWindow::MainWindow(QWidget *parent) : m_colors="000066ff0000ffff00969696646464"; m_nfast=1; m_nsave=0; - m_bQRA64=false; + m_modeJT65=0; + m_modeQRA64=0; bTune=false; txPower=100; iqAmp=0; @@ -219,9 +227,6 @@ MainWindow::MainWindow(QWidget *parent) : if(m_mode=="JT65A") on_actionJT65A_triggered(); if(m_mode=="JT65B") on_actionJT65B_triggered(); if(m_mode=="JT65C") on_actionJT65C_triggered(); - if(m_mode=="JT65B2") on_actionJT65B2_triggered(); - if(m_mode=="JT65C2") on_actionJT65C2_triggered(); - future1 = new QFuture; watcher1 = new QFutureWatcher; connect(watcher1, SIGNAL(finished()),this,SLOT(diskDat())); @@ -367,12 +372,13 @@ void MainWindow::writeSettings() settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked()); settings.setValue("PaletteBlue",ui->actionBlue->isChecked()); settings.setValue("Mode",m_mode); + settings.setValue("nModeJT65",m_modeJT65); + settings.setValue("nModeQRA64",m_modeQRA64); settings.setValue("SaveNone",ui->actionNone->isChecked()); settings.setValue("SaveAll",ui->actionSave_all->isChecked()); settings.setValue("NDepth",m_ndepth); settings.setValue("NEME",m_onlyEME); settings.setValue("KB8RQ",m_kb8rq); - settings.setValue("DecodeQRA64",m_bQRA64); settings.setValue("NB",m_NB); settings.setValue("NBslider",m_NBslider); settings.setValue("GainX",(double)m_gainx); @@ -451,11 +457,16 @@ void MainWindow::readSettings() "PaletteCuteSDR",true).toBool()); ui->actionLinrad->setChecked(settings.value( "PaletteLinrad",false).toBool()); - ui->actionAFMHot->setChecked(settings.value( - "PaletteAFMHot",false).toBool()); - ui->actionBlue->setChecked(settings.value( - "PaletteBlue",false).toBool()); m_mode=settings.value("Mode","JT65B").toString(); + m_modeJT65=settings.value("nModeJT65",2).toInt(); + m_modeQRA64=settings.value("nModeQRA64",2).toInt(); + if(m_modeQRA64==0) ui->actionNoQRA64->setChecked(true); + if(m_modeQRA64==1) ui->actionQRA64A->setChecked(true); + if(m_modeQRA64==2) ui->actionQRA64B->setChecked(true); + if(m_modeQRA64==3) ui->actionQRA64C->setChecked(true); + if(m_modeQRA64==4) ui->actionQRA64D->setChecked(true); + if(m_modeQRA64==5) ui->actionQRA64E->setChecked(true); + ui->actionNone->setChecked(settings.value("SaveNone",true).toBool()); ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool()); m_saveAll=ui->actionSave_all->isChecked(); @@ -464,8 +475,6 @@ void MainWindow::readSettings() ui->actionOnly_EME_calls->setChecked(m_onlyEME); m_kb8rq=settings.value("KB8RQ",false).toBool(); ui->actionF4_sets_Tx6->setChecked(m_kb8rq); - m_bQRA64=settings.value("DecodeQRA64",false).toBool(); - ui->actionDecode_QRA64_near_QSO_frequency->setChecked(m_bQRA64); m_NB=settings.value("NB",false).toBool(); ui->NBcheckBox->setChecked(m_NB); m_NBslider=settings.value("NBslider",40).toInt(); @@ -591,13 +600,6 @@ void MainWindow::dataSink(int k) if(m_saveAll and !m_diskData) { QString fname=m_saveDir + "/" + t.date().toString("yyMMdd") + "_" + t.time().toString("hhmm"); - if(m_nfast==2) { - if(t.time().second() < 30) { - fname += "00"; - } else { - fname += "30"; - } - } if(m_xpol) fname += ".tf2"; if(!m_xpol) fname += ".iq"; *future2 = QtConcurrent::run(savetf2, fname, m_xpol, m_nfast); @@ -1034,14 +1036,11 @@ void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next QStringList list; if(m_xpol) { list= fi.dir().entryList().filter(".tf2"); -// len=15; } else { list= fi.dir().entryList().filter(".iq"); -// len=14; } for (i = 0; i < list.size()-1; ++i) { if(i==list.size()-2) m_loopall=false; -// qDebug() << len << i << list.at(i) << list.at(i).length(); len=list.at(i).length(); if(list.at(i)==m_path.right(len)) { int n=m_path.length(); @@ -1222,9 +1221,7 @@ void MainWindow::decode() //decode() int imin=ms/60000; int ihr=imin/60; imin=imin % 60; - int isec=(ms/1000) % 60; - datcom_.nutc=100*(100*ihr + imin); - if((m_mode=="JT65B2" or m_mode=="JT65C2") and isec>30) datcom_.nutc += 30; + datcom_.nutc=100*ihr + imin; } datcom_.idphi=m_dPhi; @@ -1260,9 +1257,8 @@ void MainWindow::decode() //decode() if(!m_fs96000) datcom_.nfsample=95238; datcom_.nxpol=0; if(m_xpol) datcom_.nxpol=1; - datcom_.mode65=m_mode65; + datcom_.nmode=10*m_modeQRA64 + m_modeJT65; datcom_.nfast=m_nfast; - if(m_bQRA64) datcom_.nfast += 100; datcom_.nsave=m_nsave; QString mcall=(m_myCall+" ").mid(0,12); @@ -1330,7 +1326,7 @@ void MainWindow::readFromStdout() //readFromStdout QString t2; t2.sprintf("Avg: %d",m_nsum); lab6->setText(t2); - if(m_bQRA64) g_pWideGraph->setDecodeFinished(); + if(m_modeQRA64>0) g_pWideGraph->setDecodeFinished(); } if(t.indexOf("") >= 0) { if(m_widebandDecode) { @@ -1543,7 +1539,6 @@ void MainWindow::guiUpdate() } if(nsec != m_sec0) { //Once per second -// qDebug() << txPower << iqAmp << iqPhase; // qDebug() << "B" << bTune << bTxTime << btxok; soundInThread.setForceCenterFreqMHz(g_pWideGraph->m_dForceCenterFreq); soundInThread.setForceCenterFreqBool(g_pWideGraph->m_bForceCenterFreq); @@ -2048,9 +2043,14 @@ void MainWindow::on_actionErase_map65_tx_log_triggered() //Erase Tx log } } +void MainWindow::on_actionNoJT65_triggered() +{ + m_modeJT65=0; +} void MainWindow::on_actionJT65A_triggered() { m_mode="JT65A"; + m_modeJT65=1; m_mode65=1; m_nfast=1; m_TRperiod=60; @@ -2066,6 +2066,7 @@ void MainWindow::on_actionJT65A_triggered() void MainWindow::on_actionJT65B_triggered() { m_mode="JT65B"; + m_modeJT65=2; m_mode65=2; m_nfast=1; m_TRperiod=60; @@ -2081,6 +2082,7 @@ void MainWindow::on_actionJT65B_triggered() void MainWindow::on_actionJT65C_triggered() { m_mode="JT65C"; + m_modeJT65=3; m_mode65=4; m_nfast=1; m_TRperiod=60; @@ -2093,36 +2095,38 @@ void MainWindow::on_actionJT65C_triggered() ui->actionJT65C->setChecked(true); } -void MainWindow::on_actionJT65B2_triggered() +void MainWindow::on_actionNoQRA64_triggered() { - m_mode="JT65B2"; - m_mode65=2; - m_nfast=2; - m_TRperiod=30; - soundInThread.setPeriod(m_TRperiod); - soundOutThread.setPeriod(m_TRperiod); - g_pWideGraph->setMode65(m_mode65); - g_pWideGraph->setPeriod(m_TRperiod); - lab5->setStyleSheet("QLabel{background-color: #7fff00}"); - lab5->setText(m_mode); - ui->actionJT65B2->setChecked(true); + m_modeQRA64=0; } -void MainWindow::on_actionJT65C2_triggered() +void MainWindow::on_actionQRA64A_triggered() { - m_mode="JT65C2"; - m_mode65=4; - m_nfast=2; - m_TRperiod=30; - soundInThread.setPeriod(m_TRperiod); - soundOutThread.setPeriod(m_TRperiod); - g_pWideGraph->setMode65(m_mode65); - g_pWideGraph->setPeriod(m_TRperiod); - lab5->setStyleSheet("QLabel{background-color: #97ffff}"); - lab5->setText(m_mode); - ui->actionJT65C2->setChecked(true); + m_modeQRA64=1; } +void MainWindow::on_actionQRA64B_triggered() +{ + m_modeQRA64=2; +} + + +void MainWindow::on_actionQRA64C_triggered() +{ + m_modeQRA64=3; +} + +void MainWindow::on_actionQRA64D_triggered() +{ + m_modeQRA64=4; +} + +void MainWindow::on_actionQRA64E_triggered() +{ + m_modeQRA64=5; +} + + void MainWindow::on_NBcheckBox_toggled(bool checked) { m_NB=checked; @@ -2165,8 +2169,3 @@ void MainWindow::on_actionTx_Tune_triggered() g_pTxTune->set_txPower(txPower); g_pTxTune->show(); } - -void MainWindow::on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b) -{ - m_bQRA64=b; -} diff --git a/mainwindow.h b/mainwindow.h index 11c4d7c8b..97e64076b 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -124,11 +124,15 @@ private slots: void on_actionAFMHot_triggered(); void on_actionBlue_triggered(); void on_actionFUNcube_Dongle_triggered(); - void on_actionJT65B2_triggered(); - void on_actionJT65C2_triggered(); void on_actionEdit_wsjt_log_triggered(); void on_actionTx_Tune_triggered(); - void on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b); + void on_actionQRA64A_triggered(); + void on_actionQRA64B_triggered(); + void on_actionNoJT65_triggered(); + void on_actionNoQRA64_triggered(); + void on_actionQRA64C_triggered(); + void on_actionQRA64D_triggered(); + void on_actionQRA64E_triggered(); private: Ui::MainWindow *ui; @@ -166,6 +170,8 @@ private: qint32 m_nsum; qint32 m_nsave; qint32 m_TRperiod; + qint32 m_modeJT65; + qint32 m_modeQRA64; double m_fAdd; // double m_IQamp; @@ -197,7 +203,6 @@ private: bool m_10db; bool m_initIQplus; bool m_bIQxt; - bool m_bQRA64; float m_gainx; float m_gainy; diff --git a/mainwindow.ui b/mainwindow.ui index 1ab8fa750..82a25a377 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -59,7 +59,7 @@ - Freq DF Pol UTC DT dB KV DS TxPol + Freq DF Pol UTC DT dB @@ -1164,11 +1164,17 @@ p, li { white-space: pre-wrap; } Mode + - - + + + + + + + @@ -1512,22 +1518,6 @@ p, li { white-space: pre-wrap; } FUNcube Dongle Settings - - - true - - - JT65B2 - - - - - true - - - JT65C2 - - Edit wsjt.log @@ -1552,6 +1542,65 @@ p, li { white-space: pre-wrap; } Decode QRA64 near QSO frequency + + + true + + + QRA64A + + + + + true + + + QRA64B + + + + + true + + + No JT65 + + + + + true + + + true + + + No QRA64 + + + + + true + + + QRA64C + + + + + true + + + QRA64D + + + + + true + + + QRA64E + +