mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-28 23:28:49 -05:00
Fix a number of minor bugs in FT8 DXpedition mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8340 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
28c9bde5a5
commit
8f7ca2851c
@ -1,6 +1,6 @@
|
||||
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
|
||||
napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,bcontest,sync0,f1,xdt,xbase, &
|
||||
apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg32,xsnr)
|
||||
subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, &
|
||||
napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,hiscall12,bcontest, &
|
||||
sync0,f1,xdt,xbase,apsym,nharderrors,dmin,nbadcrc,ipass,iera,msg32,xsnr)
|
||||
|
||||
use crc
|
||||
use timer_module, only: timer
|
||||
@ -8,8 +8,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
|
||||
parameter(NRECENT=10,NP2=2812)
|
||||
character*32 msg32
|
||||
character message*22,msgsent*22
|
||||
character*12 mycall12,recent_calls(NRECENT)
|
||||
character*6 mycall6,mygrid6,c1,c2
|
||||
character*12 mycall12,hiscall12,recent_calls(NRECENT)
|
||||
character*6 mycall6,mygrid6,hiscall6,c1,c2
|
||||
character*87 cbits
|
||||
logical bcontest
|
||||
real a(5)
|
||||
@ -25,9 +25,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
|
||||
integer itone(NN)
|
||||
integer indxs1(8*ND)
|
||||
integer icos7(0:6),ip(1)
|
||||
integer nappasses(0:5) ! the number of decoding passes to use for each QSO state
|
||||
integer nappasses(0:5) !Number of decoding passes to use for each QSO state
|
||||
integer naptypes(0:5,4) ! (nQSOProgress, decoding pass) maximum of 4 passes for now
|
||||
integer*1, target:: i1mycall(6)
|
||||
integer*1, target:: i1hiscall(6)
|
||||
complex cd0(3200)
|
||||
complex ctwk(32)
|
||||
complex csymb(32)
|
||||
@ -398,11 +398,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
|
||||
if(xsnr .lt. -24.0) xsnr=-24.0
|
||||
|
||||
if(i3bit.eq.1) then
|
||||
mycall6=mycall12(1:6)
|
||||
hiscall6=hiscall12(1:6)
|
||||
do i=1,6
|
||||
i1mycall(i)=ichar(mycall6(i:i))
|
||||
i1hiscall(i)=ichar(hiscall6(i:i))
|
||||
enddo
|
||||
icrc10=crc10(c_loc(i1mycall),6)
|
||||
icrc10=crc10(c_loc(i1hiscall),6)
|
||||
write(cbits,1001) decoded
|
||||
1001 format(87i1)
|
||||
read(cbits,1002) ncrc10,nrpt
|
||||
@ -412,7 +412,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly,
|
||||
i2=index(message(i1+1:),' ') + i1
|
||||
c1=message(1:i1)//' '
|
||||
c2=message(i1+1:i2)//' '
|
||||
if(ncrc10.eq.icrc10) msg32=c1//' RR73; '//c2//' <'//trim(mycall6)//'> '
|
||||
if(ncrc10.eq.icrc10) msg32=c1//' RR73; '//c2//' <'// &
|
||||
trim(hiscall6)//'> '
|
||||
if(ncrc10.ne.icrc10) msg32=c1//' RR73; '//c2//' <...> '
|
||||
write(msg32(30:32),1010) irpt
|
||||
1010 format(i3.2)
|
||||
|
@ -105,9 +105,10 @@ contains
|
||||
xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0))
|
||||
nsnr0=min(99,nint(10.0*log10(sync) - 25.5)) !### empirical ###
|
||||
call timer('ft8b ',0)
|
||||
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon,lapcqonly, &
|
||||
napwid,lsubtract,nagain,iaptype,mycall12,mygrid6,bcontest,sync,f1,xdt, &
|
||||
xbase,apsym,nharderrors,dmin,nbadcrc,iappass,iera,msg32,xsnr)
|
||||
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,lft8apon, &
|
||||
lapcqonly,napwid,lsubtract,nagain,iaptype,mycall12,mygrid6, &
|
||||
hiscall12,bcontest,sync,f1,xdt,xbase,apsym,nharderrors,dmin, &
|
||||
nbadcrc,iappass,iera,msg32,xsnr)
|
||||
message=msg32(1:22) !###
|
||||
nsnr=nint(xsnr)
|
||||
xdt=xdt-0.5
|
||||
|
@ -2933,19 +2933,21 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
}
|
||||
} else {
|
||||
QStringList w=decodedtext.string().mid(24).split(" ",QString::SkipEmptyParts);
|
||||
QString foxCall=w.at(1);
|
||||
if(w.at(0)==m_config.my_callsign()) {
|
||||
if(w.at(2)=="RR73") {
|
||||
auto_tx_mode(false);
|
||||
on_logQSOButton_clicked();
|
||||
} else {
|
||||
int fRx=decodedtext.string().mid(15,5).toInt();
|
||||
m_rptRcvd=w.at(2);
|
||||
m_rptSent=decodedtext.string().mid(7,3);
|
||||
//### Select TX3, and set TxFreq = fRx + 350 Hz, and Force Auto ON. ###
|
||||
ui->txrb3->setChecked(true);
|
||||
ui->TxFreqSpinBox->setValue(fRx+350);
|
||||
if(!m_auto) auto_tx_mode(true);
|
||||
if(w.size()==3) {
|
||||
QString foxCall=w.at(1);
|
||||
if(w.at(0)==m_config.my_callsign()) {
|
||||
if(w.at(2)=="RR73") {
|
||||
auto_tx_mode(false);
|
||||
on_logQSOButton_clicked();
|
||||
} else {
|
||||
int fRx=decodedtext.string().mid(15,5).toInt();
|
||||
m_rptRcvd=w.at(2);
|
||||
m_rptSent=decodedtext.string().mid(7,3);
|
||||
//### Select TX3, and set TxFreq = fRx + 350 Hz, and Force Auto ON. ###
|
||||
ui->txrb3->setChecked(true);
|
||||
ui->TxFreqSpinBox->setValue(fRx+350);
|
||||
if(!m_auto) auto_tx_mode(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3858,6 +3860,7 @@ void MainWindow::on_txb1_clicked()
|
||||
|
||||
void MainWindow::on_txb1_doubleClicked()
|
||||
{
|
||||
if(m_mode=="FT8" and m_config.bHound()) return;
|
||||
// skip Tx1, only allowed if not a type 1 compound callsign
|
||||
auto const& my_callsign = m_config.my_callsign ();
|
||||
auto is_compound = my_callsign != m_baseCall;
|
||||
@ -3998,7 +4001,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
if (message.isTX()) {
|
||||
if (!m_config.enable_VHF_features()) {
|
||||
if(!shift) ui->RxFreqSpinBox->setValue(frequency); //Set Rx freq
|
||||
if((ctrl or shift) and !m_holdTxFreq) ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
|
||||
if((ctrl or shift) and !m_holdTxFreq) {
|
||||
ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -4086,7 +4091,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
||||
&& firstcall != m_config.my_callsign () && firstcall != m_baseCall
|
||||
&& firstcall != "DE")
|
||||
|| "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) {
|
||||
if (!m_holdTxFreq or shift or ctrl) ui->TxFreqSpinBox->setValue(frequency);
|
||||
if (!m_holdTxFreq and (shift or ctrl)) {
|
||||
ui->TxFreqSpinBox->setValue(frequency);
|
||||
}
|
||||
if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") &&
|
||||
m_mode != "QRA64" && m_mode!="FT8") {
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user