From 053ba57dc449f465ac9356fedf1b868aaa945599 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 5 Dec 2022 11:01:52 -0500 Subject: [PATCH] Work in progress on q65w ==> stripped-down map65 for wideband Rx. --- CMakeLists.txt | 5 ++++- q65w/libm65/display.f90 | 18 +++++++++++------- q65w/libm65/map65a.f90 | 25 ++++++------------------- q65w/libm65/q65b.f90 | 2 ++ q65w/mainwindow.cpp | 5 +++-- q65w/{map65.pro => q65w.pro} | 0 6 files changed, 26 insertions(+), 29 deletions(-) rename q65w/{map65.pro => q65w.pro} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 201491ce0..a27d5ffb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -972,7 +972,10 @@ if (Fortran_COMPILER_NAME MATCHES "gfortran.*") set (CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fbounds-check -funroll-all-loops -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") -set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -g -fbacktrace -fbounds-check -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") +### TEMPORARY: Let Fortran use RElEASE flags for DEBUG builds +#set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -g -fbacktrace -fbounds-check -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") + set (CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_RELEASE} -fbounds-check -funroll-all-loops -fno-f2c -ffpe-summary=invalid,zero,overflow,underflow ${General_FFLAGS}") + # FPE traps currently disabled in Debug configuration builds until # we decide if they are meaningful, without these FP instructions diff --git a/q65w/libm65/display.f90 b/q65w/libm65/display.f90 index 1fef5c560..158b57c53 100644 --- a/q65w/libm65/display.f90 +++ b/q65w/libm65/display.f90 @@ -138,8 +138,10 @@ subroutine display(nkeep,ftol) ! Suppress listing duplicate (same time, decoded message, and frequency) if(out(14:17).ne.out0(14:17) .or. out(26:50).ne.out0(26:50) .or. & out(1:3).ne.out0(1:3)) then - write(*,1030) out !Messages -1030 format('@',a52) +!### +! write(*,1030) out !Messages +!1030 format('@',a52) +!### out0=out endif @@ -169,11 +171,13 @@ subroutine display(nkeep,ftol) freqcall(nc+1)=' ' freqcall(nc+2)=' ' - do i=1,nc - write(*,1042) freqcall(i) !Band Map -1042 format('&',a12) - enddo +!### +! do i=1,nc +! write(*,1042) freqcall(i) !Band Map +!1042 format('&',a12) +! enddo +!### -999 continue +999 continue return end subroutine display diff --git a/q65w/libm65/map65a.f90 b/q65w/libm65/map65a.f90 index 1861467ad..597842bc8 100644 --- a/q65w/libm65/map65a.f90 +++ b/q65w/libm65/map65a.f90 @@ -67,6 +67,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & call timer('get_cand',1) candec=.false. endif + print*,'~ncand:',ncand !### ! do k=1,ncand ! freq=cand(k)%f+nkhz_center-48.0 @@ -101,7 +102,10 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & if(nutc.ne.nutc0) nfile=nfile+1 nutc0=nutc - do nqd=1,0,-1 +!### +! do nqd=1,0,-1 +!### + do nqd=0,0,-1 if(nqd.eq.1) then !Quick decode, at fQSO fa=1000.0*(fqso+0.001*mousedf) - ntol fb=1000.0*(fqso+0.001*mousedf) + ntol + 4*53.8330078 @@ -162,7 +166,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & ssmax=1.e30 call ccf65(ss(1,1,i),nhsym,ssmax,sync1,ipol,jpz,dt, & flipk,syncshort,snr2,ipol2,dt2) -!### if(dt.lt.-2.6 .or. dt.gt.2.5) sync1=-99.0 !### call timer('ccf65 ',1) if(mode65.eq.0) syncshort=-99.0 !If "No JT65", don't waste time @@ -337,18 +340,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & call txpol(xpol,decoded,mygrid,npol,nxant,ntxpol,cp) - if(ndphi.eq.0) then - write(*,1010) nkHz,ndf,npol,nutc,dt,nsync2, & - cm,decoded,nkv,nqual,ntxpol,cp -1010 format('!',i3,i5,i4,i6.4,f5.1,i5,1x,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, & - cm,decoded,nkv,nqual,30*iloop - write(27,1011) 30*iloop,nkHz,ndf,npol,nutc, & - 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 ! k=1,km @@ -373,7 +364,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & if(.not.q65b_called) then freq=mousefqso + 0.001*mousedf ikhz=mousefqso - f0=freq - (nkhz_center-48.0-1.27046) !### ??? ### + f0=freq - (nkhz_center-48.0-1.27046) call timer('q65b ',0) call q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf, & ntol,xpol,mycall,mygrid,hiscall,hisgrid,mode_q65,f0,fqso, & @@ -382,10 +373,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & endif endif - if(nwrite.eq.0 .and. nwrite_q65.eq.0) then - write(*,1012) mousefqso,nutc -1012 format('!',i3,9x,i6.4,' ') - endif endif !nqd.eq.1 if(ndphi.eq.1 .and.iloop.lt.12) then diff --git a/q65w/libm65/q65b.f90 b/q65w/libm65/q65b.f90 index 7cf455edf..a45263de6 100644 --- a/q65w/libm65/q65b.f90 +++ b/q65w/libm65/q65b.f90 @@ -191,6 +191,8 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & fsked=frx - 0.001*ndop00/2.0 - 1.5 write(12,1120) nutc,fsked,xdt0,nsnr0,trim(msg0) 1120 format(i4.4,f9.3,f7.2,i5,2x,a,i6) + write(*,1121) nutc,fsked,xdt0,nsnr0,trim(msg0) +1121 format('~',i4.4,f9.3,f7.2,i5,2x,a,i6) endif endif diff --git a/q65w/mainwindow.cpp b/q65w/mainwindow.cpp index 2cd8e05ad..0b23fbfe4 100644 --- a/q65w/mainwindow.cpp +++ b/q65w/mainwindow.cpp @@ -1361,6 +1361,7 @@ void MainWindow::readFromStdout() //readFromStdout while(proc_m65.canReadLine()) { QByteArray t=proc_m65.readLine(); + qDebug() << "aa" << t.trimmed(); if(t.indexOf("") >= 0) { m_nsum=t.mid(17,4).toInt(); m_nsave=t.mid(21,4).toInt(); @@ -1387,7 +1388,7 @@ void MainWindow::readFromStdout() //readFromStdout read_log(); - if(t.indexOf("@") >= 0) { + if(t.indexOf("~") >= 0) { int n=t.length(); int m=2; #ifdef WIN32 @@ -1566,7 +1567,7 @@ void MainWindow::guiUpdate() if(m_modeJT65==0 and m_modeTx=="JT65") on_pbTxMode_clicked(); if(nsec != m_sec0) { //Once per second -// qDebug() << "A" << nsec%60 << m_mode65 << m_modeQ65 << m_modeTx; +// qDebug() << "AAA" << nsec%60 << m_mode65 << m_modeQ65 << m_modeTx; soundInThread.setForceCenterFreqMHz(m_wide_graph_window->m_dForceCenterFreq); soundInThread.setForceCenterFreqBool(m_wide_graph_window->m_bForceCenterFreq); diff --git a/q65w/map65.pro b/q65w/q65w.pro similarity index 100% rename from q65w/map65.pro rename to q65w/q65w.pro