mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 13:48:42 -05:00
Merge branch 'feat-map65-integration' of bitbucket.org:k1jt/wsjtx into feat-map65-integration
This commit is contained in:
commit
71b9ec921b
@ -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
|
||||
|
@ -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
|
||||
|
@ -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=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)
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -276,7 +276,7 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string> DX Call Grid </string>
|
||||
<string> DX Call DX Grid </string>
|
||||
</property>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="geometry">
|
||||
@ -1218,6 +1218,7 @@ p, li { white-space: pre-wrap; }
|
||||
<addaction name="actionOnline_Users_Guide"/>
|
||||
<addaction name="actionQSG_Q65"/>
|
||||
<addaction name="actionQSG_MAP65_v3"/>
|
||||
<addaction name="actionQ65_Sensitivity_in_MAP65_3_0"/>
|
||||
<addaction name="actionKeyboard_shortcuts"/>
|
||||
<addaction name="actionSpecial_mouse_commands"/>
|
||||
<addaction name="actionAvailable_suffixes_and_add_on_prefixes"/>
|
||||
@ -1674,6 +1675,11 @@ p, li { white-space: pre-wrap; }
|
||||
<string>Quick-Start Guide to MAP65 3.0 and WSJT-X 2.5.0</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionQ65_Sensitivity_in_MAP65_3_0">
|
||||
<property name="text">
|
||||
<string>Q65 Sensitivity in MAP65 3.0</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
@ -1692,8 +1698,8 @@ p, li { white-space: pre-wrap; }
|
||||
<slot>update()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>264</x>
|
||||
<y>275</y>
|
||||
<x>269</x>
|
||||
<y>255</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>126</x>
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user