From 146fa7b9c2a3998f4b105369b714c81ecc98f83c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 28 Jun 2021 13:37:57 +0100 Subject: [PATCH 01/16] Bump RC number --- CMakeLists.txt | 2 +- map65/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cfd644278..7aaec4f5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ message (STATUS "******************************************************") include (set_build_type) # RC 0 or omitted is a development build, GA is a General Availability release build -set_build_type (RC 2) +set_build_type (RC 3) set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}") # diff --git a/map65/main.cpp b/map65/main.cpp index fb910a116..c03d14cb8 100644 --- a/map65/main.cpp +++ b/map65/main.cpp @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) QApplication a {argc, argv}; // Override programs executable basename as application name. a.setApplicationName ("MAP65"); - a.setApplicationVersion ("3.0.0-rc2"); + a.setApplicationVersion ("3.0.0-rc3"); // switch off as we share an Info.plist file with WSJT-X a.setAttribute (Qt::AA_DontUseNativeMenuBar); MainWindow w; From 915571827c47031e10792891578896de1fe88671 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 29 Jun 2021 10:17:42 -0400 Subject: [PATCH 02/16] Fix a compiler warning. --- lib/qra/q65/q65.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/qra/q65/q65.f90 b/lib/qra/q65/q65.f90 index 914932705..8aabe4152 100644 --- a/lib/qra/q65/q65.f90 +++ b/lib/qra/q65/q65.f90 @@ -453,6 +453,7 @@ subroutine q65_ccf_22(s1,iz,jz,nfqso,ntol,ndepth,ntrperiod,iavg,ipk,jpk, & ibest=0 lagpk=0 lagbest=0 + idrift_best=0 do i=ia,ib ccfmax=0. do lag=lag1,lag2 From f543cc21e7783e8895be72a185f60e98db72e294 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 29 Jun 2021 17:35:07 -0400 Subject: [PATCH 03/16] Protect against jpk being too large (xdt > 4.8 s ?) in q65_loops. --- lib/qra/q65/q65_loops.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/qra/q65/q65_loops.f90 b/lib/qra/q65/q65_loops.f90 index a1bcc64cb..f6a80a2a9 100644 --- a/lib/qra/q65/q65_loops.f90 +++ b/lib/qra/q65/q65_loops.f90 @@ -59,7 +59,8 @@ subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, & ndt=idt/2 if(mod(idt,2).eq.0) ndt=-ndt jpk=jpk0 + nsps2*ndt/16 !tsym/16 - if(jpk.lt.0) jpk=0 + jpk=max(0,jpk) + jpk=min(29000,jpk) call spec64(c0,nsps2,mode_q65,jpk,s3,LL,NN) call pctile(s3,LL*NN,40,base) s3=s3/base From 6310fcf6193e44524fa16ae077e51ad95b0d854b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 30 Jun 2021 10:40:38 -0400 Subject: [PATCH 04/16] Declare array c0 in spec64() with its active length rather than its maximum length. --- lib/qra/q65/q65_loops.f90 | 2 +- lib/spec64.f90 | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/qra/q65/q65_loops.f90 b/lib/qra/q65/q65_loops.f90 index f6a80a2a9..ec93adb09 100644 --- a/lib/qra/q65/q65_loops.f90 +++ b/lib/qra/q65/q65_loops.f90 @@ -61,7 +61,7 @@ subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, & jpk=jpk0 + nsps2*ndt/16 !tsym/16 jpk=max(0,jpk) jpk=min(29000,jpk) - call spec64(c0,nsps2,mode_q65,jpk,s3,LL,NN) + call spec64(c0,npts2,nsps2,mode_q65,jpk,s3,LL,NN) call pctile(s3,LL*NN,40,base) s3=s3/base where(s3(1:LL*NN)>s3lim) s3(1:LL*NN)=s3lim diff --git a/lib/spec64.f90 b/lib/spec64.f90 index b3b7d54d6..73be44d18 100644 --- a/lib/spec64.f90 +++ b/lib/spec64.f90 @@ -1,8 +1,7 @@ -subroutine spec64(c0,nsps,mode_q65,jpk,s3,LL,NN) +subroutine spec64(c0,npts,nsps,mode_q65,jpk,s3,LL,NN) parameter (MAXFFT=20736) -!### Fix this: - complex c0(0:1800000-1) !Complex spectrum of dd() + complex c0(0:npts-1) !Complex spectrum of dd() complex cs(0:MAXFFT-1) !Complex symbol spectrum real s3(LL,NN) !Synchronized symbol spectra real xbase0(LL),xbase(LL) From 8ab721bde3c83c5d0b2879bffbf65e791dae9169 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 30 Jun 2021 11:28:03 -0400 Subject: [PATCH 05/16] Further protection against bounds error is spec64. --- lib/spec64.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/spec64.f90 b/lib/spec64.f90 index 73be44d18..048bf6700 100644 --- a/lib/spec64.f90 +++ b/lib/spec64.f90 @@ -20,6 +20,8 @@ subroutine spec64(c0,npts,nsps,mode_q65,jpk,s3,LL,NN) j=j+1 ja=(k-1)*nsps + jpk jb=ja+nsps-1 + if(ja.lt.0) ja=0 + if(jb.gt.npts-1) jb=npts-1 cs(0:nfft-1)=c0(ja:jb) call four2a(cs,nsps,1,-1,1) !c2c FFT to frequency do ii=1,LL From 772e8d1947d6917788979527d29bad9e34aa2598 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 30 Jun 2021 11:28:40 -0400 Subject: [PATCH 06/16] Provide access to Release Notes from MAP65 Help menu. --- map65/mainwindow.cpp | 7 +++++++ map65/mainwindow.h | 1 + map65/mainwindow.ui | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/map65/mainwindow.cpp b/map65/mainwindow.cpp index f3d08f2a1..7a889b0c8 100644 --- a/map65/mainwindow.cpp +++ b/map65/mainwindow.cpp @@ -981,6 +981,13 @@ void MainWindow::stub() //stub() msgBox("Not yet implemented."); } +void MainWindow::on_actionRelease_Notes_triggered() +{ + QDesktopServices::openUrl(QUrl( + "https://www.physics.princeton.edu/pulsar/K1JT/Release_Notes.txt", + QUrl::TolerantMode)); +} + void MainWindow::on_actionOnline_Users_Guide_triggered() //Display manual { QDesktopServices::openUrl(QUrl( diff --git a/map65/mainwindow.h b/map65/mainwindow.h index 7dbe1194c..d03028de4 100644 --- a/map65/mainwindow.h +++ b/map65/mainwindow.h @@ -76,6 +76,7 @@ private slots: void on_tolSpinBox_valueChanged(int arg1); void on_actionAstro_Data_triggered(); void on_stopButton_clicked(); + void on_actionRelease_Notes_triggered(); void on_actionOnline_Users_Guide_triggered(); void on_actionQSG_Q65_triggered(); void on_actionQSG_MAP65_v3_triggered(); diff --git a/map65/mainwindow.ui b/map65/mainwindow.ui index c52295a93..7497108da 100644 --- a/map65/mainwindow.ui +++ b/map65/mainwindow.ui @@ -1233,6 +1233,7 @@ p, li { white-space: pre-wrap; } Help + @@ -1698,6 +1699,11 @@ p, li { white-space: pre-wrap; } Q65 Sensitivity in MAP65 3.0 + + + Release Notes + + From e0c06168cf284022d7a51604fd1cbd5a9a6bbce8 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 30 Jun 2021 14:49:00 -0400 Subject: [PATCH 07/16] One more attempt at fixing the bounds errors in spec64. --- lib/spec64.f90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/spec64.f90 b/lib/spec64.f90 index 048bf6700..793220500 100644 --- a/lib/spec64.f90 +++ b/lib/spec64.f90 @@ -22,7 +22,9 @@ subroutine spec64(c0,npts,nsps,mode_q65,jpk,s3,LL,NN) jb=ja+nsps-1 if(ja.lt.0) ja=0 if(jb.gt.npts-1) jb=npts-1 - cs(0:nfft-1)=c0(ja:jb) + nz=jb-ja + cs(0:nz)=c0(ja:jb) + if(nz.lt.nfft-1) cs(nz+1:)=0. call four2a(cs,nsps,1,-1,1) !c2c FFT to frequency do ii=1,LL i=ii-65+mode_q65 !mode_q65 = 1 2 4 8 16 for Q65 A B C D E From 525c791a169341393cd80571100677330205443e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 1 Jul 2021 11:14:46 -0400 Subject: [PATCH 08/16] Fix the loop exit criterion in polfit.f90. --- map65/libm65/polfit.f90 | 7 ++++--- map65/libm65/wideband_sync.f90 | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/map65/libm65/polfit.f90 b/map65/libm65/polfit.f90 index 7013432e2..e01bbe6a9 100644 --- a/map65/libm65/polfit.f90 +++ b/map65/libm65/polfit.f90 @@ -56,15 +56,16 @@ subroutine polfit(y,npts,a) deltaa(j)=deltaa(j)*fn/3. ! write(*,4000) iter,j,a,deltaa,chisq2 !4000 format(2i2,2(2x,3f8.2),f12.5) - enddo + enddo ! j=1,nterms chisqr=fchisq_pol(y,npts,a) ! write(*,4000) 0,0,a,chisqr + if(chisqr.lt.1.0) exit if(deltaa(1).lt.0.01*(a(2)-a(1)) .and. deltaa(2).lt.0.01*(a(2)-a(1)) & .and. deltaa(3).lt.1.0) exit if(chisqr/chisqr0.gt.0.99) exit - a(3)=mod(a(3)+360.0,180.0) chisqr0=chisqr - enddo + enddo ! iter + a(3)=mod(a(3)+360.0,180.0) return end subroutine polfit diff --git a/map65/libm65/wideband_sync.f90 b/map65/libm65/wideband_sync.f90 index 65b5074ce..ee582549d 100644 --- a/map65/libm65/wideband_sync.f90 +++ b/map65/libm65/wideband_sync.f90 @@ -44,7 +44,7 @@ subroutine get_candidates(ss,savg,xpol,nfa,nfb,nts_jt65,nts_q65,cand,ncand) enddo jz=j -call wb_sync(ss,savg,xpol,jz,nfa,nfb) + call wb_sync(ss,savg,xpol,jz,nfa,nfb) tstep=2048.0/11025.0 !0.185760 s: 0.5*tsym_jt65, 0.3096*tsym_q65 df3=96000.0/NFFT From 243d7d58355e91dfcabc1eb246a52aba1d6740c1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 1 Jul 2021 16:48:37 +0100 Subject: [PATCH 09/16] Only wait one second for m65 to terminate in map65 exit This also disconnects QProcess signals so any abend from m65 while closing is silently ignored. --- map65/mainwindow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/map65/mainwindow.cpp b/map65/mainwindow.cpp index 7a889b0c8..e8f574f9f 100644 --- a/map65/mainwindow.cpp +++ b/map65/mainwindow.cpp @@ -952,8 +952,8 @@ void MainWindow::closeEvent (QCloseEvent * e) proc_m65.setReadChannel (QProcess::StandardError); proc_m65.readAll (); - // allow time for any decode cycle to finish - if (!proc_m65.waitForFinished ()) proc_m65.kill(); + proc_m65.disconnect (); + if (!proc_m65.waitForFinished (1000)) proc_m65.kill(); quitFile.remove(); mem_m65.detach(); if (m_astro_window) m_astro_window->close (); From 203c8c25dd38ba22501b40ed6d06701f2680a46d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 1 Jul 2021 13:21:32 -0400 Subject: [PATCH 10/16] Tweak timer calls to distinguish the QuickDecode portion. --- lib/qra/q65/q65.f90 | 4 ++-- map65/libm65/map65a.f90 | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/qra/q65/q65.f90 b/lib/qra/q65/q65.f90 index 8aabe4152..ac62d0b3c 100644 --- a/lib/qra/q65/q65.f90 +++ b/lib/qra/q65/q65.f90 @@ -160,9 +160,9 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & call q65_ccf_85(s1,iz,jz,nfqso,ia,ia2,ipk,jpk,f0,xdt,imsg_best,ccf1) call timer('ccf_85 ',1) - call timer('list_dec',0) + call timer('dec_q3 ',0) call q65_dec_q3(s1,iz,jz,s3,LL,ipk,jpk,snr2,dat4,idec,decoded) - call timer('list_dec',1) + call timer('dec_q3 ',1) ! If idec=3 we have a q3 decode. Continue to compute sync curve for plotting. endif diff --git a/map65/libm65/map65a.f90 b/map65/libm65/map65a.f90 index e8359a5a0..7fae2b3d7 100644 --- a/map65/libm65/map65a.f90 +++ b/map65/libm65/map65a.f90 @@ -37,6 +37,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/ save + call timer('quick ',0) nkhz_center=nint(1000.0*(fcenter-int(fcenter))) mfa=nfa-nkhz_center+48 mfb=nfb-nkhz_center+48 @@ -381,6 +382,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & write(*,1013) nsum,nsave 1013 format('',2i4) flush(6) + call timer('quick ',1) endif if(nqd.eq.1 .and. nagain.eq.1) go to 900 From 4b0f11621960f2761e385b04f7dc5f59f16fd6ef Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 1 Jul 2021 14:45:33 -0400 Subject: [PATCH 11/16] Revert "Tweak timer calls to distinguish the QuickDecode portion." This reverts commit 203c8c25dd38ba22501b40ed6d06701f2680a46d. --- lib/qra/q65/q65.f90 | 4 ++-- map65/libm65/map65a.f90 | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/qra/q65/q65.f90 b/lib/qra/q65/q65.f90 index ac62d0b3c..8aabe4152 100644 --- a/lib/qra/q65/q65.f90 +++ b/lib/qra/q65/q65.f90 @@ -160,9 +160,9 @@ subroutine q65_dec0(iavg,nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, & call q65_ccf_85(s1,iz,jz,nfqso,ia,ia2,ipk,jpk,f0,xdt,imsg_best,ccf1) call timer('ccf_85 ',1) - call timer('dec_q3 ',0) + call timer('list_dec',0) call q65_dec_q3(s1,iz,jz,s3,LL,ipk,jpk,snr2,dat4,idec,decoded) - call timer('dec_q3 ',1) + call timer('list_dec',1) ! If idec=3 we have a q3 decode. Continue to compute sync curve for plotting. endif diff --git a/map65/libm65/map65a.f90 b/map65/libm65/map65a.f90 index 7fae2b3d7..e8359a5a0 100644 --- a/map65/libm65/map65a.f90 +++ b/map65/libm65/map65a.f90 @@ -37,7 +37,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/ save - call timer('quick ',0) nkhz_center=nint(1000.0*(fcenter-int(fcenter))) mfa=nfa-nkhz_center+48 mfb=nfb-nkhz_center+48 @@ -382,7 +381,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & write(*,1013) nsum,nsave 1013 format('',2i4) flush(6) - call timer('quick ',1) endif if(nqd.eq.1 .and. nagain.eq.1) go to 900 From 1642458358731e098d0da2ea86bf85dc1c05fbdd Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 1 Jul 2021 15:00:21 -0400 Subject: [PATCH 12/16] Save QuickDecode time in file 'tquick.dat'. --- map65/libm65/m65.f90 | 2 +- map65/libm65/map65a.f90 | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/map65/libm65/m65.f90 b/map65/libm65/m65.f90 index d79ecdcd7..179ffceb8 100644 --- a/map65/libm65/m65.f90 +++ b/map65/libm65/m65.f90 @@ -11,7 +11,7 @@ program m65 ! 13 map65.log ! 14 ! 15 -! 16 +! 16 tquick log ! 17 saved *.tf2 files ! 18 test file to be transmitted (wsjtgen.f90) ! 19 livecq.txt diff --git a/map65/libm65/map65a.f90 b/map65/libm65/map65a.f90 index e8359a5a0..efa1da34b 100644 --- a/map65/libm65/map65a.f90 +++ b/map65/libm65/map65a.f90 @@ -37,6 +37,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/ save + call sec0(0,tquick) nkhz_center=nint(1000.0*(fcenter-int(fcenter))) mfa=nfa-nkhz_center+48 mfb=nfb-nkhz_center+48 @@ -381,6 +382,11 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & write(*,1013) nsum,nsave 1013 format('',2i4) flush(6) + call sec0(1,tquick) + open(16,file='tquick.dat',status='unknown',access='append') + write(16,1016) nutc,tquick +1016 format(i4.4,f7.1) + close(16) endif if(nqd.eq.1 .and. nagain.eq.1) go to 900 @@ -481,9 +487,9 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & write(26,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,i5.4,4x,a22,2x,a1,3x,a2) - write(21,1016) f0,ndf,dt,npol,nsync2,nutc,decoded,cp, & + write(21,1100) f0,ndf,dt,npol,nsync2,nutc,decoded,cp, & cmode(1:1),cmode(2:2) -1016 format(f8.3,i5,f5.1,2i4,i5.4,2x,a22,2x,a1,3x,a1,1x,a1) +1100 format(f8.3,i5,f5.1,2i4,i5.4,2x,a22,2x,a1,3x,a1,1x,a1) ! write(21,1014) f0,ndf,ndf0,ndf1,ndf2,dt,npol,nsync1, & ! nutc,decoded,cp,cmode From 44b99783d1b6200a36c1d8aee67f5b7b5db1d642 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 2 Jul 2021 01:17:29 +0100 Subject: [PATCH 13/16] Ensure UDP Protocol Heartbeat messages are not treated as duplicates --- Network/MessageClient.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index 4374e8dc1..94f564bc5 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -71,12 +71,12 @@ public: void heartbeat (); void closedown (); StreamStatus check_status (QDataStream const&) const; - void send_message (QByteArray const&, bool queue_if_pending = true); - void send_message (QDataStream const& out, QByteArray const& message, bool queue_if_pending = true) + void send_message (QByteArray const&, bool queue_if_pending = true, bool allow_duplicates = false); + void send_message (QDataStream const& out, QByteArray const& message, bool queue_if_pending = true, bool allow_duplicates = false) { if (OK == check_status (out)) { - send_message (message, queue_if_pending); + send_message (message, queue_if_pending, allow_duplicates); } else { @@ -197,7 +197,7 @@ void MessageClient::impl::start () // clear any backlog while (pending_messages_.size ()) { - send_message (pending_messages_.dequeue (), false); + send_message (pending_messages_.dequeue (), true, false); } } @@ -429,7 +429,7 @@ void MessageClient::impl::heartbeat () out << NetworkMessage::Builder::schema_number // maximum schema number accepted << version_.toUtf8 () << revision_.toUtf8 (); TRACE_UDP ("schema:" << schema_ << "max schema:" << NetworkMessage::Builder::schema_number << "version:" << version_ << "revision:" << revision_); - send_message (out, message, false); + send_message (out, message, false, true); } } @@ -444,13 +444,13 @@ void MessageClient::impl::closedown () } } -void MessageClient::impl::send_message (QByteArray const& message, bool queue_if_pending) +void MessageClient::impl::send_message (QByteArray const& message, bool queue_if_pending, bool allow_duplicates) { if (server_port_) { if (!server_.isNull ()) { - if (message != last_message_) // avoid duplicates + if (allow_duplicates || message != last_message_) // avoid duplicates { if (is_multicast_address (server_)) { From bc2979d3ded2cec27de964ee2d23a860c7873114 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 2 Jul 2021 09:54:37 -0400 Subject: [PATCH 14/16] Translate reported frequencies so that |DF| <= 500 Hz for Q65 decodes. --- map65/libm65/q65b.f90 | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/map65/libm65/q65b.f90 b/map65/libm65/q65b.f90 index 1f1840b30..41e1f1854 100644 --- a/map65/libm65/q65b.f90 +++ b/map65/libm65/q65b.f90 @@ -24,7 +24,7 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & complex cx(0:MAXFFT2-1),cy(0:MAXFFT2-1),cz(0:MAXFFT2) logical xpol integer ipk1(1) - real*8 fcenter,freq0 + real*8 fcenter,freq0,freq1 character*12 mycall0,hiscall0 character*12 mycall,hiscall character*6 mygrid,hisgrid @@ -138,7 +138,7 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & newdat,nagain,max_drift,mycall,hiscall,hisgrid) MHz=fcenter - freq0=MHz + 0.001*ikhz + freq0=MHz + 0.001d0*ikhz if(nsnr0.gt.-99) then nq65df=nint(1000*(0.001*k0*df+nkhz_center-48.0+1.000-1.27046-ikhz))-nfcal @@ -149,8 +149,13 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & if(npol.lt.0) npol=npol+180 endif call txpol(xpol,msg0(1:22),mygrid,npol,nxant,ntxpol,cp) + ikhz1=ikhz + ndf=nq65df + if(ndf.gt.500) ikhz1=ikhz + (nq65df+500)/1000 + if(ndf.lt.-500) ikhz1=ikhz + (nq65df-500)/1000 + ndf=nq65df - 1000*(ikhz1-ikhz) if(nqd.eq.1 .and. abs(nq65df-mousedf).lt.ntol) then - write(line,1020) ikhz,nq65df,npol,nutc,xdt0,nsnr0,msg0(1:27),cq0, & + write(line,1020) ikhz1,ndf,npol,nutc,xdt0,nsnr0,msg0(1:27),cq0, & ntxpol,cp 1020 format('!',i3.3,i5,i4,i6.4,f5.1,i5,' : ',a27,a3,i4,1x,a1) write(*,1100) trim(line) @@ -161,12 +166,13 @@ subroutine q65b(nutc,nqd,nxant,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, & cmode=': ' cmode(2:2)=char(ichar('A') + mode_q65-1) - write(26,1014) freq0,nq65df,0,0,0,xdt0,npol,0, & - nsnr0,nutc,msg0(1:22),':',cp,cmode + freq1=freq0 + 0.001d0*(ikhz1-ikhz) + write(26,1014) freq1,ndf,0,0,0,xdt0,npol,0,nsnr0,nutc,msg0(1:22), & + ':',cp,cmode 1014 format(f8.3,i5,3i3,f5.1,i4,i3,i4,i5.4,4x,a22,1x,2a1,2x,a2) ! Write to file map65_rx.log: - write(21,1110) freq0,nq65df,xdt0,npol,nsnr0,nutc,msg0(1:28),cq0 + write(21,1110) freq1,ndf,xdt0,npol,nsnr0,nutc,msg0(1:28),cq0 1110 format(f8.3,i5,f5.1,2i4,i5.4,2x,a28,': A',2x,a3) endif From 99a132a838e7dc5b591704f521b4bea84490f321 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 2 Jul 2021 11:27:45 -0400 Subject: [PATCH 15/16] Update release Notes for coming RC3. --- Release_Notes.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Release_Notes.txt b/Release_Notes.txt index 9989e95a3..ba9809644 100644 --- a/Release_Notes.txt +++ b/Release_Notes.txt @@ -12,6 +12,20 @@ Copyright 2001 - 2021 by Joe Taylor, K1JT. + Release: WSJT-X 2.5.0-rc3 + Jul 3, 2021 + ------------------------- + +Remember that the WSJT-X 2.5.0 package includes MAP65 3.0.0. Changes +in the package since WSJT-X 2.5.0-rc2 include the following +enhancements and defect repairs: + +MAP65: + - Correct two defects that could cause "hung decoder" status + - Translate reported frequencies so that |DF| <= 500 Hz for Q65 + decodes. + - Provide access to Release Notes from the Help menu + Release: WSJT-X 2.5.0-rc2 Jun 28, 2021 ------------------------- From e660476a3103681075eb9e08c1661a5af0fcc67e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 2 Jul 2021 16:39:51 +0100 Subject: [PATCH 16/16] Release preparation --- NEWS | 19 +++++++++++++++++++ Release_Notes.txt | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 8409bd71c..fea3fb76b 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,25 @@ Copyright 2001 - 2021 by Joe Taylor, K1JT. + Release: WSJT-X 2.5.0-rc3 + Jul 3, 2021 + ------------------------- + +Remember that the WSJT-X 2.5.0 package includes MAP65 3.0.0. Changes +in the package since WSJT-X 2.5.0-rc2 include the following +enhancements and defect repairs: + +MAP65: + - Correct two defects that could cause "hung decoder" status + - Translate reported frequencies so that |DF| <= 500 Hz for Q65 + decodes. + - Provide access to Release Notes from the Help menu + +WSJT-X: + - Repair a long standing defect that caused UDP Protocol Heartbeat + messages to not be sent when no other intervening messages are + sent. + Release: WSJT-X 2.5.0-rc2 Jun 28, 2021 ------------------------- diff --git a/Release_Notes.txt b/Release_Notes.txt index ba9809644..85edbce68 100644 --- a/Release_Notes.txt +++ b/Release_Notes.txt @@ -26,6 +26,11 @@ MAP65: decodes. - Provide access to Release Notes from the Help menu +WSJT-X: + - Repair a long standing defect that caused UDP Protocol Heartbeat + messages to not be sent when no other intervening messages are + sent. + Release: WSJT-X 2.5.0-rc2 Jun 28, 2021 ------------------------- @@ -37,7 +42,7 @@ enhancements and defect repairs: MAP65: - Compute polarization angle for Xpol systems and display to nearest degree - - Compute and display the recommended Tx polarization + - Compute and display the recommended Tx polarization - Protect against Fortran bounds errors in several places - Insert leading 0 when needed in UTC hours and minutes on waterfall - Wideband Q65 synchronization corrected to include single-polarization