diff --git a/lib/q65_decode.f90 b/lib/q65_decode.f90
index c5704da28..a0e814995 100644
--- a/lib/q65_decode.f90
+++ b/lib/q65_decode.f90
@@ -88,6 +88,7 @@ contains
npts=ntrperiod*12000
nfft1=ntrperiod*12000
nfft2=ntrperiod*6000
+ npasses=1
! Determine the T/R sequence: iseq=0 (even), or iseq=1 (odd)
n=nutc
diff --git a/map65/libm65/map65a.f90 b/map65/libm65/map65a.f90
index ccaf53234..57ade7a0f 100644
--- a/map65/libm65/map65a.f90
+++ b/map65/libm65/map65a.f90
@@ -365,28 +365,22 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
freq=cand(icand)%f+nkhz_center-48.0-1.27046
nhzdiff=nint(1000.0*(freq-mousefqso)-mousedf)
if(nqd.eq.1 .and. abs(nhzdiff).gt.ntol) cycle
-! ikhz=nint(freq)
ikhz=mousefqso
q65b_called=.true.
f0=cand(icand)%f
-! write(*,3002) nqd,f0
-!3002 format('=A',i3,f10.3)
call timer('q65b ',0)
- call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz, &
- mousedf,ntol,xpol,mycall,hiscall,hisgrid,mode_q65,f0,idec)
+ call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
+ xpol,mycall,hiscall,hisgrid,mode_q65,f0,fqso,nagain,idec)
call timer('q65b ',1)
if(idec.ge.0) candec(icand)=.true.
enddo
if(.not.q65b_called) then
freq=mousefqso + 0.001*mousedf
-! ikhz=nint(freq)
ikhz=mousefqso
f0=freq - (nkhz_center-48.0-1.27046) !### ??? ###
-! write(*,3004) nqd,f0
-!3004 format('=B',i3,f10.3)
call timer('q65b ',0)
- call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz, &
- mousedf,ntol,xpol,mycall,hiscall,hisgrid,mode_q65,f0,idec)
+ call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
+ xpol,mycall,hiscall,hisgrid,mode_q65,f0,fqso,nagain,idec)
call timer('q65b ',1)
endif
endif
@@ -418,11 +412,9 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
if(nqd.eq.1 .and. abs(freq-mousefqso).gt.0.001*ntol) cycle
ikhz=nint(freq)
f0=cand(icand)%f
-! write(*,3006) nqd,f0
-!3006 format('=C',i3,f10.3)
call timer('q65b ',0)
- call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz, &
- mousedf,ntol,xpol,mycall,hiscall,hisgrid,mode_q65,f0,idec)
+ call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
+ xpol,mycall,hiscall,hisgrid,mode_q65,f0,fqso,nagain,idec)
call timer('q65b ',1)
if(idec.ge.0) candec(icand)=.true.
enddo ! icand
diff --git a/map65/libm65/q65b.f90 b/map65/libm65/q65b.f90
index 5fae07cdf..dbc0ebb4f 100644
--- a/map65/libm65/q65b.f90
+++ b/map65/libm65/q65b.f90
@@ -1,5 +1,5 @@
subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
- mycall0,hiscall0,hisgrid,mode_q65,f0,idec)
+ mycall0,hiscall0,hisgrid,mode_q65,f0,fqso,nagain,idec)
! This routine provides an interface between MAP65 and the Q65 decoder
! in WSJT-X. All arguments are input data obtained from the MAP65 GUI.
@@ -63,10 +63,10 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
df=96000.0/nfft1
endif
nh=nfft2/2
+ f_mouse=1000.0*(fqso+48.0) + mousedf
+ f_ipk=ipk*df3
k0=nint((ipk*df3-1000.0)/df)
-
-! write(*,3001) nqd,f0+0.001*nfcal,0.001*ipk*df3,0.001*k0*df+1.0,mousedf,ipk,snr1
-!3001 format('=D',i3,3f10.3,2i7,f7.2)
+ if(nagain.eq.1) k0=nint((f_mouse-1000.0)/df)
if(k0.lt.nh .or. k0.gt.nfft1-nh) go to 900
if(snr1.lt.1.5) go to 900 !### Threshold needs work? ###
@@ -120,8 +120,12 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
close(30)
nsubmode=mode_q65-1
- nfa=max(100,1000-ntol)
- nfb=min(2500,1000+ntol)
+ nfa=100
+ nfb=1900
+ if(nagain.eq.1) then
+ nfa=max(100,1000-ntol)
+ nfb=min(2500,1000+ntol)
+ endif
newdat=1
nagain=0
nsnr0=-99 !Default snr for no decode
@@ -129,12 +133,13 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol, &
! NB: Frequency of ipk is now shifted to 1000 Hz.
call map65_mmdec(nutc,iwave,nqd,nsubmode,nfa,nfb,1000,ntol, &
newdat,nagain,mycall,hiscall,hisgrid)
-
MHz=fcenter
freq0=MHz + 0.001*ikhz
if(nsnr0.gt.-99) then
nq65df=nint(1000*(0.001*k0*df+nkhz_center-48.0+1.000-1.27046-ikhz))-nfcal
- if(nqd.eq.1 .and. abs(nfreq0-1000.0).lt.0.9*ntol) then
+ nq65df=nq65df + nfreq0 - 1000
+
+ if(nqd.eq.1 .and. abs(nq65df-mousedf).lt.ntol) then
write(line,1020) ikhz,nq65df,45*(ipol-1),nutc,xdt0,nsnr0,msg0(1:27),cq0
1020 format('!',i3.3,i5,i4,i6.4,f5.1,i5,' : ',a27,a3)
write(*,1100) trim(line)
diff --git a/map65/mainwindow.cpp b/map65/mainwindow.cpp
index b7462429a..08a4aa058 100644
--- a/map65/mainwindow.cpp
+++ b/map65/mainwindow.cpp
@@ -994,6 +994,11 @@ void MainWindow::on_actionQSG_MAP65_v3_triggered()
QDesktopServices::openUrl (QUrl {"https://physics.princeton.edu/pulsar/k1jt/MAP65_3.0_Quick_Start.pdf"});
}
+void MainWindow::on_actionQ65_Sensitivity_in_MAP65_3_0_triggered()
+{
+ QDesktopServices::openUrl (QUrl {"https://physics.princeton.edu/pulsar/k1jt/Q65_Sensitivity_in_MAP65.pdf"});
+}
+
void MainWindow::on_actionAstro_Data_triggered() //Display Astro
{
if (m_astro_window ) m_astro_window->show();
@@ -1807,7 +1812,10 @@ void MainWindow::doubleClickOnMessages(QString hiscall, QString t2)
lookup();
}
- genStdMsgs("");
+ QString rpt="";
+ if(m_modeTx=="Q65") rpt=t2.mid(20,3);
+ genStdMsgs(rpt);
+
if(t2.indexOf(m_myCall)>0) {
m_ntx=2;
ui->txrb2->setChecked(true);
diff --git a/map65/mainwindow.h b/map65/mainwindow.h
index eba776438..63040e589 100644
--- a/map65/mainwindow.h
+++ b/map65/mainwindow.h
@@ -79,6 +79,7 @@ private slots:
void on_actionOnline_Users_Guide_triggered();
void on_actionQSG_Q65_triggered();
void on_actionQSG_MAP65_v3_triggered();
+ void on_actionQ65_Sensitivity_in_MAP65_3_0_triggered();
void on_actionWide_Waterfall_triggered();
void on_actionBand_Map_triggered();
void on_actionMessages_triggered();
diff --git a/map65/mainwindow.ui b/map65/mainwindow.ui
index 2db2ce857..391f1cc69 100644
--- a/map65/mainwindow.ui
+++ b/map65/mainwindow.ui
@@ -276,7 +276,7 @@ p, li { white-space: pre-wrap; }
- DX Call Grid
+ DX Call DX Grid
@@ -1218,6 +1218,7 @@ p, li { white-space: pre-wrap; }
+
@@ -1674,6 +1675,11 @@ p, li { white-space: pre-wrap; }
Quick-Start Guide to MAP65 3.0 and WSJT-X 2.5.0
+
+
+ Q65 Sensitivity in MAP65 3.0
+
+
@@ -1692,8 +1698,8 @@ p, li { white-space: pre-wrap; }
update()
- 264
- 275
+ 269
+ 255
126
diff --git a/map65/messages.cpp b/map65/messages.cpp
index 8a2cc92f9..0363791f6 100644
--- a/map65/messages.cpp
+++ b/map65/messages.cpp
@@ -56,8 +56,8 @@ void Messages::setText(QString t, QString t2)
if(t2.mid(i-1,1)==" ") continue;
}
int n=line.mid(50,2).toInt();
- if(line.indexOf(":")>0) n=-1;
- if(n==-1) ui->messagesTextBrowser->setTextColor("#ffffff"); // white
+// if(line.indexOf(":")>0) n=-1;
+// if(n==-1) ui->messagesTextBrowser->setTextColor("#ffffff"); // white
if(n==0) ui->messagesTextBrowser->setTextColor(m_color0);
if(n==1) ui->messagesTextBrowser->setTextColor(m_color1);
if(n==2) ui->messagesTextBrowser->setTextColor(m_color2);